Universidad de Las Palmas de Gran Canaria

Escuela Universitaria de Informática

Sistemas Operativos

Convocatoria de junio, curso 1995/1996

3 de julio de 1996 - Segunda parte

                                                                                 
    Nombre                                                                       

Importante: este examen se divide en dos pruebas. Para poder aprobar, ha de obtener en la primera parte un mínimo de 3'75 puntos.

La duración total del examen es de dos horas.

Primera prueba. Contenidos básicos (6'25 puntos)

1 (3 puntos) En cada uno de los siguientes 20 apartados numerados, señale cuál opción es correcta. En caso de que existan varias opciones ciertas, se considerará como correcta la más completa o precisa. La puntuación total de la pregunta se obtendrá aplicando lo siguiente:

- Cada apartado vale 0.15 pts.

- Los apartados contestados incorrectamente penalizan 0.05 pts.

Las preguntas no contestadas no puntúan; las contestadas erróneamente penalizan. Señale con bolígrafo sus respuestas sobre estas hojas de enunciado, rodeando la letra de la opción correcta con un redondel. Si se equivoca, enmiende la respuesta con una tachadura en la opción incorrecta y rodee la letra que considere correcta. Las preguntas respondidas con lápiz o con múltiples redondeles no tachados se considerarán no contestadas.


1. De cara a la compartición de memoria, el esquema más restrictivo es:

a) particiones dinámicas

b) segmentado

c) paginado

d) segmentado/paginado


2. Mediante la codificación independiente de la posición se resuelve:

a) Autorreferenciación de código compartido

b) Autorrefernciación en directorios con estructura de grafo

c) Protección de memoria

d) Traducción dinámica de direcciones


3. La técnica con menor recargo a la hora de resolver una dirección de memoria es:

a) Particiones dinámicas

b) Segmentado

c) Paginado

d) Segmentado/paginado


4. El MSDOS utiliza reubicación:

a) Estática

b) Dinámica

c) Paginada

d) Mixta


5. El esquema de gestión de memoria empleado por el sistema operativo del Windows-NT es:

a) Particiones dinámicas

b) Segmentado

c) Paginado

d) Segmentado/paginado


6. En un sistema paginado con memoria virtual mediante la política de asignación se decide:

a) Qué marco de página se asigna a un proceso

b) Qué cantidad de memoria real se asigna a un proceso

c) Cuando se incorpora una página a memoria

d) Ninguna de las anteriores son correctas


7. La anomalía de Belady se produce en la política de asignación:

a) LRU (Menos recientemente usada)

b) Óptimo

c) NRU (No usada recientemente)

d) En Ninguna de las anteriores


8. El método de tratamiento del interbloqueo que menos restricciones impone de cara al uso de los recursos es:

a) Prevención

b) Detección

c) Banquero

d) Todos los anteriores por igual


9. La ordenación lineal de recursos actúa sobre la condición de:

a) No apropiación

b) Retención y espera

c) Espera circular

d) Exclusión mutua


10. La declaración de las necesidades máximas de recursos por parte de los procesos se debe realizar en:

a) Detección del interbloqueo

b) Algoritmo del banquero

c) Prevención del interbloqueo mediante espera circular

d) Prevención del interbloqueo mediante negación de retención y espera


11. De cara a la flexibilidad de organización de archivos en un sistema, la mejor estructura de directorio es:

a) Lineal

b) Árbol

c) Grafo

d) Jerárquica de doble nivel


12. La fragmentación externa en disco se presenta con la asignación:

a) Contigua

b) Enlazada

c) Indexada

d) En ninguna de las anteriores


13. La política asignación de disco que más espacio requiere para su implementación es:

a) Contigua

b) Enlazada

c) Indexada

d) Todas por igual


14. En general un acceso directo a un archivo se realiza más rápidamente en sistemas con asignación:

a) Contigua

b) Enlazada

c) Indexada

d) En todas las anteriores se tarda lo mismo


15. En UNIX la estructura de control utilizada para controlar archivos abiertos se denomina:

a) Inode

b) In core Inode

c) Pfdata

d) Área U


16. En UNIX la estructura de control asociada a cada proceso y que se almacena en memoria de usuario se denomina:

a) Inode

b) In core Inode

c) Pfdata

d) Área U


17. En UNIX un proceso en estado de zombie es:

a) Un proceso bloqueado indefinidamente

b) Un proceso finalizado que aún retiene su entrada en la tabla de procesos

c) Un proceso ejecutándose en segundo plano

d) Un proceso que no tiene proceso padre


18. En MSDOS la estructura de control asociada a cada proceso y que se almacena en memoria de usuario se denomina:

a) Encabezado de programa

b) Prefijo de segmento de programa

c) Bloque de control de fichero

d) Bloque de parámetros BIOS


19. La unidad de asignación de memoria en MSDOS es:

