EXAMEN SISTEMAS OPERATIVOS 2º CURSO EUITT JUNIO 2000

Anuncio
EXAMEN SISTEMAS OPERATIVOS
2º CURSO E.U.I.T.T.
JUNIO 2000
1. En un sistema operativo multiproceso se encuentran 3 procesos (p1, p2 y p3). Cada proceso realiza
ciclos de unos de CPU y espera de entrada/salida
cpu
e/s
cpu
e/s
cpu
e/s
cpu
e/s
P1
1
4
1
2
4
3
1
1
P2
2
1
2
1
2
1
2
1
p3
0
2
3
5
2
1
2
2
cpu
5
Dibujar un diagrama que represente el estado de la CPU (qué proceso se encuentra en ejecución en
cada momento.
1.A. Para modo de procesamiento por batch. (0.5 puntos)
1.B. Para Round-Robin (todos los procesos tienen la misma prioridad y la rodaja de tiempo es de 1
segundo. (1 punto)
1.C. Con prioridades (sin expropiación). Las prioridades son P1>P2>P3. (1 punto)
1.D. Con prioridades (con expropiación). Las prioridades son P1>P2>P3. (1 punto)
2. Un sistema de ficheros tiene como registro de los directorios: (record tipo_fich)
nombre
tipo (FILE o DIR)
tamaño
index block
Se cuenta con las siguientes funciones y tipos:
- punt_f: tipo de datos que apunta a un fichero abierto.
- open( <nombre fichero>) : punt_f (devuelve NULL si no existe el fichero)
- close(punt_f)
- read(punt_f,tipo_fich,indice) Lee el registro “tipo_fich” del fichero “punt_f” que se encuentra en la posición “indice”. “indice” vale 0 para el primer registro, 1 para el segundo, ... (devuelve FALSE si el no existe
el registro “indice”)
2.A. Crear un algoritmo que imprima en pantalla todos los ficheros (no los directorios). Este algoritmo
imprime juntos todos los ficheros de un directorio.(1.5 punto)
2.B. Dibujar la siguiente estructura: (0.5 punto)
“raiz”: <F1, DIR, 512,1> <F8,FILE, 512,5> <F9, FILE, 1024, 3> <F2,DIR,512,10>
“F2”: <F7,FILE,1024,11> <F3,DIR,2048,33>
“F1”: <F12,FILE,512,100> <F11,DIR,512,111>
“F11”: <F5,FILE,512,123> <F4,FILE,512,124> <F13,DIR,512,125>
“F13”:
“F3”: <F6,FILE,512,127> <F10,FILE,1024,129>
2.C. Aplicando el algoritmo desarrollado anteriormente imprimir la lista de ficheros. (0.5 punto)
3. Se quiere implementar un semáforo binario con espera pasiva (los procesos que están esperando por
el semáforo se pasan a una cola de dicho semáforo y se eliminan de la cola de procesos activos)
Disponemos de los siguientes tipos y procedimientos:
- cola_fifo: tipo de datos
- push (cola_fifo, proceso) (introduce en la cola el proceso)
- pop(cola_fifo): proceso (extrae de la cola el primer proceso y lo guarda en “proceso”)
- cola_vacia(cola_fifo) (TRUE si está vacia y FALSE si está llena)
3.A. Crear las funciones Wait y Signal. (2 punto)
3.B. La siguiente secuencia indica el proceso y la primitiva que ejecuta ordenadas en el tiempo: <p1,
wait> <p2, wait> >p3, wait> <p1, signal> <p4, wait> <p2, signal>. (1 punto)
Dibujar el estado de la cola del semáforo después de cada instrucción y el estado de cada proceso (activo o suspendido). Al comenzar la ejecución todos los procesos están en el estado
“activo” y el semáforo vale 1.
3.C. Analizar la secuencia <p1, wait> <p2, wait> >p3, wait> <p1, signal> <p4, wait> <p5, wait> <p4,
wait>. Explicarla. (1 punto)
Descargar