You are on page 1of 24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos.

Universidad Tecnolgica Nacional


Planificacin 1. Sean los cinco procesos descritos en la tabla siguiente: Proceso A B C D E Tiempo de creacin 4 0 1 8 12 Tiempo de CPU 1 5 4 3 2

Si suponemos que tenemos un algoritmo de planificacin que utiliza una poltica FIFO a) Tiempo medio de respuesta b) Tiempo medio de espera c) La penalizacin, es decir, el cociente entre el tiempo de finalizacin y el tiempo de CPU. Resolucin Diagrama de Gannt E D C X B X A 0 1 2 3

X X

X 4 5 6 7 8 9 10 11 12 13 14 15

Cola de Listos B, C, A , D, E X = tiempo de llegada al sistema TfA=6 TfB=5 TfC=8 TfD=5 TfE=3 a) Tmedioderespuesta= (6+5+8+5+3)/5 = 5,4 b) TeA=5 TeB=0 TeC=4 TeD=2 TeE=1 Tesp= 5+0+4+2+1= 12 5 c) TpenalA=6/1 TpenalB=5/5 TpenalC=8/4 TpenalD=5/3 TpenalE=3/2 2. Utilizando los valores del problema de la tabla anterior, calcular los tiempos medios de espera y respuesta para los siguientes algoritmos: a) Round-Robin con quantum q=1. b) Round-Robin con quantum q=4.

Pgina 1/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
a) A B X C X D E X

X X

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 T=0 la cola de listos solo tiene a B y este pasa a ejecutar T=1 se le acaba el quantum de tiempo al B y llega C como la int. de reloj tiene prioridad, entonces B pasara a la cola de listos y C queda detrs B pasa a ejecutar nuevamente. T=2 se produce el intercambio BC queda B en copla de listos. T=3 se produce el intercambio CB queda C en cola de listos. T=4 se produce el intercambio BC primero y luego se carga A quedan B, A en la cola de listos (en ese orden). T=5 se produce el intercambio CB . Quedan A, C en cola de listos. T=6 se produce el intercambio BA . Quedan C, B en cola de listos. T=7 se produce el intercambio AC . Quedan B en cola de listos, ya que A finaliz. T=8 se produce el intercambio CB . Quedan C, D (llega en ese momento) en cola de listos. T=9 se produce el intercambio BC . Queda D en cola de listos, ya que el B finaliza. T=10 se produce el intercambio CD . Queda vaca la cola de listos , ya que el C finaliza. T=11 contina ejecutando D ya que no hay procesos en cola de listos. T=12 se le acaba el quantum de tiempo al D y llega E como la int. de reloj tiene prioridad, entonces D pasara a la cola de listos y E queda detrs D pasa a ejecutar nuevamente. T=13 se produce el intercambio DE . Queda vaca la cola de listos , ya que el D finaliza. T=14 contina ejecutando ya que no hay procesos en cola de listos. T=15 E finaliza. Tiempo de espera = T finalizacin-T llegada-T CPU TeA=2 TeB=4 TeC=5 TeD=2 TeE=1 TeProm=(2+4+5+2+1)/5=2,8 Tiempo de respuesta TrA=7-4=3 TrB=9-0=9 TrC=10-1=9 TrD=13-8=5 TrE=15-12=3 Trprom=(3+9+9+5+3)/5=5,8 b) q=4

Pgina 2/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
A B X C X D E X

X X

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Tiempo de espera = T finalizacin-T llegada-T CPU TeA=5 TeB=4 TeC=3 TeD=2 TeE=1 TeProm=(5+4+3+2+1)/5=3 Tiempo de respuesta TrA=10-4 TrB=9-0=9 TrC=9-1=8 TrD=13-8=5 TrE=15-12=3 Trprom=(4+4+8+5+3)/5=4,8

3. Calcular el tiempo de espera medio para los procesos de la tabla utilizando el algoritmo Primero el de tiempo restante menor (SRTF). Proceso A B C D E Tiempo de creacin 0 1 3 9 12 Tiempo de CPU 3 1 12 5 5

Este es un algoritmo Preemptive , donde se otorga el procesador al que menor tiempo restante estimado tiene. A X B X X C D X E X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Tiempo de espera = T finalizacin-T llegada-T CPU TeA=1

