Soluciones del primer parcial, curso 1996/97


Soluciones del primer parcial, curso 1996/97

Pregunta 1. Cuestiones básicas

1.a. ¿Qué ventajas aporta la operación fuera de línea (off line) frente a la operación en línea (on line) de dispositivos?

RESPUESTA: evita el que dispositivos de entrada/salida muy lentos (por ejemplo lectores de tarjetas) ralenticen el sistema, debido a que la CPU debe esperar por ellos, esto se logra sustituyéndolos por equipos más rápidos( por ejemplo unidades de cinta).

1.b. ¿De qué manera mejora el rendimiento del sistema el uso de la técnica de spooling?

RESPUESTA: permitiendo el solapamiento entre las operaciones de CPU y de Entrada/Salida de procesos diferentes; de esta manera estarán más ocupados tanto la CPU como los equipos de Entrada/Salida.

1.c. Señale dos elementos a planificar para poder soportar multiprogramación. Justifique su respuesta.

RESPUESTA: el procesador y la memoria puesto que deberán ser compartidos entre los procesos del sistema. Para el procesador se tendrá que decidir a qué proceso y durante cuanto tiempo y para la memoria qué cantidad se asigna y asegurar la protección entre las distintas áreas asignadas.

1.d. En la ejecución de operaciones de Entrada/Salida ¿qué ventajas aporta el uso de interrupciones frente a su no uso?

RESPUESTA: Si no se utilizan interrupciones, los procesos para esperar por la finalización de una operación Entrada/Salida deberán entrar en un ciclo de espera activa, en cambio, el uso de las interrupciones permite el bloqueo de estos hasta que ésta finalice.

1.e. ¿Por qué es necesario el uso por parte del SO de un reloj (o cronómetro) del sistema?

RESPUESTA: Para controlar el acaparamiento de ciertos recursos del sistema por parte de los procesos. Por ejemplo: la ejecución de un programa durante demasiado tiempo y el uso de la CPU.

1.f. ¿Por qué el deseo de usar órdenes (tarjetas) de control conduce a la creación de dos modos de operación: modo usuario y modo supervisor (o monitor, o sistema)?

RESPUESTA: Para garantizar que ciertas tareas de control sólo sean ejecutadas por el sistema operativo, por ejemplo la carga en memoria de un determinado programa, y no por programas de usuario.

Pregunta 2. Simulación de planificación de procesos

RESPUESTA: Primero el más corto apropiativo

0
1
2
3
4
5
6
7
8
9
10
11
P0
P0
P2
P3
P2
P0
P0
P1
P1
P1
P1
P1

Proceso

Tiempo de retorno
Tiempo de espera
P0
7
3
P1
11
6
P2
3
1
P3
1
0

Tiempo medio de retorno: 22/4 Tiempo medio de espera:10/4

También sería correcto el siguiente diagrama:

0

1
2
3
4
5
6
7
8
9
10
11
P0
P0
P0
P0
P3
P2
P2
P1
P1
P1
P1
P1

Proceso

Tiempo de retorno
Tiempo de espera
P0
4
0
P1
11
6
P2
5
3
P3
2
1

Tiempo medio de retorno: 22/4 Tiempo medio de espera: 10/4

RESPUESTA: Round-Robin con cuanto 3

0
1
2
3
4
5
6
7
8
9
10
11
P0
P0
P0
P1
P1
P1
P2
P2
P3
P0
P1
P1

Proceso

Tiempo de retorno
Tiempo de espera
P0
10
6
P1
11
6
P2
6
4
P3
6
5

Tiempo medio de retorno: 33/4 Tiempo medio de espera: 21/4

Pregunta 3. Problema de coordinación de procesos

El problema es básicamente el de los lectores y escritores, pero añadiendo el límite de 20 procesos lectores. Con semáforos, se resuelve sencillamente utilizando un semáforo inicializado a 20, sobre el que hay que realizar una "P" si se quiere entrar a leer. Cada vez que un lector termina, realiza una "V" sobre el semáforo. Por lo demás la solución es la misma que se puede ver en el Silberschatz.

Con regiones críticas, se trata simplemente de añadir en la condición de entrada del lector que el número de lectores tiene que ser menor que 20.

Con semáforos

Variables:

lectores:integer=0;		-- contador de lectores
cerrojo:semáforo=1;		-- cerrojo para manipular "lectores"
plazas_lectura:semáforo=20;	-- bloqueo de lectores
escribe:semáforo=1;		-- bloqueo de escritores

Proceso lector:
P(plazas_lectura);		-- reserva plaza de lector
P(cerrojo);			-- esto es una sección crítica

  lectores:=lectores+1;		-- un nuevo lector

  if lectores=1			-- si es el primer lector
    then P(escribe);		-- bloquea a los escritores
				-- o deja bloqueados a todos los lectores

V(cerrojo);			-- sale de la sección crítica


... realiza la lectura ...

P(cerrojo);			-- otra sección crítica

  lectores:=lectores-1;

  if lectores=0			-- si es el último lector
    then V(escribe);		-- cede el paso a los escritores

  V(plazas_lectura);		-- cede el paso a otro lector

V(cerrojo);			-- sale de la sección crítica


Proceso escritor:
P(escribe);

  ... realiza la escritura ...

V(escribe);

Con regiones críticas

Variables:

var contador: shared integer = 0;

Proceso lector:

region contador when contador<20 do contador:=contador+1;

  ... realiza la lectura ...

region contador do contador:=contador-1;

Proceso escritor:

region contador when contador=0 do
  begin
	... realiza la escritura ...
  end;

Pregunta 4. Variables condición / semáforos

Las variables condición y los semáforos guardan muchas semejanzas, dado que ambos son herramientas de sincronización entre procesos. También ambos ofrecen una pareja de operaciones, una bloqueante (wait) y otra para desbloquear (signal). Sin embargo, la semántica de las operaciones es bien distinta: la operación de signal de una variable condición desbloquea un proceso en espera con wait, pero si no hay nadie bloqueado, se pierde el signal; un semáforo, por el contrario, mantiene el estado de las operaciones de signal que se han realizado. En este mismo sentido, la operación de wait de una variable condición siempre es bloqueante, lo cual no ocurre con los semáforos. En definitiva, un semáforo tiene un valor (representado como un número entero), mientras que una variable tipo condición no.

Las variables condición por sí solas no son tan potentes como los semáforos, ya que no almacenan estado; si se quiere notificar un evento, hay que guardarlo en una variable global y aparecen los problemas de carrera (si se intenta construir una solución al problema de la sección crítica usando variables condición, se ve lo complicado que es). De hecho, las variables condición sólo tienen sentido dentro de una estructura mayor, como es el monitor, que es quien proporciona la exclusión mutua.

Pregunta 5. TEST

Pregunta

Opción correcta
1
b
2
b
3
d
4
c
5
b
6
a
7
c
8
d
9
a
10
b
11
d
12
d
13
c
14
c
15
b
16
b
17
a
18
d