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
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 |
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
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.