Pgina 3/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
TeB=0 TeC=11 TeD=0 TeE=2 TeProm=(1+0+11+0+2)/5=2,8 Tiempo de respuesta TrA=4-0=4 TrB=2-1=1 TrC=25-3=22 TrD=14-9=5 TrE=19-12=7 Trprom=(4+1+22+5+7)/5=7,8 4. Utilizando la tabla del ejercicio anterior, dibujar el diagrama GANTT para el caso de un sistema que utiliza un algoritmo con prioridades: Proceso A B C D E Prioridad 2 1 4 5 3

Como las prioridades son fijas asumimos que es un algoritmo NonPreemptive. A X B X C D E 0

X X X

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Tiempo de espera = T finalizacin-T llegada-T CPU TeA=0 TeB=2 TeC=1 TeD=12 TeE=4 TeProm=(0+2+1+12+4)/5=3,8 Tiempo de respuesta TrA=3-0=3 TrB=4-1=3

Pgina 4/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
TrC=16-3=13 TrD=26-9=17 TrE=21-12=9 Trprom=(3+3+13+17+9)/5=9

5. Consideremos los procesos cuyo comportamiento se recoge en la tabla siguiente: Proceso A B C D Tiempo creacin 0 1 2 4 CPU 1 1 2 4 Bloqueo 2 1 1 Comportamiento CPU Bloqueo CPU 1 2 1 1 2 1 1 1 2 Bloqueo 1 CPU 1 -

Dibujar el diagrama de ocupacin para los siguientes algoritmos: a) FIFO b) Round-Robin con q=3 RESPUESTA: A B C D

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 T=0 READY A T=1 READY B T=2 READY C T=3 READY A B T=4 READY A B D T=5 READY B D C

Pgina 5/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
T=6 READY D C T=7 READY C A B T=10 READY C A B T=12 b) Q=3 A B C D READY A B T=13 READY B C T=14 READY C

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 T=6 READY D C T=7 READY C A B T=9 READY C A B T=11 READY A B D T=12 READY B D C T=13 READY D C T=14 READY C

T=0 READY A T=1 READY B T=2 READY C T=3 READY A B T=4 READY A B D T=5 READY B D C

Pgina 6/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
6. Rehacer el ejercicio anterior utilizando el algoritmo de primero el ms corto, suponiendo que la estimacin de cada rfaga coincide con la duracin de la rfaga anterior.

7. Dados dos procesos : A : CPU15 DISCO 15 CPU5 DISCO5 CPU5 B: CPU10 DISCO20 CPU15 IMPRESORA 15 CPU 5 Tiempo del Sistema Operativo.=5 Quantum = 10 Retardo de Impresin = 10 Latencia de Disco = 5
3 Ready 2 5 7 Impresora Disco 4 6 Exec

1 New

8 Fin

Se pide calcular el tiempo de Finalizacin de cada proceso y mostrar la ejecucin de cada mdulo del Sistema Operativo.

S 1 1 2 O A B A

3 2 A B

4 2 B A

4 A d i s c

5 2 B B o

5 A

6 2 B A I

4 A M P R E

5 7 2 A B A

8 A

2 B

8 B

B d i A s c o

1 0

1 2 2 5 0 5

3 0

3 4 4 5 0 5

5 0

5 6 5 0

6 7 7 5 0 5

8 0

8 9 9 5 0 5

1 5 0 0

1 0

1 5

2 0

2 5

3 0

3 5

4 0

4 5

5 5 0 5

6 0

6 5

7 0

8. Se deben itinerar 5 procesos con distintos algoritmos. Los procesos llegan todos al mismo tiempo en el siguiente orden: P1, P2, P3, P4 y P5. El tiempo de CPU y las prioridades son: Proceso P1 P2 P3 P4 P5 Prioridad 10 1 2 1 5 Tiempo de CPU 4 1 3 5 2

Pgina 7/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
Completar la siguiente tabla: Algoritmo FCFS RR (tq=1) SJF Prioridad no Interrumpible Tiempo turn around Promedio Tiempo de Espera Promedio

