Soluciones del examen parcial, año 2000

(Ingeniero en Informática – Ingeniero Técnico en Informática de Sistemas)

Pregunta 1. TEST

Pregunta

Opción correcta

1

c

2

c

3

b

4

a

5

c

6

c

7

b

8

d

9

d

10

c

11

c

12

a

13

a

14

b

15

c

 

Pregunta 2. Planificación de procesos

  1. SJF expulsivo
  2. A A A C C B B B B B D D D D D E E E E E
    0     3   5         10        15       20

     

     

    Tiempo de retorno

    Tiempo de espera

    A

    3

    0

    B

    9

    4

    C

    2

    0

    D

    6

    1

    E

    8

    3

    valor medio

    28/5

    8/5

     

     

     

  3. Round-Robin con cuanto de 4 u.t.
A A A B B B B C C B D D D D E E E E D E
0     3       7   9 10      14      181920 

 

Tiempo de retorno

Tiempo de espera

A

3

0

B

9

4

C

6

4

D

10

5

E

8

3

valor medio

36/5

16/5

 

 

Pregunta 3. Algoritmo de sección crítica

Para comprobar que el algoritmo es correcto, hay que demostrar que cumple las tres condiciones de exclusión mutua, progreso y espera limitada.

La condición de exclusión mutua se cumple. Mientras un proceso está en sección crítica, su "flag" está a True, con lo cual impide al otro proceso superar el bucle "while". Si ambos procesos pretenden entrar al mismo tiempo, puede verse que al menos uno de los dos quedará detenido en el bucle "while".

La condición de progreso también se cumple, porque si un proceso no desea entrar en sección crítica, su "flag" está a False y con ello no impide al otro proceso entrar, si éste lo desea (no entra en el bucle "while").

Pero la condición de espera limitada no se cumple. Podemos verlo si ambos procesos intentan entrar en la sección crítica a la vez y avanzan al mismo ritmo. Ambos pondrán su "flag" a True, con lo cual los dos entrarán en el bucle "while". En cada iteración, los dos procesos colocan temporalmente su "flag" a falso, superan el "while" interior, vuelven a poner su "flag" a True y entran en otra iteración. Esta situación puede repetirse indefinidamente, no hay garantía formal de que el número de iteraciones esté acotado. Por tanto no se cumple la condición de espera limitada, de hecho hay riesgo de inanición para ambos procesos.

Pregunta 4. Modo de operación dual

  1. Ver el capítulo correspondiente del libro.
  2. Operaciones privilegiadas:

La única que no ha de ser forzosamente privilegiada es leer el contenido del vector de interrupciones, dado que no representa ninguna amenaza a la integridad del S.O. o a la privacidad de los datos.

Las operaciones de alterar el valor del temporizador o desactivar el sistema de interrupciones tienen peligros serios (ej. apropiarse indefinidamente del procesador). Permitir operar directamente con dispositivos de E/S representa siempre un peligro, aunque sean operaciones de lectura: en primer lugar, el usuario se podría saltar la política de administración del recurso y adelantarse a otros procesos que están esperando su turno; en segundo lugar, se puede estar leyendo información privada (lo que teclea un usuario, el contenido de un archivo, etc.) a la que no se debería tener acceso.

Respecto a la operación de lectura de la memoria asignada a otro proceso, debería ser privilegiada también por motivos de seguridad, ya que si el acceso fuera sin restricciones, cualquier usuario puede acceder a información privada (ej. contraseñas, mensajes confidenciales, etc.) Otra cuestión es que el sistema operativo permita acceder a la memoria de otro usuario de forma controlada.