Guia de Ejercicios de Sistemas Operativos Prof. Graciela De Luca

Anuncio
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
Planificación
1. Sean los cinco procesos descritos en la tabla siguiente:
Proceso
A
B
C
D
E
Tiempo de creación
4
0
1
8
12
Tiempo de CPU
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
D
C
X
B
X
A
0
1
2
X
X
X
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.
Página 1/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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 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
Página 2/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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 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).
Proceso
A
B
C
D
E
Tiempo de creación
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 finalización-T llegada-T CPU
TeA=1
Página 3/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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 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
Página 4/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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
creación
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 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
Página 5/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
T=6
READY
D C
T=7
READY
C A B
T=10
READY
C A B
T=12
b) Q=3
READY
A B
T=13
READY
B C
T=14
READY
C
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
T=11
READY
A B D
T=12
READY
B D C
T=13
READY
D C
T=14
READY
C
D
Página 6/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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
3
1
New
8
Ready
Exec
Fin
2
5
Disco
4
7
6
Impresora
Se pide calcular el tiempo de Finalización de cada proceso y mostrar la ejecución de cada módulo
del Sistema Operativo.
S 1 1 2
O A B A
3 2
A B
4 2
B A
4
A
d i
5 2
B B
s
c
5
A
6 2
B A
o
4
A
5 7 2
A B A
I
M P
R E
1
0
1
5
2
5
8
A
2
B
5 5
0 5
6
0
8
B
B
d i
s
c
o
6 7 7
5 0 5
8
0
8 9 9
5 0 5
A
0
5
1
0
1 2 2
5 0 5
3
0
3 4 4
5 0 5
5
0
5 6
5 0
1 5
0
0
2
0
3
0
3
5
4
0
4
5
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
Página 7/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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:
P1
P2
P3
ULT A
RCA
Referencias
----------
T. Llegada en Ciclos
4
CPU (En Ciclos)
ULT B
0
1
3
4
1
2
3
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
HA
P3
P2
P1
X
X
X
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
Condiciones Q=3 ciclos del S.O. para el Round Robin. q = 2 ciclos biblioteca de Threads
Página 8/24
24
2
5
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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
Página 9/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
10.
FINAL 06/12/2003
Un sistema computacional de un solo procesador planifica el procesamiento de trabajos según el siguiente
modelo:
Fin de Quantum
Cola de largo
Cola de corto
plazo
plazo
CPU
Llegada
Salida
Cola de E/S
E/S
Planificación
Largo Plazo
Planificación Corto Plazo
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
0
0
2
4
10
15
P1
P2
P3
P4
P5
P6
CPU
E/S
CPU
5
2
3
6
2
3
3
4
4
2
3
4
3
3
2
2
2
4
Tiempo estimado de
proceso (SJF)
12
10
8
11
7
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
1
P2 P2 P2 P2
2 3 4 5 6
7
CPU P1 P4 P4 P6 P6 P4 P4 P6
8
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
P6 P6 P6 P6
Página 10/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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
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
1
Maquina
A
Ciclo inicio
0
2
B
0
3
A
1
Recurso
CPU
Disco
CPU
CPU
Disco
CPU
CPU
Impresora
CPU
Ciclo duración
3
1
2
1
2
4
1
2
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
A
B
C
BLOCK
En este instante A que está en ejecución hace TSL(ocupado) dejando ocupado=1
READY
B
C, A
BLOCK
Página 11/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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
A
B, C
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
m=6*x+k
h=c+f+g
print m/c
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=Ø
WA∩WB=Ø
RB∩WA={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 semáforos para asegurar la ejecución de
los procesos en ese orden.
Página 12/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
RESOLUCIÓN
Valores Iniciales de los semáforos
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)
S5
P(c1)
------------------------V(d1)
S6
P(c2)
---------------------------v(d2)
S4
P(b3)
------------V(d4)
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
Página 13/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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)
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 ejecución por lo tanto se utilizará semáforos 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 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
P(s)
-------------V(k)
B
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
P(s)
-------
C
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
Página 14/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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 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
P(k)
-------
X
P(s)
-------
V(s)
V(k)
B
P(s)
-------
C
P(s)
-------
V(k)
V(k)
Entonces combinamos las dos soluciones
A
P(k)
-------
B
P(s)
-------
C
P(s)
-------
V(s)
V(k)
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)
Página 15/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
B
P(s)
-------
C
P(a)
-------
V(k)
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).
While (TRUE)
{
m = 2 * x – n;
imprimir (m);
}
Declaración, Inicialización de Variables y Semáforos
var x: entero
P1
P2
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)
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.
Declaración, Inicialización de Variables y Semáforos
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
Página 16/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
Otra solución:
Declaración, Inicialización de Variables y Semáforos
var x: entero
P1
P2
while (TRUE)
{
P(K)
While (TRUE)
{
P(s)
P(s)
leer_teclado (d);
x := d – c * 5;
V(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
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
P(S)
P(C)
Y
P(R)
P(B)
V(R)
V(S)
V(B)
V(S)
Z
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
1
0
R
0
C
1
B
0
X
1
1
0
P(R)
P(B)
-1
-1
-1
Z
Q
P(S)
P(C)
---V(R)
V(S)
0
0
Y
Y ÆQB
P(S)
P(C)
P(R)
X ÆQC
Z ÆQR
Página 17/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(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:
V(T)
V(S
V(R)
T
-1
0
0
0
S
-1
-1
0
0
R
0
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
P(B)
P(T)
...
V(C)
Y
P(S)
...
...
V(T)
Z
P(C)
...
...
V(D)
Q
P(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
Página 18/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
P1
P2
Y=:1
For j=2 to k do
{
For i= n – k +1 to n do
{
X = x + i;
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
Y=:1
For j=2 to k do
Begin
For i= n – k +1 to n do
Begin
X = x + i;
y:=y*j;
End;
Signal (s)
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
Página 19/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
D(I)
U(I)
D(P)
U(P)
D(K)
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)
Resolución:
A
0
B
0
C
0
G
1
I
0
K
1
M
1
P
0
P1
P2
P3
P4
P5
P6
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
D(M)
D(I)
U(R)
U(J)
U(I)
U(P)
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)
Resolución:
A
B
C
E
I
J
L
M
O
P
R
P1
P2
P3
P4
P5
Página 20/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica 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
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
Página 21/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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).
P1
P2
P3
P4
P5
Peticiones Máximas
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 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
Página 22/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
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:
P
X
S1
Y
S2
S2
S3
V3
V2
V
Z
S1
W
S3
V1
V3
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
P(C)
Y
P(D)
P(D)
.......
P(A)
........
V(D)
V(B)
Z
P(C)
W
P(A)
.......
V(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 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
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 sincronización de 4 procesos
A ---> |____10______| --->BDBD(una vez cada uno, en ese orden) ----->|colalimitada------> C
-Genera mensajes
- Retira mensajes
-Retira mensajes
Página 23/24
Guia de Ejercicios de Sistemas Operativos
Prof. Graciela De
Luca
Planificación , Sincronización y comunicación de Procesos.
Universidad Tecnológica Nacional
-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.
Página 24/24
Descargar