9. Final 22-07-2006 19 de Julio de 2006 9 PM, en una importante empresa de telefona celular en EEUU. Nick, el Administrador de servidores,
estuvo monitoreando un nuevo servidor que se compr para dar servicio de mensajes de texto a los clientes, cuyo software fue desarrollado por Tom. Durante dicho monitoreo, Nick ve que los indicadores de performance del sistema no son los correctos, por lo que decide realizar un anlisis de la situacin. Durante los primeros 15 minutos de anlisis nota que est corriendo en el sistema operativo XP un proceso que no es fcilmente identificable, ya que el mismo ejecuta de forma espordica, lo que hace que afecte a los procesos que se encuentran corriendo en el servidor. Dicha situacin es preocupante debido que la Compaa no podr brindar un buen servicio a los clientes, justo cuando mayor es la utilizacin de este tipo de servicio, debido a la vspera del Da del Amigo. Es por ello, que Nick decide llamar a Tom para ver si l le puede dar una solucin. Lo que l le indica es que el sistema operativo utiliza un planificador Round Robin con un quantum de 3 ciclos con una nica cola de bloqueados que atiende por FIFO. Esta cola de bloqueados tiene prioridad por sobre la de listos. A su vez, Tom le enva por fax a Nick el siguiente detalle con la ejecucin de los 4 procesos que ejecuta el SW: P1 0 3 6 1 2 1 P2 ULT A 1 4 2 2 3 1 1 2 1 2 3 2 1 P3 ULT B ---------4 T. Llegada en Ciclos CPU (En Ciclos) IO (En Ciclos) CPU (En Ciclos) IO (En Ciclos) CPU (En Ciclos) RCA Referencias

RCA HB HA P3 P2 P1
0

X X X X
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 5

Condiciones Q=3 ciclos del S.O. para el Round Robin. q = 2 ciclos biblioteca de Threads

Pgina 8/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
1) T=0 el nico procesos en el sistema es P1 pasa a ejecucin. 2) T=1 P1 est en ejecucin Ready P2 3) T=2 Llega el proceso 3 con sus 2 hilos P1 est en ejecucin Ready P2 P3 4) T=3 P2 est en ejecucin Ready P3 Bloqueados I/O P1 5) T=6 P3 est en ejecucin HA ejecuta 1 ciclo y pide I/O Ready P2 Bloqueados I/O P1 6) T=7 P2 est en ejecucin Ready P2 Bloqueados I/O P1 P3:H1 7) T=8 RCA pasa a ejecucin durante 3 ciclos Ready P2 Bloqueados I/O P1 P3:HA P2 8) T=9 RCA en ejecucin Ready P1 Bloqueados I/O P3:H3 P2 9) T=11 P1 pasa a ejecucin P3 vuelve de I/O y RCA termina su quantum, como I/O tiene prioridad entonces queda : Ready P3 RCA Bloqueados I/O P2 10) T=12 P3:HA pasa a ejecutar 1 ciclo y finaliza. Ready RCA Bloqueados I/O P2 P1 11 ) T=13 P3:HB durante 2 quantums Ready RCA P2 Bloqueados I/O P1 12) T=15 RCA ejecuta 1 ciclo y finaliza Ready P2 P1 P3:HB Bloqueados I/O 13)T=16 P2 ejecuta Ready P1 P3:HB Bloqueados I/O 14)T=18 Ejecuta P1 y finaliza Ready P3:HB Bloqueados I/O P2 15) T=19 Ejecuta P3:HB Ready Bloqueados I/O 16) T=20 Ejecuta RCA Ready Bloqueados I/O P2 P3:HB 17) T=21 Ejecuta RCA Ready P2 Bloqueados I/O P3:HB 18) T=23 Ejecuta P2 y finaliza Ready P3:HB RCA Bloqueados I/O 19) T=24 Ejecuta P3:HB Ready RCA Bloqueados I/O 20) T=25 Ejecuta RCA y finaliza Ready Bloqueados I/O

Pgina 9/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
10.

FINAL 06/12/2003
Un sistema computacional de un solo procesador planifica el procesamiento de trabajos segn el siguiente modelo:
Fin de Quantum

Cola de largo plazo Llegada

Cola de corto plazo CPU Salida

Cola de E/S Planificacin Largo Plazo E/S Planificacin Corto Plazo

La planificacin de largo plazo se encarga de mantener el grado de multiprogramacin en tres procesos, usando una poltica SJF (Shortest Job First). En el corto plazo el procesador es asignado usando una poltica de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos: Proceso P1 P2 P3 P4 P5 P6 Tiempo de llegada 0 0 2 4 10 15 CPU 5 2 3 6 2 3 E/S 3 4 4 2 3 4 CPU 3 3 2 2 2 4 Tiempo estimado de proceso (SJF) 12 10 8 11 7 12

