Universidad de Las Palmas de Gran Canaria

Escuela Universitaria de Informática

Sistemas Operativos

Examen de junio, curso 1996/1997 (1ª parte)

17 de junio de 1997

                                                                                 
    Nombre                                                                       

Tiempo de realización: dos horas

1 (2 puntos) Considere el siguiente conjunto de procesos, cuyas duraciones de ráfagas de CPU en milisegundos son:

 Proceso       Duración de ráfaga      
    P0              10 mseg.           
    P1               1 mseg.           
    P2               2 mseg.           
    P3               1 mseg.           

Si los procesos llegaron todos al mismo tiempo y en el orden P0, P1, P2 y P3, calcule los tiempos medios de espera y retorno para las políticas: a) SJF apropiativa (preemptive); b) Round-Robin con cuanto de 2 milisegundos.

2 (2 puntos) Responda con brevedad a las siguientes cuestiones:

a) Indique dos diferencias entre los programas tipo COM y tipo EXE del MSDOS.

b) Dentro de la planificación de procesos del UNIX, ¿cuándo no se aplica la política de planificación Round-Robin?

c) El uso de DMA, ¿para qué tipo de operaciones está especialmente indicado?

d) Explicar la diferencia entre proceso pesado e hilo.

3 (1'5 puntos) En la implementación de las primitivas wait y signal de un semáforo, ¿influye en algo a cuál de los procesos bloqueados se escoge cuando se ejecuta una operación de signal? En particular, ¿la semántica de las operaciones sobre semáforos obliga a escoger a un proceso determinado? ¿Da lo mismo seguir una política FIFO que una LIFO, o escoger a un proceso al azar?

4 (2 puntos) En este supuesto, una serie de procesos concurrentes se dedican a insertar elementos en una lista encadenada. Estos procesos utilizan unos datos en memoria compartida, en forma de las variables nelementos, primero y ultimo, ejecutando continuamente un bucle cuya especificación en C++ se muestra más abajo.

Indique y demuestre si este código presenta condiciones de carrera; en particular, si hay alguna sección crítica. Señale dónde y cómo colocaría en este código puntos de sincronización, por ejemplo mediante semáforos o cerrojos (semáforos binarios).

// datos compartidos por todos

// los procesos

int nelementos = 0;

struct Elemento

{

Cosa contenido; // cualquier cosa

Elemento* siguiente; // encadenamiento

};

Elemento *primero=NULL,*ultimo=NULL;

// Código que ejecuta cada proceso

for(;;)

{

Elemento *ptr = new Elemento;

ptr->siguiente = NULL;

nelementos++;

if (nelementos == 1)

primero = ultimo = ptr;

else

{

ultimo->siguiente = ptr;

ultimo = ptr;

}

... realiza otras cosas ...

}

5 (2'5 puntos) En cada uno de los siguientes 15 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 absoluta de esta pregunta se establecerá a partir de la fórmula

puntuación = 1/6 x respuestas correctas - 1/18 x respuestas erróneas

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. ¿En qué punto de la evolución histórica de los Sistemas Operativos se introduce la utilización de los lenguajes de alto nivel FORTRAN y COBOL?

a) Primeros sistemas

b) Sistemas de procesamiento por lotes

c) Sistemas multiprogrados

d) Sistemas de tiempo compartido


2. Con el empleo de la técnica denominada secuencia automática de tareas se logró:

a) Soportar multiprogramación

b) Soportar la interactividad

c) Reducir el tiempo de preparación (set-up time)

d) Todas las opciones anteriores son falsas


3. ¿En qué punto de la evolución histórica de los Sistemas Operativos se introduce la técnica denominada operación fuera de línea (off-line)?

a) Primeros sistemas

b) Sistemas de procesamiento por lotes

c) Sistemas multiprogramados

d) Sistemas de tiempo compartido


4. La característica funcional denominada independencia de dispositivo se comenzó a soportar con la utilización de la técnica de:

a) Buffering

b) Spooling

c) Operación fuera de línea

d) Secuencia automática de tareas


5. Un sistema de tiempo compartido es un caso particular de:

a) Sistema multiprogramado

b) Sistema monousuario

c) Sistema de procesamiento por lotes

d) Sistema monotarea


6. Los sistemas operativos de tiempo real se caracterizan por:

a) Ser sistemas muy veloces

b) Permitir la multiprogramación

c) Cumplir unas restricciones de tiempo de proceso definidas a priori

d) Ser sistemas monotarea


7. El sistema operativo UNIX es un caso de:

a) Sistema de procesamiento por lotes

b) Sistema multiprogramado

c) Sistema de tiempo compartido

d) Sistema monotarea


8. El sistema operativo UNIX es un caso de:

a) Sistema de procesamiento por lotes

b) Sistema multiprogramado

c) Sistema de tiempo compartido

d) Sistema interactivo


9. El prefijo de segmento de programa (PSP) es una estructura de control que:

a) Es común para programas tipo EXE y tipo COM

b) Es específica de los programas tipo EXE

c) Es específica de los programas tipo COM

d) Está en la zona de memoria ocupada por el núcleo DOS


10. El ejecutor del WINDOWS-NT es:

a) Un subsistema protegido

b) La parte del sistema que se ejecuta en modo núcleo (o sistema)

c) El responsable de la gestión de procesos e hilos

d) El responsable de cargar y ejecutar procesos e hilos


11. ¿Cuál de estas herramientas elimina por sí misma el riesgo de interbloqueo?

a) Instrucciones atómicas

b) Regiones críticas

c) Semáforos

d) Ninguna de ellas


12. ¿Cuál de estas herramientas elimina por sí misma el riesgo de inanición?

a) Instrucciones atómicas

b) Regiones críticas

c) Semáforos

d) Ninguna de ellas


13. La llamada fork() del UNIX

a) crea un nuevo proceso, compartiendo la memoria virtual del padre

b) crea un nuevo proceso, cuya memoria virtual es una copia de la del padre

c) crea un nuevo proceso, cuya memoria virtual es una copia de la del padre, pero compartiendo el mismo BCP

d) crea un nuevo proceso, ejecutando el programa que se pasa como argumento


14. Cuando un proceso intenta acceder a una dirección de memoria fuera de su ámbito, se genera...

a) una interrupción

b) una excepción

c) un aborto (abort) del proceso

d) la suspensión del proceso


15. Los semáforos...

a) no tienen sentido en sistemas de procesamiento por lotes

b) sólo son aplicables en sistemas de tiempo real

c) sólo son aplicables en sistemas que planifican procesos mediante round robin

d) son aplicables en sistemas que planifican procesos mediante SJF (o aproximaciones a esa política)