Está en la página 1de 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 Tiempo de creacin Tiempo de CPU


A 4 1
B 0 5
C 1 4
D 8 3
E 12 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 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.

Pgina 1/24
Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca
Planificacin , Sincronizacin y comunicacin de Procesos.
Universidad Tecnolgica Nacional
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 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 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 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 Tiempo de creacin Tiempo de CPU


A 0 3
B 1 1
C 3 12
D 9 5
E 12 5

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 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 Prioridad
A 2
B 1
C 4
D 5
E 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 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 Tiempo Comportamiento


creacin CPU Bloqueo CPU Bloqueo CPU Bloqueo CPU
A 0 1 2 1 2 1 - -
B 1 1 1 1 2 1 - -
C 2 2 1 2 1 1 1 1
D 4 4 - - - - - -

Dibujar el diagrama de ocupacin 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 T=5
READY READY
A B D C
T=1
READY
B
T=2
READY
C
T=3
READY
A B
T=4
READY
A B D

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
READY A B
D C T=13
T=7 READY
READY B C
C A B T=14
T=10 READY
READY C
C A B
T=12
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 T=6
READY READY
A D C
T=1 T=7
READY READY
B C A B
T=2 T=9
READY READY
C C A B D
T=3 T=11
READY READY
A B A B D
T=4 T=12
READY READY
A B D B D C
T=13
T=5 READY
READY D C
B D C T=14
READY
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
1 8
New Ready Exec Fin
2
5
Disco
4
7
6
Impresora

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

S 1 1 2 3 2 4 2 4 5 2 5 6 2 4 5 7 2 8 2 8
O A B A A B B A A B B A B A A A B A A B B

d i s c o I M P R E
B

d i s c o
A

0 5 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 5 1 1 2 2 3 3 4 4 5 5 6 6 7
0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 0 5 0 5 0 5 0 5 0 5 0 5 0
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 Prioridad Tiempo de CPU


P1 10 4
P2 1 1
P3 2 3
P4 1 5
P5 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 Tiempo turn around Tiempo de Espera


Promedio 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 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 P2 P3 RCA Referencias
ULT A ULT B
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

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 12) T=15 RCA ejecuta 1 ciclo y finaliza
pasa a ejecucin. Ready
2) T=1 P1 est en ejecucin P2 P1 P3:HB
Ready Bloqueados I/O
P2
3) T=2 Llega el proceso 3 con sus 2 hilos
P1 est en ejecucin 13)T=16 P2 ejecuta
Ready Ready
P2 P3 P1 P3:HB
4) T=3 P2 est en ejecucin Bloqueados I/O
Ready
P3
Bloqueados I/O 14)T=18 Ejecuta P1 y finaliza
P1 Ready
5) T=6 P3 est en ejecucin P3:HB
HA ejecuta 1 ciclo y pide I/O Bloqueados I/O
Ready P2
P2 15) T=19 Ejecuta P3:HB
Bloqueados I/O Ready
P1
6) T=7 P2 est en ejecucin Bloqueados I/O
Ready
P2 16) T=20 Ejecuta RCA
Bloqueados I/O Ready
P1 P3:H1
7) T=8 RCA pasa a ejecucin durante 3 ciclos Bloqueados I/O
Ready P2 P3:HB
P2 17) T=21 Ejecuta RCA
Bloqueados I/O Ready
P1 P3:HA P2 P2
8) T=9 RCA en ejecucin Bloqueados I/O
Ready P3:HB
P1 18) T=23 Ejecuta P2 y finaliza
Bloqueados I/O Ready
P3:H3 P2 P3:HB RCA
9) T=11 P1 pasa a ejecucin Bloqueados I/O
P3 vuelve de I/O y RCA termina su quantum, como
I/O tiene prioridad entonces queda : 19) T=24 Ejecuta P3:HB
Ready Ready
P3 RCA RCA
Bloqueados I/O Bloqueados I/O
P2
10) T=12 P3:HA pasa a ejecutar 1 ciclo y finaliza. 20) T=25 Ejecuta RCA y finaliza
Ready Ready
RCA
Bloqueados I/O Bloqueados I/O
P2 P1
11 ) T=13 P3:HB durante 2 quantums
Ready
RCA P2
Bloqueados I/O
P1

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 Cola de corto

plazo plazo CPU


Llegada Salida

Cola de E/S
E/S
Planificacin
Largo Plazo
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 Tiempo de CPU E/S CPU Tiempo estimado de


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

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 Maquina Ciclo inicio Recurso Ciclo duracin


1 A 0 CPU 3
Disco 1
CPU 2
2 B 0 CPU 1
Disco 2
CPU 4
3 A 1 CPU 1
Impresora 2
CPU 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

A
B

BLOCK

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

READY

B
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

A
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= RBWA={c}
WAWB=

Este grupo de sentencias no se pueden ejecutar en paralelo

c=b+d

h=c+f+g m=6*x+k
print c 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 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 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=500
X=x+1 X=X/10
Print (X) 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 B
P(s) P(k) P(r)
----- ---- ----
------ ---- ----
----- ---- ----
V(k) V(r) V(s)

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 C
P(s) P(k)
---- ----
---- ----

V(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 B C
P(a) P(s) P(k)
---- P(b) P(b)
---- ---- ----
---- ----
V(b) V(k) V(s)
V(a) 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 X
P(k) P(s)
---- ----
---- ----

V(s) V(k)

B C
P(s) P(s)
---- ----
---- ----

V(k) V(k)

Entonces combinamos las dos soluciones

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

V(s) V(k) 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 C
P(s) P(a)
---- ----
---- ----

V(k) 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) while (TRUE)
{ {
m = 2 * x n; leer_teclado (d);
imprimir (m); x := d c * 5;
} }

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)
While (TRUE) {
{ P(K)
P(s)
P(s) leer_teclado (d);
x := d c * 5;
m = 2 * x n; V(s);
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 Proceso B
{ {
while (TRUE) while (TRUE)
x = x + 1; print (x);
} }

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 Y Z
P(S) P(R) P(R)
P(C) P(B)

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

Con los valores iniciales de S=1,R=0,B=0,c=1 y cuya secuencia normal de ejecucin sera
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

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

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

Pgina 18/24
Guia de Ejercicios de Sistemas Operativos Prof. Graciela De
Luca
Planificacin , Sincronizacin y comunicacin de Procesos.
Universidad Tecnolgica Nacional
P1 P2

Y=:1
For i= n k +1 to n do For j=2 to k do
{ {
X = x + i;
y:=y * j;
}
}
escribir (x/y);

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 P2

Y=:1
For i= n k +1 to n do For j=2 to k do
Begin Begin

X = x + i; y:=y*j;

End; end
Signal (s) wait (s);
escribir (x/y);

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

Resolucin:

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

Resolucin:

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

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() { Void P2() {


While(1) { While(1) {
Down (s1); Down (s2);
Down (s2); Printf(Guetzel);
Printf(Bambu); Down (s1);
Up (s1); Up (s2);
Up (s2); Up (s1);
} }
} }

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

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

Peticiones Mximas 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 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( ) /*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 semforos

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 Y Z W
S1 S2 S1 S3
P
S2 S3

V3 V2 V1 V3
V
V1

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 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 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 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 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 Consume 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) void consumidor(void)


{ {
while (1) while (1)
{ {
producir(); wait(mutex);
wait(mutex); retirar(buffer);
aadir(buffer); n--;
n++; if (n==0) wait(esperar);
if (n==1) signal(esperar); signal(mutex);
signal(mutex); consumir();
} }
} }

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

También podría gustarte