Para la resolucin del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de corto plazo, ordnelos arbitrariamente en el siguiente orden: 1) fin de E/S, 2) Cola de Largo Plazo y 3) fin de quantum. Suponiendo que el overhead para el cambio de contexto es despreciable y que existe un nico dispositivo de E/S (el cual planifica FIFO) se pide la traza de ejecucin de los procesos mediante un Diagrama de Gantt.

SOLUCIN
CPU E/S 1 P2 P2 P1 P1 P3 P3 P1 P1 P2 P2 P3 P1 P2 P5 P5 P3 P3 P4 P4 P1 P1 P4 P4 P5 P5 P2 P2 P2 P2 2 3 4 5 6 P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

CPU P1 P4 P4 P6 P6 P4 P4 P6

P6 P6 P6 P6

Pgina 10/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
E/S P4 P4 P6 P6 P6 P6 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Proceso Instante en que ingresa Instante en que finaliza P1 0 26 P2 0 (encola primero por SJF) 13 P3 2 17 P4 17 32 P5 13 25 P6 25 41 11. Un sistema distribuido cuenta con dos maquinas Pentium 200 MMX con 65 Mb de memoria. La maquina A usa algoritmo SRT (Shortest Remaining time) para dispacher y solo posee un disco rgido de 1.8 Gb y la maquina B usa algoritmo FIFO y tiene una impresora lser blanco y negro. Solo se migran los procesos por la falta de recursos, y esto consume un ciclo de reloj. Dibuje cada cola de Listos, ejecutados y bloqueado para cada ciclo. Los relojes de ambas maquinas estn perfectamente sincronizados. Proceso 1 Maquina A Ciclo inicio 0 Recurso CPU Disco CPU CPU Disco CPU CPU Impresora CPU Ciclo duracin 3 1 2 1 2 4 1 2 1

Sincronizacin, Semforos y Deadlock 12. De un ejemplo donde el algoritmo que utiliza TSL produce inanicin (Starvation) Supongamos que tenemos tres procesos A, B y C y las variable ocupado=0 READY

B
C BLOCK

En este instante A que est en ejecucin hace TSL(ocupado) dejando ocupado=1 READY

C, A
BLOCK

Pgina 11/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
Luego pasa B a ejecucin y hace TSL(ocupado) quedando en espera activa . Luego C pasa de bloqueados a Listos, ubicndose detrs de A en la cola. Cuando se le acaba el quantum de tiempo a B pasa a Listos y A a EJECUCIN. READY

B, C

BLOCK A coloca ocupado = 0 Cuando C pasa a ejecucin hace TSL(ocupado) como ocupado estaba en 0 lo coloca en 1 y pasa a utilizar la regin critica, ingresando a esta antes que B y si esta situacin se repite B puede padecer inanicin 13. dados los procesos A y B con variables compartidas, se pide verificar si pueden ejecutar en paralelo. De no ser as en que orden podran ejecutar. A B c=b+d m=6*x+k h=c+f+g print m/c print c Segn las condiciones de Berstein RA={ b,d,c,f,g,} RB={x,k,m,c} WA={c,h} WB={m} RAWB= WAWB= RBWA={c}

Este grupo de sentencias no se pueden ejecutar en paralelo

c=b+d

h=c+f+g print c

m=6*x+k print m/c

14. Dado el siguiente grafo de precedencia, colocar los semforos para asegurar la ejecucin de los procesos en ese orden.

Pgina 12/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional

RESOLUCIN Valores Iniciales de los semforos a=1 b1=b2=b3=c1=c2=d1=d2=d3=d4=0 S1 P(a) ---------V(b1) V(b2) V(b3) S2 P(b1) ------------V(c1) V(c2) S3 P(b2) ------------v(d3) S4 P(b3) ------------V(d4)

S5 P(c1) ------------------------V(d1) S7 P(d1) P(d2) P(d3) P(d4) -------------V(a)

S6 P(c2) ---------------------------v(d2)

15. Sincronizar A y B de tal manera que: a.- Siempre el resultado de la ejecucin sea 50 y 200 o 200 y 50. b.- Siempre el resultado de la ejecucin sea 50 y 200 A B

