24
Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional Página 1/24 Planificación 1. Sean los cinco procesos descritos en la tabla siguiente: Proceso Tiempo de creación Tiempo de CPU A B C D E 4 0 1 8 12 1 5 4 3 2 Si suponemos que tenemos un algoritmo de planificación que utiliza una política FIFO a) Tiempo medio de respuesta b) Tiempo medio de espera c) La penalización, es decir, el cociente entre el tiempo de finalización y el tiempo de CPU. Resolución Diagrama de Gannt E X D X C X B X A X 0 1 2 3 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.

Guia Ejercicios Planif-sinc

Embed Size (px)

Citation preview

Page 1: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 1/24

Planificación

1. Sean los cinco procesos descritos en la tabla siguiente:

Proceso Tiempo de creación Tiempo de CPU

A B C D E

4 0 1 8

12

1 5 4 3 2

Si suponemos que tenemos un algoritmo de planificación que utiliza una política FIFO a) Tiempo medio de respuesta b) Tiempo medio de espera c) La penalización, es decir, el cociente entre el tiempo de finalización y el tiempo de CPU. Resolución Diagrama de Gannt E X D X C X B X A X 0 1 2 3 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.

Page 2: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 2/24

a) A X B X C X D X E 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 pasaría a la cola de listos y C queda detrás B pasa a ejecutar nuevamente. T=2 se produce el intercambio B C queda B en copla de listos. T=3 se produce el intercambio C B queda C en cola de listos. T=4 se produce el intercambio B C primero y luego se carga A quedan B, A en la cola de listos (en ese orden). T=5 se produce el intercambio C B . Quedan A, C en cola de listos. T=6 se produce el intercambio B A . Quedan C, B en cola de listos. T=7 se produce el intercambio A C . Quedan B en cola de listos, ya que A finalizó. T=8 se produce el intercambio C B . Quedan C, D (llega en ese momento) en cola de listos. T=9 se produce el intercambio B C . Queda D en cola de listos, ya que el B finaliza. T=10 se produce el intercambio C D . Queda vacía la cola de listos , ya que el C finaliza. T=11 continúa 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 pasaría a la cola de listos y E queda detrás D pasa a ejecutar nuevamente. T=13 se produce el intercambio D E . Queda vacía la cola de listos , ya que el D finaliza. T=14 continúa ejecutando ya que no hay procesos en cola de listos. T=15 E finaliza. Tiempo de espera = T finalización-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

Page 3: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 3/24

A X B X C X D X E 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 finalización-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).

Este es un algoritmo Preemptive , donde se otorga el procesador al que menor tiempo restante estimado tiene. A X B X C X 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 finalización-T llegada-T CPU TeA=1

Proceso Tiempo de creación Tiempo de CPU A B C D E

0 1 3 9

12

3 1 12 5 5

Page 4: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 4/24

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 Prioridad

A B C D E

2 1 4 5 3

Como las prioridades son fijas asumimos que es un algoritmo NonPreemptive. A X B X C X 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 finalización-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

Page 5: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 5/24

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:

Comportamiento Proceso Tiempo creación CPU Bloqueo CPU Bloqueo CPU Bloqueo CPU

A B C D

0 1 2 4

1 1 2 4

2 1 1 -

1 1 2 -

2 2 1 -

1 1 1 -

- - 1 -

- - 1 -

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

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

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

Page 6: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca Planificación , Sincronización y comunicación de Procesos.

Universidad Tecnológica Nacional

Página 6/24

T=6 READY D C T=7 READY C A B T=10 READY C A B T=12

READY A B T=13 READY B C T=14 READY C

b) Q=3 A B C D

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 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

T=6 READY D C T=7 READY C A B T=9 READY C A B D T=11 READY A B D T=12 READY B D C T=13 READY D C T=14 READY C

Page 7: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 7/24

