Download Pregunta 1. La multiprogramación eleva el rendimiento

Document related concepts

Sistema operativo wikipedia , lookup

Exclusión mutua (informática) wikipedia , lookup

Planificación mediante colas multinivel wikipedia , lookup

RTAI wikipedia , lookup

Proceso (informática) wikipedia , lookup

Transcript
Soluciones del primer parcial, curso 1995/96
Pregunta 1. La multiprogramación eleva el rendimiento
En un sistema no multiprogramado, los procesos se ejecutan secuencialmente. Cada
vez que un proceso entra en situación de espera, bien por un dispositivo de
entrada/salida o por la ocurrencia de algún evento, el procesador queda inactivo hasta
que se concluya la espera. Sin embargo, en un sistema multiprogramado ese lapso de
inactividad del proceso puede cubrirse con la ejecución de instrucciones de algún otro
proceso que se encuentre disponible para ello. Así se logra que la utilización del
procesador aumente y además que se solape la ejecución de instrucciones del
procesador con las actividades de entrada/salida, con lo cual un conjunto de tareas
consigue terminar en menos tiempo respecto al sistema uniprogramado.
Un ejemplo ilustrativo puede verse en Sistemas Operativos. Conceptos
fundamentales, de A. Silberchatz, págs. 100 y 101; también en Sistemas Operativos.
Conceptos y diseño, de M. Milenkovic´, pág. 10.
Pregunta 2. Interbloqueo con semáforos
Hay multitud de ejemplos de algoritmos que producen interbloqueo entre dos
procesos, ocasionado por operaciones con semáforos. Uno muy típico emplea dos
semáforos con 1 (uno) de valor inicial para gestionar sendas secciones críticas. Si dos
procesos pretenden ejecutar código de ambas secciones críticas de esta forma:
proceso 1
proceso 2
1. P(sem1)
2. P(sem2)
3. P(sem2)
4. P(sem1)
...
...
V(sem2)
V(sem1)
V(sem1)
V(sem2)
y se tiene que el orden de ejecución de estas sentencias es 1-2-3-4, se producirá
interbloqueo, dado que el proceso 1 estará esperando por un recurso retenido por el
proceso 2 (sem2) y a la vez el proceso 2 esperará por un recurso retenido por el proceso
1 (sem1). Una espera circular de la que jamás se podrá salir sin intervención externa.
Pregunta 3. Manejadores de dispositivo
Los manejadores de dispositivo han de cumplir a rajatabla una interfaz preestablecida,
primero, para que se pueda desarrollar el principio de independencia del dispositivo con
más sencillez. Si las llamadas al sistema de entrada/salida son independientes del
dispositivo y la interfaz de los manejadores es idéntica, las rutinas del núcleo se limitan
a dirigir la petición hacia el dispositivo adecuado, haciendo las conversiones que hagan
falta; si no existiera esa interfaz uniforme, el código del núcleo habría de tener en cuenta
las peculiaridades de cada dispositivo, perdiéndose modularidad y fiabilidad.
Por otra parte, la interfaz preestablecida permite que se incorporen con sencillez
nuevos manejadores de dispositivos de otros fabricantes; el núcleo del sistema operativo
sólo ha de conocer cuáles son las funciones de interfaz del nuevo manejador.
Pregunta 4. Planificación de procesos
FCFS:
AAAAABBCCCCCCDDDDEEE
0
5 7
13
17 20
Tiempo de retorno medio: (5 + 7 + 13 + 17 + 20) / 5 = 12'4 u.t
Tiempo de espera medio: (0+5+7+13+17)/5 = 8'4 u.t.
SJF:
BBEEEDDDDAAAAACCCCCC
0 2
5
9
14
20
Tiempo de retorno medio: (14+2+20+9+5)/5 = 10 u.t.
Tiempo de espera medio: (9+0+14+5+2)/5 = 6 u.t.
Round-Robin:
AABBCCDDEEAACCDDEACC
Tiempo de retorno medio: (18+4+20+16+17)/5 = 15 u.t.
Tiempo de espera medio: (13+2+14+12+14)/5 = 11 u.t.
Pregunta 5. Estados de un proceso
Cualquier libro sobre sistemas operativos, en su capítulo sobre procesos, desarrolla
esta pregunta. Como detalles parciales, recordemos que los estados del proceso dignos
de mención son: preparado, en ejecución, bloqueado y terminado (estado final), que los
eventos que producen las transiciones son mayormente llamadas al sistema e
interrupciones, etc.
Pregunta 6. Simulación de manejador de disco
FCFS: 15-28-60-28-61-15-60-23-61-60-14
Pistas recorridas: 343
SSTF: 28-28-23-15-15-14-60-60-60-61-61
Pistas recorridas: 68
SCAN: 60-60-60-61-61-(llega a la 70 y vuelve)-28-28-23-15-15-14
Pistas recorridas: 91
LOOK: 60-60-60-61-61-28-28-23-15-15-14
Pistas recorridas: 73
Con caché:
FCFS: 15-28-60-*28*-61-*15*-*60*-23-*61*-*60*-14
Pistas recorridas: 113
El resto de las políticas dan igual resultado.
Se manifiesta la excesiva dependencia del FCFS respecto al orden de llegada de las
peticiones, que en este ejemplo están bastante salteadas alrededor del disco. El mejor
algoritmo es el SSTF. El LOOK da un rendimiento sólo un 9% más pobre que el SSTF,
y hay que tener en cuenta que esta política es más simple y no presenta el riesgo de
postergación de peticiones de esta última, riesgo que en este caso no se da porque es un
conjunto limitado de peticiones y además están todas encoladas en el instante inicial.
El LOOK es levemente mejor que el SCAN ya que la cabeza no ha de llegar
estérilmente hasta el final del disco.
El uso de caché sólo afecta al FCFS, puesto que los restantes métodos definen un orden
de atención tal que atienden todas las peticiones de una misma pista en el mismo
instante; y en este ejemplo no llegan nuevas peticiones. El movimiento total del FCFS
se reduce a la tercera parte más o menos, puesto que varias peticiones sobre la misma
pista que se encuentran salteadas en la cola requieren un único acceso físico a la pista.
Pregunta 7. Búfer finito con regiones críticas
En Sistemas Operativos. Conceptos Fundamentales aparece una solución a esta
pregunta, en la página 167 (de la tercera edición).
Pregunta 8. Varias cuestiones
a) Una llamada al sistema es un mecanismo de bajo nivel para que un programa solicite
servicios del sistema operativo; mientras que un programa del sistema es una
aplicación, siempre de mayor nivel que las llamadas al sistema, que corre
independientemente del sistema operativo.
b) El spooling consiguió aumentar el rendimiento en los primeros sistemas por lotes
porque posponía las operaciones de entrada/salida al momento en que el periférico
quedara libre, evitando tiempos muertos de la CPU, puesto que se solapaban
operaciones de E/S de un proceso con la ejecución de instrucciones de cualquier otro.
c) El gran inconveniente de las políticas de planificación que aplican prioridades es el
riesgo de postergación indefinida de procesos de baja prioridad, en caso de que
continuamente el sistema contenga procesos de más alta prioridad.
d) La comunicación asíncrona entre procesador y E/S es así porque el tiempo de
respuesta de esta última es imprevisible y muchas veces largo. Por ello no es
conveniente que la CPU espere un tiempo prefijado por la respuesta de la E/S, sino
que ésta debe notificar la terminación de la operación con algún tipo de señal
(interrupción, escritura en un registro, etc.)
e) El modelo cliente/servidor consiste en descomponer el sistema operativo en módulos
funcionales en forma de procesos independientes que se comunican. Este modelo es
muy adecuado para sistemas distribuidos, porque puede emplazarse cada módulo o
servidor en máquinas diferentes, adaptándose al objetivos del procesamiento
distribuido.
f) El intérprete de órdenes no forma parte del núcleo del sistema operativo porque es un
servicio que no es elemental (se basa en servicios de más bajo nivel), depende
fuertemente del tipo de usuario y puede requerirse su modificación con frecuencia.
Incluirlo en el núcleo supondría un mayor tamaño del código del S.O., la dificultad
de disponer de varios intérpretes o de alterar uno existente, además del posible riesgo
de estar ejecutando una aplicación siempre en modo privilegiado.
Pregunta 9. Test
Pregunta
Opción correcta
1
a
2
b
3
c
4
c
5
c
6
b
7
c
8
d
9
b
10
b
11
b
1
a
2
b
3
c
4
c
5
c
6
b
7
c
8
d
9
b
10
b
11
b
12
d
13
a
14
b
15
a
16
c
17
a
18
b
19
d
20
c
Pregunta
Opción correcta
12
d
13
a
14
b
15
a
16
c
17
a
18
b
19
d
20
c