Pgina 13/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
X=199 X=x+1 Print (X) RESOLUCIN a.- Como no se necesita darle un orden a la ejecucin slo se debe poner mutua exclusin, por lo tanto con un semforo basta. A B P(mutex) P(mutex) X=199 X=500 X=x+1 X=X/10 Print (X) Print(X) V(mutex) V(mutex) b.- Aqu se necesita darle un orden a la ejecucin por lo tanto se utilizar semforos cruzados. A B P(s) P(k) X=199 X=500 X=x+1 X=X/10 Print (X) Print(X) V(k) V(s) Para que B se ejecute primero el valor del semforo k debe estar en 1 y s en 0 k=1 s=0 16. Colocar los semforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia ABCABC A P(s) -------------V(k) B P(k) ---------V(r) P(r) ---------V(s) X=500 X=X/10 Print(X)

Para que A ejecute primero s=1, k=0, r=0

17. Colocar los semforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia BACABACA B P(s) ------V(k) C P(k) ------V(s)

Para comenzar con B el valor inicial de s=1 k=0 Luego para interambiar con A el valor inicial de a=0

Pgina 14/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
A P(a) ------V(b) B P(s) P(b) ------V(k) V(a) C P(k) P(b) ------V(s) V(a)

18. Colocar los semforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia A(BC)A(BC) Si queremos que BC ejecuten solo uno a la vez podramos reemplazarlos por un proceso X A P(k) ------V(s) X P(s) ------V(k)

B P(s) ------V(k)

C P(s) ------V(k)

Entonces combinamos las dos soluciones A P(k) ------V(s) B P(s) ------V(k) C P(s) ------V(k)

Para comenzar con el proceso A inicializamos k=1 y s=0 19. Colocar los semforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia A(ByC)A(ByC) A P(k) P(k) ------V(s) V(a)

Pgina 15/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
B P(s) ------V(k) C P(a) ------V(k)

Valor inicial del semforo k=2, s=0,a=0 20. El que sigue nos muestra 2 procesos concurrentes que comparten una variable global x (las restantes variables son locales a los procesos). Declaracin, Inicializacin de Variables y Semforos var x: entero P1 P2 while (TRUE) { leer_teclado (d); x := d c * 5; }

While (TRUE) { m = 2 * x n; imprimir (m); }

a) Sincronizar los procesos para que P1 use todos los valores x suministrados por P2. Declaracin, Inicializacin de Variables y Semforos var x: entero P1 P2 While (TRUE) while (TRUE) { { P(s) P(k) m = 2 * x n; leer_teclado (d); imprimir (m); x := d c * 5; V(k) V(s) } } s=0, k=1

b) Sincronizar los procesos para que P1 utilice un valor S y otro No de la variable x, es decir, utilice los valores primero, tercero, quinto, etc. Declaracin, Inicializacin de Variables y Semforos var x: entero P1 P2 n=0 While (TRUE) while (TRUE) { { P(s) P(K) m = 2 * x n; n++; imprimir (m); leer_teclado (d); V(K) x := d c * 5; } if (n mod(2)=0) v(k); else V(s); } n es una variable local a P2

Pgina 16/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
Otra solucin: Declaracin, Inicializacin de Variables y Semforos var x: entero P1 P2 while (TRUE) { P(K) leer_teclado (d); x := d c * 5; V(s); }

While (TRUE) { P(s) P(s) m = 2 * x n; imprimir (m); V(K) V(K) }

K=1, s=1 para que la primera vez ejecute. 21. Se tienen 2 procesos paralelos: int x = 0; Proceso A { while (TRUE) x = x + 1; } { while (TRUE) print (x); } Proceso B

a) Sincronizar usando semforos para que se escriba la secuencia: 0, 1, 2, 3, 4, 5 ... b) Sincronizar usando semforos para que se escriba la secuencia: 1, 4, 7,10,13 ... 22. Dadas la siguiente secuencia lgica y los valores iniciales de los semforos, verificar si esta es la secuencia normal de ejecucin y si est bien realizada la sincronizacin. X P(S) P(C) Y P(R) P(B) Z P(R)

V(C) V(R) V(S) V(B) V(S)

Con los valores iniciales de S=1,R=0,B=0,c=1 y cuya secuencia normal de ejecucin sera XYXZXYXZ S 1 0 R 0 C 1 0 1 1 0 -1 0 -1 -1 P(S) P(C) P(R) B 0 X P(S) P(C) ---V(R) V(S) P(R) P(B) Y QB X QC Z QR Y Z Q