6. Rehacer el ejercicio anterior utilizando el algoritmo de “primero el más corto”, suponiendo que la estimación de cada ráfaga coincide con la duración de la ráfaga 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 Impresión = 10 Latencia de Disco = 5

Se pide calcular el tiempo de Finalización de cada proceso y mostrar la ejecución de cada módulo del Sistema Operativo.

SO

1 A

1 B

2 A

3 A

2 B

4 B

2 A

4 A

5 B

2B

5A

6B

2A

4A

5A

7B

2A

8A

2B

8B

d i s c o I M P R E B d i s c o A 0 5 1

0 1 5

2 0

2 5

3 0

3 5

4 0

4 5

5 0

5 5

6 0

6 5

7 0

7 5

8 0

8 5

9 0

9 5

1 0 0

5 1 0

1 5

2 0

2 5

3 0

3 5

4 0

4 5

5 0

5 5

60

65

70

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 Prioridad Tiempo de CPU

P1 P2 P3 P4 P5

10 1 2 1 5

4 1 3 5 2

1

2

3

4

5

6 7

8

Fin Ready Exec

Disco

Impresora

New

Page 8: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 8/24

Completar la siguiente tabla:

Algoritmo Tiempo turn around Promedio

Tiempo de Espera Promedio

FCFS

RR (tq=1)

SJF

Prioridad no Interrumpible

9. Final 22-07-2006 19 de Julio de 2006 – 9 PM, en una importante empresa de telefonía 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 análisis de la situación. Durante los primeros 15 minutos de análisis nota que está corriendo en el sistema operativo XP un proceso que no es fácilmente identificable, ya que el mismo ejecuta de forma esporádica, lo que hace que afecte a los procesos que se encuentran corriendo en el servidor. Dicha situación es preocupante debido que la Compañía no podrá brindar un buen servicio a los clientes, justo cuando mayor es la utilización de este tipo de servicio, debido a la víspera del Día del Amigo. Es por ello, que Nick decide llamar a Tom para ver si él le puede dar una solución. 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 envía por fax a Nick el siguiente detalle con la ejecución de los 4 procesos que ejecuta el SW:

P3 P1 P2 ULT A ULT B

RCA Referencias

0 1 2 ---------- T. Llegada en Ciclos 3 4 1 3 4 CPU (En Ciclos) 6 2 2 2 IO (En Ciclos) 1 2 1 1 CPU (En Ciclos) 2 3 IO (En Ciclos) 1 1 CPU (En Ciclos)

RCA HB X HA X P3 X P2 X P1 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 2

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

Page 9: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 9/24

1) T=0 el único procesos en el sistema es P1 pasa a ejecución.

2) T=1 P1 está en ejecución Ready

P2 3) T=2 Llega el proceso 3 con sus 2 hilos P1 está en ejecución Ready

P2 P3 4) T=3 P2 está en ejecución Ready

P3 Bloqueados I/O

P1 5) T=6 P3 está en ejecución HA ejecuta 1 ciclo y pide I/O

Ready P2

Bloqueados I/O P1

6) T=7 P2 está en ejecución Ready

P2 Bloqueados I/O

P1 P3:H1 7) T=8 RCA pasa a ejecución durante 3 ciclos Ready

P2 Bloqueados I/O

P1 P3:HA P2 8) T=9 RCA en ejecución Ready

P1 Bloqueados I/O

P3:H3 P2 9) T=11 P1 pasa a ejecución 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

Page 10: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 10/24

10.

FINAL 06/12/2003 Un sistema computacional de un solo procesador planifica el procesamiento de trabajos según el siguiente modelo:

La planificación de largo plazo se encarga de mantener el grado de multiprogramación en tres procesos, usando una política SJF (Shortest Job First). En el corto plazo el procesador es asignado usando una política de Round-Robin con un quantum de 2 unidades de tiempo. Considere los siguientes datos:

Proceso Tiempo de llegada

CPU E/S CPU Tiempo estimado de proceso (SJF)

