Sistemas Operativos Universidad Nacional de C´ ordoba Pr´ actico de Procesos, Hilos y Deadlock FaMAF
Ejercicio 1. . Indique cuantas letras “a” imprime este programa, describiendo su funcionamiento.
fork();
fork();
fork();
printf("a\n");
Generalice a n forks. (Analice para n=1, luego para n=2, etc., busque la serie y deduzca la expresi´ on general en funci´ on del n.)
Ejercicio 2. . Dados estos 3 procesos en paralelo
1: Pre: x = 0
P
0: a
0= x
;a
0= a
0+ 1
;x = a
0P
1: x = x + 1
;x = x + 1
P
2: a
2= x
;a
2= a
2+ 1
;x = a
2(a) ¿Qu´ e valores finales puede tomar x?
(b) Muestre para cada uno de los valores un escenario de ejecuci´ on que los produzca. (Numere las sentencias y construya la secuencia en base a la numeraci´ on.)
(c) ¿Cu´ antos escenarios de ejecuci´ on hay? ?¿Cu´ antos para cada valor final de x?
(d) Modifique el programa agregando sem´ aforos para que el resultado del multiprograma sea deter- minista (es decir, que no dependa del scheduler) y devuelva el m´ınimo valor posible.
Ejercicio 3. . Utilize sem´ aforos para sincronizar los procesos como lo indican los grafos de sincroniza- ci´ on. Explicitar los valores iniciales de los sem´ aforos.
(a) A // B // C // D (b) A // B
C // D
(c) B
@ @
@ @
@ @
@
A
@ @
@ @
@ @
@
~ ??~
~ ~
~ ~
~
D
C
>>~
~ ~
~ ~
~ ~
(d) A
@ @
@ @
@ @
@
B // D
C
>>~
~ ~
~ ~
~ ~
Ejercicio 4. . El siguiente programa asegura exlusi´ on mutua en las regiones cr´ıticas:
¬i0 && ¬i1 && ¬t==0 Proceso P0
1: while (1) {
2: {Regi´ on no cr´ıtica}
3: (i0,t) = (true,1) 4: while (t==1 && i1);
5: {Regi´ on cr´ıtica}
6: i0 = false 7: }
Proceso P1 A: while (1) {
B: {Regi´ on no cr´ıtica}
C: (i1,t) = (true,0) D: while (t==0 && i0);
E: {Regi´ on cr´ıtica}
F: i1 = false G: }
1
En general, y salvo que expl´ıcitamente se diga lo contrario, consideraremos la atomicidad a nivel de sentencia.
Las sentencias 3 y C son asignaciones m´ ultiples que se realizan de manera at´ omica. Por ejemplo, para el caso de la sentencia 3, las asignaciones y0 = 1 y s = 0 se realizar´ıan en un solo paso de ejecuci´ on.
Este protocolo es demasiado exigente en el sentido de que requiere la ejecuci´ ´ on de m´ ultiples asig- naciones en un s´ olo paso de ejecuci´ on (¡se necesitar´ıa implementar un mecanismo de exclusi´ on mutua en s´ı mismo para administrar esta atomicidad!). Analice cu´ al de las posibles realizaciones de este protocolo de exclusi´ on mutua —en el cual las asignaciones ya no son at´ omicas y hay que darle un orden determinado— es correcta.
Ejercicio 5. . Considere los procesos:
Pre: cont == true && x == 1 && y == 2 P0 : while (cont==TRUE && x<20) {
x = x * y;
}
P1 : y = y + 2;
cont = FALSE;
Post: cont == FALSE && x == ? && y == ? (a) Calcule los posibles valores finales de x e y.
(b) Si en P1 se cambia la instrucci´ on y = y + 2; por y = y + 1; y = y + 1; ¿Cambia esto los posibles valores finales? Justifique.
(c) En caso de que la modificaci´ on en el punto anterior introduzca cambios en los posibles valores finales, utilice sem´ aforos binarios para que vuelvan a devolver los mismos posibles valores del caso (a).
Ejercicio 6. . Considere los procesos P0 y P1 a continuaci´ on Pre: n==0 && m==0 P0 : while (n<100) {
n = n*2;
m = n;
}
P1 : while (n<100) { n = n+1;
m = n;
} Post: n==? && m==?
(a) ¿A cu´ anto pueden diferir como m´ aximo m y n durante la ejecuci´ on?
(b) ¿Cu´ antas iteraciones toman en el m´ınimo y m´ aximo caso en terminar?
(c) ¿Qu´ e valores pueden tomar n y m en la Post? Justifique de manera rigurosa.
(d) Sincronice los procesos con sem´ aforos de manera que se alternen entre P0 y P1 en cada iteraci´ on hasta el final de sus ejecuciones. ¿Qu´ e valor toman n y m al finalizar?
Ejercicio 7. . Considere los procesos (en este ejercicio considere el caso en que las sentencias son at´ omicas, y el caso en que no lo son):
Pre: importe==100 && iva==0 && gasto envio==100 && destino==?
P0 : importe = importe + gasto_envio; P2 : if (destino=="ARG") { iva = 0.21;
gasto_envio = gasto_envio + 100;
P1 : importe = importe + importe * iva;
} else {
gasto_envio = gasto_envio + 200;
iva = 0.1;
}
(a) Calcule los posible valores finales de la variable importe cuando destino=="ARG" y cuando destino=="BRA".
(b) Suponga que se cambia P1 por P1’ donde:
P1’: importe = importe * (1 + iva)
¿Cambia esto los posibles valores finales? Justifique.
(c) Sincronice los procesos usando sem´ aforos para que siempre se ejecuten en orden P2, P0, y final- mente P1.
Ejercicio 8. . Completar las tablas de planificaci´ on que aparecen debajo para las pol´ıticas: FIFO, SJF, SRTN, RR(Q=2), RR(Q=3), RR(Q=4). En cada caso realice el diagrama de planificaci´ on a modo de justificaci´ on del ejercicio. (T = tiempo total en el sistema, M = tiempo de espera en el sistema, P = penalidad)
(a) Proceso Arribo UsoCPU Inicio Fin T M P
A 2 3
B 0 1
C 4 2
D 7 4
E 1 6
(b) Proceso Arribo UsoCPU Inicio Fin T M P
A 0 2
B 2 6
C 4 3
D 5 9
E 9 6
Ejercicio 9. . Considere los siguientes procesos que muestran el siguiente comportamiento:
Pro ceso Arrib o Uso CPU Demora E/S Uso CPU Demora E/S Uso CPU Demora E/S Uso CPU
A 0 3 5 2 4 4 4 2
B 2 8 4 5 4 7 6 4
C 5 3 7 5 5 2 8 3
Realice el diagrama de planificaci´ on para un planificador RR (Q=2).
Ejercicio 10. . Realice el diagrama de planificaci´ on para un planificador RR (Q=2) con cuatro colas de prioridades para los siguientes procesos (la prioridad 0 es la m´ as alta):
Proceso Prioridad Arribo UsoCPU Inicio Fin T M P
A 1 0 7
B 0 1 3
C 0 2 4
D 2 4 3
E 1 7 4
F 0 12 3
Ejercicio 11. . Tenemos dos procesos peri´ odicos de tiempo real A, B:
Proceso UsoCPU Periodo
A 15 ms 30 ms
B 15 ms 40 ms
C 5 ms 50 ms
(a) Analice si los procesos cumplen con la condici´ on de planificabilidad en tiempo real.
(b) Realice el diagrama temporal de planificaci´ on para RMS y EDF e indique en cada caso si los deadlines se cumplen.
Ejercicio 12. . Considere los siguientes tres procesos que se ejecutan concurrentemente:
P
0: request(impresora)
;request(disco)
;release(disco)
;release(impresora)
P
1: request(impresora)
;release(impresora)
;request(cd)
;request(disco)
;release(disco)
;release(cd)
P
2: request(cd)
;release(cd)
;request(impresora)
;request(disco)
;request(cd)
;release(cd)
;release(disco)
;release(impresora)
(a) D´ e la planificaci´ on que lleva a un estado de deadlock.
(b) Sobre el escenario final de deadlock construya el grafo de recurso-asignaci´ on.
(c) Agregue sem´ aforos de manera de evitar que los procesos entren en deadlock. Trate de maximizar la concurrencia.
(d) Como soluci´ on alternativa, modifique m´ınimamente el ´ orden de los pedidos y liberaciones para que no haya riesgo de deadlock.
Ejercicio 13. . Asuma un sistema operativo donde peri´ odicamente se mata alg´ un proceso al azar.
¿Puede haber deadlock en este contexto?
Ejercicio 14. . Se tiene el siguiente EAR con 5 procesos y 4 clases de recursos con los valores
C R A
P0 1 0 2 0 0 0 0 0 0 1 0 2 P1 0 0 0 2 3 7 0 0
P2 2 0 4 0 2 5 2 4 P3 1 3 0 1 0 0 2 2 P4 2 3 2 0 2 3 0 0
(a) ¿Est´ an estos procesos en un estado seguro, inseguro o en deadlock? ¿Por qu´ e? ¿Cu´ ales procesos, si es que los hay, est´ an en deadlock?
(b) Si el proceso P3 pide (0,1,0,0), ¿puede concederse? ¿Qu´ e pasar´ıa si se lo concede de manera inmediata? ¿Cu´ ales procesos, si es que los hay, est´ an o podr´ıan estar en deadlock si este pedido fuera concedido?
Ejercicio 15. . Tenemos un EAR con 4 procesos y 5 clases de recursos. Los valores de los vectores y matrices son como se establece a continuaci´ on
C R A
P0 1 0 2 1 1 0 1 0 0 2 0 0 x 1 y P1 2 0 1 1 0 0 2 1 0 0
P2 1 1 0 1 0 1 0 3 0 0 P3 1 1 1 1 0 0 0 1 1 1
¿Para qu´ e valores de x resulta seguro si y = 2? ¿y si y = 1? Justifique su respuesta.
Ejercicio 16. . Tenemos un EAR con 4 procesos y 4 clases de recursos. Los valores de los vectores y matrices son como se establece a continuaci´ on.
C R A
P0 1 2 2 2 0 3 0 y 3 0 3 0 P1 3 2 1 1 3 0 2 0
P2 1 1 0 0 2 0 3 0 P3 1 0 1 1 6 0 1 x
¿Qu´ e conjunto de valores puede tomar x para que el EAR resulte seguro si y = 2? ¿y si y = 1?
Justifique su respuesta.
Revisi´on 1786, 2012-10-12