Pgina 17/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
P(C) Esta sincronizacin esta mal realizada ya que todos los procesos terminan bloqueados. 23. Explique qu pasa con la rutina A: P(R) P(S) P(T) .... V(T) V(S) V(R) desde el momento en que en la ejecucin de V(T) los valores de los semforos son T = -1, S = -1, R= 0, hasta que finalice ella de ejecutarse ntegra. RTA: T -1 0 0 0 S -1 -1 0 0 R 0 0 0 1

V(T) V(S V(R)

Al finalizar la rutina A, los semforos quedan con valores no negativos. 24. Si la rutina de WAIT o P( ) que asocia un semforo a una cola, guarda los pedidos de espera en la forma de pila (LIFO), Qu problema puede acarrear? Respuesta: No respetara el orden de los pedidos y podra algn proceso padecer inanicin. 25. Dada la siguiente secuencia lgica y los valores iniciales: Q P(D) ... ... V(B) V(S) Valores iniciales S =1, T=0, B=1, C=0, D=0. Explique cul es la secuencia normal de ejecucin. RESPUESTA: Para encontrar la secuencia normal de ejecucin debemos seguir los valores de los semforos habilitados . Como S=1 y B=1 podramos comenzar por la ejecucin con X, pasa el semforo B y se bloque a en el semforo T , por lo tanto solo podr ejecutar Y primero Y ,cuando este finaliza habilita el sem. T ,entonces ejecuta X . este habilita el semforo C , entonces puede ejecutar Z, que habilita el sem D y puede ejecutar Q que deja B=1 y S=1 la secuencia normal es YXZQ 26. Para calcular el nmero combinatorio (n k) = n(n-1)(n-2)...(n-k+1)/k!, desarrollamos un programa con dos procesos. El proceso P1 calcula el numerador y deposita el resultado en una variable compartida, denominada x, mientras que P2 calcula el factorial y deposita el valor en la variable y. Sincronizar los procesos P1 y P2, utilizando semforos, para que el proceso P2 realice la divisin, es decir x/y. Inicializacin de variables globales y semforos N, k, x=1, y=1, enteros X P(B) P(T) ... V(C) Y P(S) ... ... V(T) Z P(C) ... ... V(D)

Pgina 18/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
P1 For i= n k +1 to n do { X = x + i; } Y=:1 For j=2 to k do { y:=y * j; } escribir (x/y); P2

RESPUESTA: Se Agrega el semforo s inicializado en 0 Inicializacin de variables globales y semforos N, k, x=1, y=1, enteros s:=0 : semforos P1 For i= n k +1 to n do Begin X = x + i; End; Signal (s) Y=:1 For j=2 to k do Begin y:=y*j; end wait (s); escribir (x/y); P2

27. Dada la siguiente situacin: Hay un puente colgante sobre el ro, tan angosto que slo una persona puede cruzar a la vez. Implementar algn tipo de sincronizacin para ordenar el paso por el puente y evitar tambin la espera indefinida en una u otra orilla 28. Final:03/03/2001

Ejercicio 2 Muestre en forma clara de que manera se ejecutarn los siguientes procesos, considerando que se ejecutan en paralelo, y detalle que procesos terminaron y cuales no y por que razn. Inicializacin de los semforos: I, B, A, C, P = 0 M, K, G = 1 P1 P2 P3 P4 P5 P6

Pgina 19/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
D(I) U(I) D(P) U(P) D(K) Resolucin: A 0 B 0 C 0 G 1 I 0 K 1 M 1 P 0 P1 P2 P3 P4 P5 P6 D(M) U(A) D(I) U(I) D(K) U(M) U(B) D(C) D(G) U(G) D(A) D(A) U(I) D(K) U(K) D(P) U(C) D(P) D(M) D(G) U(M) D(K) D(K) U(A) D(I) U(I) D(M) U(K)

Bloqueados: Deadlock: Starvation: Termina: 29/12/01 Resuelva la siguiente tabla sabiendo que el semforos C esta inicializado en 1 y el resto se encuentran en 0. P1 D(M) D(I) U(R) U(J) U(I) U(P) Resolucin: A B C E I J L M O P R P1 P2 P3 P4 P5 P2 D(E) D(B) D(A) U(E) D(L) U(A) P3 D(R) D(I) D(J) U(E) U(I) U(B) P4 D(B) D(c) D(O) U(E) D(P) U(L) P5 D(C) U(A) U(I) U(C) U(M) U(O)

Pgina 20/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
0 0 1 0 0 0 0 0 0 0 0

P1, P2, P4 quedan bloqueados P3 y p5 terminan. 17/02/2001 De existir, muestre una secuencia de eventos para los cuales P1 , y P2 entran en DEADLOCK. Los semforos son: s1, s2 (Semforos Mutex). Void P1() { While(1) { Down (s1); Down (s2); Printf(Bambu); Up (s1); Up (s2); } } Respuesta: El enunciado nos dice que ambos semforos (s1 y s2) son Mutex. Esto quiere decir que se encuentran inicializados en 1. Ambos procesos (p1 y p2) se ejecutan al mismo tiempo. Cuando P1 ejecuta la sentencia: Down (s1); S1 que estaba en 1 pasa a estar en 0 y supongamos que en ese instante se le acaba el quantum de tiempo y ejecuta P2 haciendo un Down (s2); S2 estaba en 1 pasa a estar en 0 y cuando P2 ejecute S1 queda bloqueado. Cuando le vuelve a tocar el procesador a P1 ejecuta S2 y queda bloqueado Void P2() { While(1) { Down (s2); Printf(Guetzel); Down (s1); Up (s2); Up (s1); } }

Pgina 21/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
Entonces ambos procesos quedan en DEADLOCK 29. En un sistema de computacin real, ni los recursos disponibles ni los requerimientos de los procesos por recursos se mantienen por largo tiempo. Los recursos se rompen o son reemplazados, los procesos vienen y van, se agregan nuevos recursos al sistema, etc. Si en tal sistema, los bloqueos se controlan con el algoritmo del banquero, cules de los siguientes cambios se puede hacer con seguridad (sin introducir posibilidad de bloqueos) y bajo qu circunstancias?: Incrementar AVAILABLE (se agregan nuevos recursos). Decrementar AVAILABLE (se eliminan recursos del sistema). Incrementar MAX para un proceso (el proceso necesita ms recursos que los permitidos). Decrementar MAX para un proceso (el proceso decide que no va a necesitar algunos recursos). Incrementar el nmero de procesos. Decrementar el nmero de procesos. 30. Hallar la matriz de necesidad. Tener en cuenta que el sistema usa el Algoritmo del Banquero para bloquear a los procesos que piden ms recursos que los disponibles. Solo se asignara a un proceso los recursos que necesite, si estos son todos los que va a necesitar para completar la ejecucin. El nmero de los procesos corresponde con el orden de llegada. Se deber utilizar el algoritmo de planificacin FCFS. Adems indicar si el sistema es seguro o no (o sea verificar si ningn proceso queda sin los recursos necesarios).

P1 P2 P3 P4 P5

Peticiones Mximas R1 R2 R3 R4 2 3 2 5 1 2 6 3 0 2 4 5 3 0 5 2 3 4 5 4

R1 1

Disponibles R2 R3 0 9

R4 4

P1 P2 P3 P4 P5

Recursos Asignados R1 R2 R3 R4 0 3 1 3 1 1 3 2 0 2 1 0 2 0 2 0 1 3 5 2

31. Escribir un algoritmo para sincronizar el paso de vehculos sobre un puente con una sola direccin de circulacin. Los vehculos arriban al puente desde ambas direcciones, pero slo pueden pasar de una direccin por vez. No hay restriccin acerca de la cantidad de vehculos que pueden estar sobre el puente al mismo tiempo. Hay starvation?; si la hay, cmo hacer pare evitarla?. Puede haber Deadlock?. Explicar porqu. 32. Se tienen 3 procesos: P1, P2 y P3: El cdigo del proceso Pi (i=1, 2, 3) es: Pi( ) { } Se desea mostrar en la salida lo siguiente: Soy el proceso 1 Soy el proceso 2 Soy el proceso 3 Soy el proceso 1 Soy el proceso 2 a) Sincronizar mediante semforos /*Proceso Pi con i=1,2,3 */ while (TRUE) printf(Soy el proceso i \n);