P1 0 5 3 3 12 P2 0 2 4 3 10 P3 2 3 4 2 8 P4 4 6 2 2 11 P5 10 2 3 2 7 P6 15 3 4 4 12

Para la resolución del ejercicio, si existe coincidencia de tiempos en los eventos de entrada a la cola de corto plazo, ordénelos 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 ejecución de los procesos mediante un Diagrama de Gantt. SOLUCIÓN

CPU 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 E/S P2 P2 P2 P2 P3 P3 P3 P3 P1 P1 P1 P5 P5 P5 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

CPU P1 P4 P4 P6 P6 P4 P4 P6 P6 P6 P6 P6

Cola de largo

plazo

Fin de Quantum

Cola de corto

plazo

Cola de E/S

E/S

CPU Llegada Salida

Planificación Largo Plazo Planificación Corto Plazo

Page 11: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 11/24

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 rígido de 1.8 Gb y la maquina B usa algoritmo FIFO y tiene una impresora láser 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 están perfectamente sincronizados.

Proceso Maquina Ciclo inicio Recurso Ciclo duración

CPU 3 Disco 1

1 A 0

CPU 2 CPU 1 Disco 2

2 B 0

CPU 4 CPU 1

Impresora 2 3 A 1

CPU 1

Sincronización, Semáforos y Deadlock

12. De un ejemplo donde el algoritmo que utiliza TSL produce inanición (Starvation) Supongamos que tenemos tres procesos A, B y C y las variable ocupado=0

READY BLOCK En este instante A que está en ejecución hace TSL(ocupado) dejando ocupado=1

READY BLOCK

B

C

A

C, A

B

Page 12: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 12/24

Luego pasa B a ejecución y hace TSL(ocupado) quedando en espera activa . Luego C pasa de bloqueados a Listos, ubicándose detrás de A en la cola. Cuando se le acaba el quantum de tiempo a B pasa a Listos y A a EJECUCIÓN.

READY BLOCK A coloca ocupado = 0 Cuando C pasa a ejecución hace TSL(ocupado) como ocupado estaba en 0 lo coloca en 1 y pasa a utilizar la región critica, ingresando a esta antes que B y si esta situación se repite B puede padecer inanición

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 podrían ejecutar.

A B c=b+d h=c+f+g print c

Según las condiciones de Berstein RA={ b,d,c,f,g,} RB={x,k,m,c} WA={c,h} WB={m} RA∩WB=Ø RB∩WA={c} WA∩WB=Ø Este grupo de sentencias no se pueden ejecutar en paralelo

14. Dado el siguiente grafo de precedencia, colocar los semáforos para asegurar la ejecución de los procesos en ese orden.

c=b+d

h=c+f+g print c

m=6*x+k print m/c

B, C

A

m=6*x+k print m/c

Page 13: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 13/24

RESOLUCIÓN Valores Iniciales de los semáforos a=1 b1=b2=b3=c1=c2=d1=d2=d3=d4=0 S1 S2 S3 S4 P(a) P(b1) P(b2) P(b3) ---- ----- ----- ----- ---- ----- ----- ----- ---- ----- ----- ----- V(b1) V(c1) v(d3) V(d4) V(b2) V(c2) V(b3)

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

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

A B

Page 14: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 14/24

X=199 X=x+1 Print (X)

X=500 X=X/10 Print(X)

RESOLUCIÓN a.- Como no se necesita darle un orden a la ejecución sólo se debe poner mutua exclusión, por lo tanto con un semáforo basta.

A B P(mutex) X=199 X=x+1 Print (X) V(mutex)

P(mutex) X=500 X=X/10 Print(X) V(mutex)

b.- Aquí se necesita darle un orden a la ejecución por lo tanto se utilizará semáforos cruzados.

A B P(s) X=199 X=x+1 Print (X) V(k)

P(k) X=500 X=X/10 Print(X) V(s)