a) Un segmento de tamaño arbitrario pero no mayor de 64 KBytes

b) La página de tamaño fijo

c) El párrafo o bloque de memoria de 16 bytes

d) Ninguna de las anteriores son correctas


20. Las características físicas de un disco formateado MSDOS se almacenan en una estructura de control llamada:

a) Directorio raíz

b) FAT

c) Bloque de parámetros BIOS

d) Memory Arena

2 (1'75 puntos) CUESTIÓN PRÁCTICA. Suponga un subsistema de archivos parecido al empleado por UNIX. Los bloques de datos a asignar a los ficheros poseen un tamaño de 1024 bytes. Cada archivo posee un vector con 9 entradas para controlar los bloques de datos que le han sido asignado, siendo las 8 primeras de tipo directo y la novena de tipo indirecto y los punteros a los bloques de datos tienen un tamaño de 16 bits. Se pide:

A. ¿Cuál será el tamaño máximo expresado en bytes que podrá tener un fichero? (0.50 ptos).

B. Especifique los pasos y cálculos a realizar para convertir una dirección de byte de archivo expresado como desplazamiento desde el origen a dirección de bloque de datos y desplazamiento dentro de éste (1 pto).

3 (1'5 puntos) CUESTIÓN PRÁCTICA. Un sistema operativo soporta memoria virtual mediante paginación por demanda. La política de sustitución empleada es la NRU. Suponga que la tabla de páginas del proceso es la siguiente:

      Página                Marco         Bit de Validez       Bit de Referencia  
         0                  3156          1                            0          
         1                  xxxx          0                            0          
         2                  xxxx          0                            0          
         3                  35C3                   1                   1          
         4                  2A4E                   1                   1          
         5                  xxxx                   0                   0          
         6                  2D27                   1                   0          
         7                  3728          1                            1          

Desde la situación mostrada en la tabla se han referenciado por el proceso las páginas: 0, 4, 5 y 2. Se pide mostrar las variaciones que experimenta la tabla de páginas teniendo en cuenta que:

a) la sustición de páginas es local, siendo 5 el número máximo de marcos asignados que puede tener el proceso.

b) La última página víctima de la tabla fue la 2.

Segunda prueba. Conceptos avanzados (3'75 puntos)

4 (1'75 puntos) CUESTIONES TEÓRICAS. Conteste utilizando 4 líneas como máximo a las siguientes preguntas:

1. (0'50 ptos) Especifique un caso de sistema operativo que soporte varias políticas de asignación, explicando de qué manera lo hace.

2. (0'75 ptos) Suponga un sistema que utiliza el algoritmo del banquero para solucionar el problema del interbloqueo ¿puede la declaración de las necesidades máximas por parte de los procesos llevar al sistema a un estado inseguro?, justifique su respuesta.

3. (0'50 ptos) Explique como se soporta la compartición de memoria en Windows-NT, si lo desea utilice un dibujo en su respuesta.

5 (2 puntos) CUESTIÓN PRÁCTICA. Utilizando semáforos UNIX System V, implemente un semáforo entero clásico mediante las siguientes funciones:

int crea_sem( key_t key, int val)

Crea un semáforo cuyo identificador es key y lo inicializa a un valor entero indicado por val, retornará 0 si la función se ejecuta con exito y -1 si un error ha ocurrido. En el caso de que el semáforo a crear ya exista retornará -1.

int abre_sema(key_t key)

Retorna un descriptor de semáforo asociado a key_t que deberá utilizarse en las sucesivas operaciones P y V que se describen a continuación, si un error ocurre entonces retornará -1. Si el semáforo referenciado por key_t no existe entonces retornará -1.

int P( int sem_id )

Ejecuta la primitiva P sobre el semáforo especificado por el descriptor sem_id, retornará 0 si la función se ha ejecutado sin error y -1 si un error ha ocurrido.

int V( int sem_id )

Ejecuta la primitiva V sobre el semáforo especificado por el descriptor sem_id, retornará 0 si la función se ha ejecutado sin error y -1 si un error ha ocurrido.

Prototipos de funciones para operar con semáforos UNIX System V:

#include <sys/sem.h>

int semget( key_t key, int nsems, int semflg)

Valores admisibles de semflg: 0, IPC_CREAT, IPC_EXCL

int semctl( int semid, int senum, int cmd, .... )

Valores admisibles de cmd: GETVAL, SETVAL, GETPID, GETNCNT y GETZCNT para acceder a semáforos individuales. GETVALL y SETALL para acceder al array de semáforos. IPC_STAT e IPC_SET para acceder a información global de control del array de semáforos.

int semop( int semid, struct sembuf *sops, unsigned int nsops)

struct sembuf {

ushort sem_num; /* Número de semáforo */

short sem_op; /* operación */

short sem_flag; /* flag de operación */

}

Valores admisibles de sem_flag: 0, IPC_NOWAIT, SEM_UNDO