Pgina 22/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
1. Definir los semforos e inicializarlos correctamente. Usar el mnimo nmero de semforos 2. Reescriba los tres procesos con los semforos incorporados b) Sincronizar mediante mensajes. Se pide el mnimo cdigo. Cmo parte? 33. Dados 4 procesos que cumplen las siguientes funciones: X S1 P S2 V3 V Y S2 S3 V2 V1 V1 V3 Z S1 W S3

Los valores iniciales de los semforos son S1=2 y S2=S3=1. Los procesos siguen un orden del tipo YXZW. Se pide, determinar la traza de ejecucin y si los procesos terminan o no. 34. Dados los siguientes procesos con su respectivos cdigos y los valores iniciales de los semforos A =0, B= 1, C = 1, D=0. X P(C) P(D) ....... V(D) Y P(D) P(A) ........ V(B) Z P(C) ....... V(A) W P(A) P(B) ....... V(C)

a) Indique los procesos que terminaron (y en que orden) y los que no. Secuencia: Y- Z - X -W. 35. Cambie los semforos del ejercicio anterior para que el sistema sea SEGURO y no quede ningn proceso bloqueado. 36. . Los siguientes procesos se ejecutan en paralelo. Utilizando semforos, especifique cuales terminaron y cuales no. Inicializacin de los semforos: I, B, A, C, P = 0 M, K, G = 1 P1 D(I) U(I) D(P) U(P) D(K) P2 D(M) U(A) D(I) U(I) D(K) U(M) P3 U(B) D(C) D(G) U(G) P4 D(A) D(A) U(I) D(K) U(K) D(P) U(P) P5 U(C) D(P) D(M) D(G) U(M) D(K) U(G) P6 D(K) U(A) D(I) U(I) D(M) U(K) U(P)