Para que B se ejecute primero el valor del semáforo k debe estar en 1 y s en 0 k=1 s=0

16. Colocar los semáforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia ABCABC…

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

P(k) ---- ---- ---- V(r)

P(r) ---- ---- ---- V(s)

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

17. Colocar los semáforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia BACABACA…

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

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

Page 15: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 15/24

A B C P(a) ---- ---- V(b)

P(s) P(b) ---- ---- V(k) V(a)

P(k) P(b) ---- ---- V(s) V(a)

18. Colocar los semáforos de tal manera que los procesos A, B, C ejecuten siempre en la secuencia A(BóC)A(BóC)…

Si queremos que BóC ejecuten solo uno a la vez podríamos reemplazarlos por un proceso X A X P(k) ---- ---- V(s)

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

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

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

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

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

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

Para comenzar con el proceso A inicializamos k=1 y s=0

19. Colocar los semáforos 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)

Page 16: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 16/24

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

P(a) ---- ---- V(k)

Valor inicial del semáforo 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).

Declaración, Inicialización de Variables y Semáforos

var x: entero P1 P2

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

while (TRUE) { leer_teclado (d); x := d – c * 5; }

a) Sincronizar los procesos para que P1 use todos los valores x suministrados por P2.

Declaración, Inicialización de Variables y Semáforos var x: entero

P1 P2 While (TRUE) { P(s) m = 2 * x – n; imprimir (m); V(k) }

while (TRUE) { P(k) leer_teclado (d); x := d – c * 5; 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.

Declaración, Inicialización de Variables y Semáforos var x: entero

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

n=0 while (TRUE) { P(K) n++; leer_teclado (d); x := d – c * 5; if (n mod(2)=0) v(k); else V(s); }

n es una variable local a P2

Page 17: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 17/24

Otra solución:

Declaración, Inicialización de Variables y Semáforos

var x: entero P1 P2

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

while (TRUE) { P(K) leer_teclado (d); x := d – c * 5; V(s); }

K=1, s=1 para que la primera vez ejecute.

21. Se tienen 2 procesos paralelos: int x = 0;

Proceso A Proceso B { while (TRUE) x = x + 1; }

{ while (TRUE)

print (x); }

a) Sincronizar usando semáforos para que se escriba la secuencia: 0, 1, 2, 3, 4, 5 ... b) Sincronizar usando semáforos para que se escriba la secuencia: 1, 4, 7,10,13 ...

22. Dadas la siguiente secuencia lógica y los valores iniciales de los semáforos, verificar si esta es la secuencia normal de ejecución y si está bien realizada la sincronización.

X Y Z P(S) P(C) V(R) V(S)

P(R) P(B) V(B) V(S)

P(R) V(C)

Con los valores iniciales de S=1,R=0,B=0,c=1 y cuya secuencia normal de ejecución sería XYXZXYXZ S R C B X Y Z Q 1 0 1 0 0 P(S) 0 P(C) ---- 1 V(R) 1 V(S) 0 P(R) -1 P(B) Y QB 0 P(S) -1 P(C) X QC -1 P(R) Z QR

Page 18: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 18/24

P(C) Esta sincronización 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 ejecución de V(T) los valores de los semáforos son T = -1, S = -1, R= 0, hasta que finalice ella de ejecutarse íntegra. RTA:

