Soluciones del examen de junio, curso 1997/98

segunda parte

Pregunta 1. Principio de separación de privilegios y ejemplo.

El principio de separación de privilegios enuncia que, en la medida de lo posible, el acceso a los objetos exija la satisfacción de varias condiciones. Así se dificulta que si alguien se apropia indebidamente de un mecanismo de autenticación, pueda operar con un objeto, pues le harían falta varios mecanismos. Por ejemplo (en S.O.): para formar un grupo de prácticas hay que introducir la cuenta y la contraseña de dos personas; para utilizar el laboratorio fuera del horario habitual, hay que exhibir un permiso y luego entrar en el sistema mediante cuenta y contraseña; para cambiar nuestra contraseña, hemos de abrir una sesión a nuestro nombre y además volver a escribir la contraseña actual (evita que un oportunista use una terminal con una sesión ya abierta y cambie la contraseña de otro usuario); etc.

Pregunta 2. Compartición de datos en memoria segmentada.

A grandes rasgos, la situación deseada se resuelve haciendo que en la tabla de segmentos de cada uno de los procesos, aparezca una entrada que apunte a la zona física que se pretende compartir. Dicha entrada en la t.seg. debe estar en la misma posición para todos los procesos, de manera que la dirección lógica sea idéntica en todos los casos.

Pregunta 3. Sensibilidad ante fallos físicos en el disco.

Puede suponerse sin que afecte al resultado de la pregunta que el fallo más general o probable ocurrirá dentro de un bloque de datos de algún fichero. Bajo esta hipótesis, la asignación enlazada es la que más estropicios provoca, dado que tanto en la contigua, la enlazada con FAT y la indexada, sólo se pierde la información de una zona de datos de un fichero. Sin embargo, en la asignación enlazada cada bloque de datos contiene información de control, en concreto un apuntador al siguiente bloque de datos. En este caso, si se pierde un bloque de datos de un archivo, también se pierde el resto de la cadena de bloques, así que mucha más información queda ilocalizable. De todas formas, hay implementaciones enlazadas que evitan este problema manteniendo una lista doblemente enlazada: en tal caso, los restantes bloques pueden ser accedidos y se comportaría mejor en promedio que la indexada (en la cual, si se pierde un bloque de índices, se pierden todos o muchos de los enlaces de un archivo).

Si planteamos el peor caso, las peores estrategias son aquellas que mantienen mucha información de control en poco espacio. En los sistemas basados en FAT, la pérdida de un sector de la FAT supone la desaparición de enlaces de muchos archivos; si la FAT ocupa exactamente un sector, todos los archivos quedarían dañados. La asignación indexada tiene un riesgo menor que la FAT, pero no desdeñable: si se pierde un bloque de índices de un archivo, todo el archivo puede quedar ilocalizable.

Pregunta 4. Relación estrecha entre intercambio (swapping) y planificación de procesos.

El intercambio es una técnica de gestión de memoria muy acoplada con la planificación de procesos. Cuando un proceso se intercambia con disco, deja de ser elegible para entrar en CPU, ya que su imagen deja de estar en memoria principal. Así, la acción de intercambiar impone restricciones en la asignación del recurso CPU. Por tanto el intercambio de un proceso afecta a la estrategia de planificación. Además, los procesos que se intercambian deben escogerse de entre los que llevan más tiempo bloqueados; esta información es propia de la planificación de procesos.

De hecho se dice que el intercambio se inscribe en la llamada planificación a medio plazo (o a largo plazo, según el autor que se lea). En otras palabras, podemos decir que el módulo planificador de procesos es quien invoca a los servicios de intercambio.

Pregunta 5. Varias cuestiones.

En UNIX, ¿en qué circunstancias un proceso pasa a ser planificado de forma no expulsiva (non-preemptive)?

En las mismas circunstancias en que pasa a modo privilegiado: cuando efectúa una llamada al sistema, cuando ocurre una interrupción que ha de manejar, o cuando genera una excepción.

En UNIX, ¿dónde se almacena la información de protección de los archivos?

Como casi cualquier atributo de un archivo, se almacena en el nodo-i correspondiente a cada archivo.

¿De qué años o época datan los sistemas operativos MS-DOS, UNIX y Windows NT?

En orden cronológico, UNIX es el más antiguo, iniciado en 1969 y madurado en la primera mitad de los 70. El MS-DOS surge aproximadamente en 1980, aunque es una modificación del CP/M, propio de los años 70. Finalmente, Windows NT se comienza a desarrollar a finales de los 80, aunque las primeras versiones estables datan de los primeros años noventa.

¿Qué relación funcional existe entre el ejecutor y el núcleo de Windows NT?

El núcleo de Windows NT proporciona servicios elementales de un micronúcleo: planificación de hilos, comunicación entre procesos, etc. El ejecutor se basa en lo que le proporciona el núcleo para implementar sus servicios de más alto nivel.

¿Qué ha ocurrido cuando un proceso UNIX finaliza con el mensaje Segmentation fault (core dumped)?

El proceso ha generado una excepción de fallo de segmentación, probablemente originada por un acceso ilegal a memoria, a una dirección fuera de los límites lógicos del proceso. Esto provoca el aborto del proceso y el volcado en un fichero de la imagen del proceso (el contenido de su memoria) en el instante de finalización.

Pregunta 6. TEST

Pregunta

Opción correcta

1

d

2

a

3

c

4

d

5

c

6

b

7

c

8

d

9

a

10

a

11

c

12

a

13

b

14

c

15

c