37. -Realice la sincronizacin de 4 procesos A ---> |____10______| --->BDBD(una vez cada uno, en ese orden) ----->|colalimitada------> C -Genera mensajes - Retira mensajes -Retira mensajes

Pgina 23/24

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificacin , Sincronizacin y comunicacin de Procesos. Universidad Tecnolgica Nacional
-Deposita mensajes - Procesa el mens -Deposita mens. 38. Realice la sincronizacin de 4 procesos A ----> |______ilimitada____| ----->B--->|___5___|------> C y D (en forma alternada estrictamente) -Genera mensajes - Retira mensajes -Retira mensajes -Deposita mensajes - Procesa el mens -Consume el mens. -Deposita mens. 39. Tengo un proceso productor que deposita los mensajes en un Buffer de 30 posiciones. Luego los retira y los procesa otro proceso intermediario, que va depositando los mensajes procesados en un Buffer de 5 posiciones otros dos procesos C1 y C2 los retiran e Imprimen altenadamente , C1,C2, C1,C2, C1,C2 etc. 40. .Realizar los algoritmos para los 4 procesos. Se plantea a los alumnos de la Universidad Tecnolgica Nacional, en un parcialito de un curso de Sistemas Operativos, resolver el problema del productor/consumidor con buffer ilimitado. Se pide a los alumnos que implementen la funcin productor y la funcin consumidor utilizando semforos y evitando que se produzcan problemas de concurrencia. Uno de los alumnos entrega la siguiente solucin: int n; semaphore s=1; semaphore esperar=0; Void productor(void) { while (1) { producir(); wait(mutex); aadir(buffer); n++; if (n==1) signal(esperar); signal(mutex); } } void consumidor(void) { while (1) { wait(mutex); retirar(buffer); n--; if (n==0) wait(esperar); signal(mutex); consumir(); } } Consume el mens.

Dicha solucin se ha corregido como incorrecta en el examen. Uno de los profesores se ha confundido y ha vuelto a tomar el mismo examen. Usted ya haba visto el ejercicio porque haba pedido el examen y se pone contento porque ya lo ha practicado con sus compaeros, por lo que se le pide que: a) Encontrando un contraejemplo, demuestre que esta solucin no es vlida. b) Corregir el cdigo de manera que el problema encontrado en el punto anterior sea solucionado. Respuesta a-1.-Como el semforo mutex est inicializado en 1 por defecto el consumidor puede retirar un elemento del buffer vacio. a-2.-No hay un valor inicial de n .Si n est inicializado en 0, ya que no hay mensajes, al decrementar n queda en -1 por lo tanto n estara dems ya que wait pregunta por el valor del semforo esperar.. a-3 wait (esperar) no debe estar dentro del mutex ya que produce deadlock al bloquear el consumidor y no habilitar el mutex. Luego ejecuta el productor y queda bloqueado a la espera de la habilitacin del mutex.

Pgina 24/24