T S R -1 -1 0 V(T) 0 -1 0 V(S 0 0 0 V(R) 0 0 1

Al finalizar la rutina A, los semáforos quedan con valores no negativos.

24. Si la rutina de WAIT o P( ) que asocia un semáforo a una cola, guarda los pedidos de espera en la forma de pila (LIFO), ¿Qué problema puede acarrear?

Respuesta: No respetaría el orden de los pedidos y podría algún proceso padecer inanición.

25. Dada la siguiente secuencia lógica y los valores iniciales:

X Y Z Q P(B) P(S) P(C) P(D) P(T) ... ... ... ... ... ... ... V(C) V(T) V(D) V(B) V(S)

Valores iniciales S =1, T=0, B=1, C=0, D=0. Explique cuál es la secuencia normal de ejecución. RESPUESTA: Para encontrar la secuencia normal de ejecución debemos seguir los valores de los semáforos habilitados . Como S=1 y B=1 podríamos comenzar por la ejecución con X, pasa el semáforo B y se bloque a en el semáforo T , por lo tanto solo podrá ejecutar Y primero Y ,cuando este finaliza habilita el sem. T ,entonces ejecuta X . este habilita el semáforo 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 número 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 semáforos, para que el proceso P2 realice la división, es decir x/y.

Inicialización de variables globales y semáforos N, k, x=1, y=1, enteros

Page 19: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 19/24

P1 P2

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);

RESPUESTA: Se Agrega el semáforo s inicializado en 0 Inicialización de variables globales y semáforos N, k, x=1, y=1, enteros s:=0 : semáforos

P1 P2

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);

27. Dada la siguiente situación: Hay un puente colgante sobre el río, tan angosto que sólo una persona puede cruzar a la vez. Implementar algún tipo de sincronización para ordenar el paso por el puente y evitar también la espera indefinida en una u otra orilla

28. Final:03/03/2001 Ejercicio 2 Muestre en forma clara de que manera se ejecutarán los siguientes procesos, considerando que se ejecutan en paralelo, y detalle que procesos terminaron y cuales no y por que razón. Inicialización de los semáforos: I, B, A, C, P = 0 M, K, G = 1

P1 P2 P3 P4 P5 P6

Page 20: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 20/24

D(I) D(M) U(B) D(A) U(C) D(K) U(I) U(A) D(C) D(A) D(P) U(A) D(P) D(I) D(G) U(I) D(M) D(I) U(P) U(I) U(G) D(K) D(G) U(I) D(K) D(K) U(K) U(M) D(M)

U(M) D(P) D(K) U(K) Resolución: A B C G I K M P P1 P2 P3 P4 P5 P6 0 0 0 1 0 1 1 0

Bloqueados: Deadlock: Starvation: Termina: 29/12/01 Resuelva la siguiente tabla sabiendo que el semáforos C esta inicializado en 1 y el resto se encuentran en 0.

P1 P2 P3 P4 P5 D(M) D(E) D(R) D(B) D(C) D(I) D(B) D(I) D(c) U(A) U(R) D(A) D(J) D(O) U(I) U(J) U(E) U(E) U(E) U(C) U(I) D(L) U(I) D(P) U(M) U(P) U(A) U(B) U(L) U(O)

Resolución: A B C E I J L M O P R P1 P2 P3 P4 P5

Page 21: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 21/24

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 semáforos son: s1, s2 (Semáforos Mutex). Void P1() { While(1) { Down (s1); Down (s2); Printf(“Bambu”); Up (s1); Up (s2); } }

Void P2() { While(1) { Down (s2); Printf(“Guetzel”); Down (s1); Up (s2); Up (s1); } }

Respuesta: El enunciado nos dice que ambos semáforos (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

Page 22: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 22/24

Entonces ambos procesos quedan en DEADLOCK

29. En un sistema de computación 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, ¿cuáles 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 más recursos que los permitidos). Decrementar MAX para un proceso (el proceso decide que no va a necesitar algunos recursos). Incrementar el número de procesos. Decrementar el número 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 más 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 ejecución.

El número de los procesos corresponde con el orden de llegada. Se deberá utilizar el algoritmo de planificación FCFS. Además indicar si el sistema es seguro o no (o sea verificar si ningún proceso queda sin los recursos necesarios).

Peticiones Máximas Disponibles Recursos Asignados R1 R2 R3 R4 R1 R2 R3 R4 R1 R2 R3 R4

