Práctico de Procesos, Hilos y Deadlock

Descargar (0)

Texto completo

(1)

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

0

P

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.

(2)

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;

}

(3)

(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

(4)

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.

(5)

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

Figure

Actualización...

Referencias

Related subjects :