Examen junio 2006

Anuncio
Sistemas Operativos II
Junio 2006
Nombre:
ITIS Castellano
Ejercicio 1 [1 punto]
1.
¿Por qué es más eficiente el cambio de contexto entre threads (hilos) que entre procesos?
2.
Describe brevemente la diferencia fundamental entre un sistema operativo basado en microkernel y uno
monolítico.
3.
En un sistema multiprocesador ¿Qué técnica es la más adecuada para implementar una sección crítica de
corto plazo? ¿Por qué?
4.
Describe dos campos del Descriptor de Dispositivo de un driver, explicando para qué se utilizan.
5.
Describe cuatro campos de un IORB, explicando para qué se utilizan.
Sistemas Operativos II
1/8
Junio 2006
Ejercicio 2 [0,5 puntos]
Completa la siguiente implementación de las primitivas de paso de mensajes, especificando el código de la función
enviar().
struct {
struct semaf huecos;
struct semaf items;
struct semaf mutex;
tipo_buffer mens[MAX_MENS];
} buzon[MAX_BUZONES];
/* Inicialmente: */
for (i=0; i<MAX_BUZONES; i++) {
ini_semaforo(buzon[i].huecos, MAX_MENS);
ini_semaforo(buzon[i].items, 0);
ini_semaforo(buzon[i].mutex, 1);
}
void enviar (int i, tipo_mensaje m)
{
}
void recibir (int i, tipo_mensaje m)
{
bajar(buzon[i].items);
bajar(buzon[i].mutex);
tomar_elemento(i, m);
subir(buzon[i].mutex);
subir(buzon[i].huecos);
}
Ejercicio 3 [0,5 puntos]
Un determinado sistema utiliza el Algoritmo del Banquero para la predicción de interbloqueos. En un momento
dado encontramos la siguiente situación:
R1
R2
R3
P1
1
1
1
P2
1
0
1
P3
1
0
0
P4
0
0
1
Recursos por asignar
Procesos
Procesos
Recursos asignados
Recursos totales
R1
R2
R3
R1
R2
R3
P1
1
1
2
4
2
4
P2
1
1
0
P3
2
0
1
P4
1
1
1
1.
Si P1 solicita un recurso de tipo R1, razona si su asignación conduce o no a un interbloqueo
2.
¿Qué inconvenientes presenta el Algoritmo del Banquero? ¿Qué otras alternativas conoces para evitar el
interbloqueo?
Sistemas Operativos II
2/8
Junio 2006
Ejercicio 4 [3 puntos]
Sean dos programas con el siguiente comportamiento:
Programa_A. Ejecuta un bucle infinito. En cada iteración, usa la CPU durante 8 ticks y se bloquea 4 ticks.
Programa_B. Ejecuta un bucle infinito. En cada iteración, usa la CPU durante 10 ticks y se bloquea 2 ticks.
En un sistema se lanza la ejecución de 4 procesos:
P1. Se lanza en el instante de tiempo T y ejecuta el código de Programa_A.
P2. Se lanza en el instante de tiempo T y ejecuta el código de Programa_B.
P3. Se lanza en el instante de tiempo T + 1 tick y ejecuta el código de Programa_A.
P4. Se lanza en el instante de tiempo T + 1 tick y ejecuta el código de Programa_B.
Considerando tres políticas de planificación:
Política 1. FIFO no expulsora.
Política 2. Round-Robin con quantum 5 ticks y sin expulsión por evento.
Política 3. Round-Robin con quantum 5 ticks y con expulsión por evento.
Se pide:
1.
Dibuja un cronograma de ejecución para los 40 primeros ticks si el sistema planificara los procesos
siguiendo la Política 1.
P1
P2
P3
P4
T
2.
+4
+8
+12
+16
+20
+24
+28
+32
+36
+40
Dibuja un cronograma de ejecución para los 40 primeros ticks si el sistema planificara los procesos
siguiendo la Política 2.
P1
P2
P3
P4
T
3.
+4
+8
+12
+16
+20
+24
+28
+32
+36
Para cada proceso, calcula los siguientes parámetros, considerando los 40 primeros ticks (nota: para el
tiempo de repuesta, considerar sólo la primera vez por cada proceso):
Sistemas Operativos II
3/8
Junio 2006
+40
Política 1
P1
P2
P3
P4
P1
P2
P3
P4
P1
P2
P3
P4
Tiempo de respuesta
Tiempo de espera
Tasa de CPU
Política 2
Tiempo de respuesta
Tiempo de espera
Tasa de CPU
Política 3
Tiempo de respuesta
4.
De las políticas descritas, ¿cuáles pueden considerarse de tiempo compartido? Razónalo.
5.
Calcular (en el caso general, con n procesos) las cotas del tiempo de respuesta para cada una de las políticas
anteriores.
6.
Para un tick de 0,01 s y un tiempo de cambio de contexto de 5 µs, calcula razonadamente una estimación
de la pérdida de eficiencia de la Política 2 con respecto a la Política 1, considerando que los procesos
descritos en el enunciado son los típicos que se ejecutan en ese sistema.
Sistemas Operativos II
4/8
Junio 2006
Ejercicio 5 [2 puntos]
En un sistema con memoria segmentada-paginada, un proceso puede tener hasta 8 segmentos de 256 páginas de 4
Kbytes. Si el tamaño de la memoria física es 1024 Mbytes. Responde razonadamente a las siguientes cuestiones:
1.
Dibuja los esquemas de las direcciones lógica y física.
2.
(a) ¿Cuál el tamaño máximo que puede tener un proceso? (b) ¿Cuántas tablas de páginas tiene cada
segmento?
3.
Indica qué tamaño tiene una tabla de páginas.
4.
Indica qué tamaño tiene una tabla de segmentos. Considera que una tabla de páginas puede almacenarse en
cualquier dirección de la memoria física.
5.
Si tuviéramos un sistema de memoria paginado simple (un único nivel de paginación), y mantuviéramos el
espacio de direccionamiento y el tamaño de página, ¿cuál sería el tamaño de una tabla de páginas?
6.
Si para la gestión de los huecos de memoria utilizáramos un mapa de bits, ¿cuál sería el tamaño del mapa de
bits en este sistema?
7.
Calcula la fragmentación externa e interna media (a) en el sistema segmentado-paginado, (b) en el sistema
paginado simple.
Sistemas Operativos II
5/8
Junio 2006
8.
Dependiendo de la ocupación de memoria de los programas, ¿cuál es el grado máximo de
multiprogramación, considerando que cada proceso tiene al menos 4 segmentos?
Problema 6 [1 punto]
Un sistema de memoria virtual sigue la política de reemplazo de páginas de la segunda oportunidad, con asignación
local y un máximo de 4 marcos de página para cada programa.
1.
La ejecución de un programa P genera la secuencia de referencias a páginas que se especifica en la cabecera
de la tabla de abajo. Considerando que inicialmente P tiene cargadas en memoria las páginas 0, 4 y 7, y
todas tienen su bit de referencia (R) a 1, describe en la tabla, para cada referencia, qué páginas están
cargadas memoria e indica cuándo se produce un fallo de página, anotando abajo la elegida como víctima.
Al aplicar el algoritmo del reloj, considera que inicialmente apunta al primero de los marcos de P (el que
contiene inicialmente la página 0, que se indica mediante el símbolo ).
Páginas de P en memoria
0
3
1
7
2
4
1
5
5
1
3
0
2
0 R
4R
7R
--
Víctima
2.
¿Te parece que la política de la Segunda Oportunidad es de tipo LRU? ¿Por qué?
3.
Describe brevemente una política que proporcione una mejor aproximación a LRU. ¿Qué estructuras
utilizaría?
Sistemas Operativos II
6/8
Junio 2006
Ejercicio 7 [2 puntos]
De acuerdo a las especificaciones del manual de UNIX, la llamada al sistema al sistema link(fich1, fich2) crea una
nueva entrada de nombre fich2 para el fichero fich1, es decir, establece un nuevo enlace hardware al inodo que
representa dicho fichero. La llamada unlink(fich) elimina el inodo asociado cuando la cuenta de enlaces hardware llega
a cero. Un inodo no se libera hasta que la cuenta de referencias de enlaces hardware (nlinks) llega a cero. Por otra
parte, si algún proceso tiene un fichero abierto, el fichero no se borra hasta que el último proceso cierra el fichero.
En un sistema de ficheros UNIX tenemos en un momento dado la siguiente información:
/usr
…
…
fich
nlinks = 1
…
size = 1050 bytes
…
ap. directo 1 = 123
ap. directo 2 = 606
…
Considera la siguiente ejecución concurrente de dos procesos (la primera columna establece el orden temporal de la
ejecución de cada llamada al sistema):
Proceso 1
1
Proceso 2
link("/usr/fich", "/home/fich");
unlink("/usr/fich");
2
3
fd= open("/home/fich", O_RDONLY);
4
lseek(fd, 1040); /*posiciona en el byte 1040*/
5
read(fd, buf, 10);
6
close(fd);
1.
Explica paso a paso los efectos que tiene la ejecución concurrente de los procesos 1 y 2 en directorios
e inodos, representándolo además en la figura de arriba.
Sistemas Operativos II
7/8
Junio 2006
2.
Considerando un tamaño de bloque de 1024 bytes, calcula (a) longitud en bloques del fichero
/home/fich, (b) la máxima longitud de fichero representable en este sistema, (c) la capacidad de
direccionamiento del sistema de ficheros.
3.
Calcula la fragmentación interna de los ficheros /home/fich y /usr/fich.
4.
Explica cuáles son los bloques a los que accede el proceso 1 entre los pasos 3 y 6.
5.
Dado un disco de 4096 cilindros de 10 pistas de 2048 sectores de 512 bytes, calcula (a) tamaño del
disco, (b) en qué cilindro, pista y sectores se ubica el bloque absoluto al que accede el proceso 1 en el
paso 5 (razona el cálculo).
Sistemas Operativos II
8/8
Junio 2006
Descargar