P1 2 3 2 5 1 0 9 4 P1 0 3 1 3 P2 1 2 6 3 P2 1 1 3 2 P3 0 2 4 5 P3 0 2 1 0 P4 3 0 5 2 P4 2 0 2 0 P5 3 4 5 4 P5 1 3 5 2

31. Escribir un algoritmo para sincronizar el paso de vehículos sobre un puente con una sola dirección de circulación. Los vehículos arriban al puente desde ambas direcciones, pero sólo pueden pasar de una dirección por vez. No hay restricción acerca de la cantidad de vehículos que pueden estar sobre el puente al mismo tiempo. ¿Hay starvation?; si la hay, ¿cómo hacer pare evitarla?. ¿Puede haber Deadlock?. Explicar porqué.

32. Se tienen 3 procesos: P1, P2 y P3: El código del proceso Pi (i=1, 2, 3) es: Pi( ) /*Proceso Pi con i=1,2,3 */

{ while (TRUE) printf(“Soy el proceso i \n”); } 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 semáforos

Page 23: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 23/24

1. Definir los semáforos e inicializarlos correctamente. Usar el mínimo número de semáforos

2. Reescriba los tres procesos con los semáforos incorporados b) Sincronizar mediante mensajes. Se pide el mínimo código. ¿Cómo parte?

33. Dados 4 procesos que cumplen las siguientes funciones:

X Y Z W

S1 S2 S1 S3 P S2

S3

V3 V2 V1 V3 V V1

Los valores iniciales de los semáforos son S1=2 y S2=S3=1. Los procesos siguen un orden del tipo YXZW.

Se pide, determinar la traza de ejecución y si los procesos terminan o no.

34. Dados los siguientes procesos con su respectivos códigos y los valores iniciales de los semáforos A =0, B= 1, C = 1, D=0.

X Y Z W P(C) P(D) P(C) P(A) P(D) P(A) P(B) ....... ........ ....... ....... V(D) V(B) V(A) V(C)

a) Indique los procesos que terminaron (y en que orden) y los que no.

Secuencia: Y- Z - X -W.

35. Cambie los semáforos del ejercicio anterior para que el sistema sea SEGURO y no quede ningún proceso bloqueado.

36. . Los siguientes procesos se ejecutan en paralelo. Utilizando semáforos, especifique cuales

terminaron y cuales no. Inicialización de los semáforos: I, B, A, C, P = 0 M, K, G = 1

P1 P2 P3 P4 P5 P6 D(I) D(M) U(B) D(A) U(C) D(K) U(I) U(A) D(C) D(A) D(P) U(A) D(P) D(I) D(G) U(I) D(M) D(I) U(P) U(I) U(G) D(K) D(G) U(I) D(K) D(K) U(K) U(M) D(M)

U(M) D(P) D(K) U(K) U(P) U(G) U(P)

37. -Realice la sincronización de 4 procesos

A ---> |____10______| --->BDBD(una vez cada uno, en ese orden) ----->|colalimitada------> C

-Genera mensajes - Retira mensajes -Retira mensajes

Page 24: Guia Ejercicios Planif-sinc

Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Planificación , Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional

Página 24/24

-Deposita mensajes - Procesa el mens Consume el mens.

-Deposita mens.

38.

Realice la sincronización 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 Tecnológica 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 función productor y la función consumidor utilizando semáforos y evitando que se produzcan problemas de concurrencia. Uno de los alumnos entrega la siguiente solución: int n; semaphore s=1; semaphore esperar=0; Void productor(void) { while (1) { producir(); wait(mutex); añadir(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(); } }

Dicha solución 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 había visto el ejercicio porque había pedido el examen y se pone contento porque ya lo ha practicado con sus compañeros, por lo que se le pide que:

a) Encontrando un contraejemplo, demuestre que esta solución no es válida. b) Corregir el código de manera que el problema encontrado en el punto anterior sea

solucionado. Respuesta a-1.-Como el semáforo 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 estaría demás ya que wait pregunta por el valor del semáforo 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 habilitación del mutex.