Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 5
Tema 5
Tema 5
Interbloqueos
Equipo de Sistemas Operativos DISCA / DSIC UPV
Tema 5: Interbloqueos
Contenido 1.- Concepto de interbloqueo. 2.- Caracterizacin formal.
Modelo de sistema. Representacin grfica. Condiciones de Coffman.
Tema5: Interbloqueos
Tema 5: Interbloqueos
1.- Concepto de interbloqueo.
2.- Caracterizacin formal. Modelo de sistema. Representacin grfica. Condiciones de Coffman. 3.-Tcnicas de tratamiento de interbloqueos Prevencin. Evitacin: el algoritmo del banquero. Deteccin y recuperacin.
Tema5: Interbloqueos
Ningn otro proceso podr obtener los recursos retenidos, puesto que no pueden ser liberados. Los interbloqueos constituyen un grave problema para el que la mayora de sistemas operativos (como UNIX, por ejemplo) no contemplan ningn tratamiento en absoluto.
Sistemas Operativos I (00-01) Tema5: Interbloqueos 4
...
...
...
...
Sistemas Operativos I (00-01)
Tema5: Interbloqueos
Tema 5: Interbloqueos
1.- Concepto de interbloqueo. 2.- Caracterizacin formal. Modelo de sistema. Representacin grfica. Condiciones de Coffman. 3.-Tcnicas de tratamiento de interbloqueos Prevencin. Evitacin: el algoritmo del banquero. Deteccin y recuperacin.
Tema5: Interbloqueos
Conjunto de recursos, identificados por R1, R2, ..., Rj, ... Rm. Estos recursos pueden ser fsicos (discos, cintas, impresoras, etc.), o lgicos (monitores, semforos, etc.). De cada recurso puede haber una o ms instancias. Dos recursos se consideran en realidad instancias del mismo recurso si un proceso que solicita dicho recurso considera que puede obtener cualquiera de ellas indistintamente. El uso que un proceso hace de un recurso sigue este protocolo: Peticin del recurso: Si no est disponible, el proceso queda suspendido hasta que lo est. Uso del recurso. Liberacin del recurso.
Sistemas Operativos I (00-01) Tema5: Interbloqueos 7
...
...
...
...
9
Tema5: Interbloqueos
P1
P2
P3
R2
R4
Tema5: Interbloqueos
10
P1
P2
R2
R4
INTERBLOQUEO !
Tema5: Interbloqueos
11
Tema5: Interbloqueos
12
Tema 5: Interbloqueos
1.- Concepto de interbloqueo. 2.- Caracterizacin formal. Modelo de sistema. Representacin grfica. Condiciones de Coffman. 3.-Tcnicas de tratamiento de interbloqueos Prevencin. Evitacin: el algoritmo del banquero. Deteccin y recuperacin.
Tema5: Interbloqueos
13
Tema5: Interbloqueos
14
Prevencin de interbloqueos
Veamos cules de las condiciones de Coffman son evitables, y cmo:
Exclusin mutua: No es posible eliminar esta condicin, pues la mayora de recursos son inherentemente no compartibles (i.e., reutilizables serie). Retener y esperar: Para deshacer esta condicin, se debe obligar a los procesos a: Solicitar todos sus recursos de una vez, al principio de su ejecucin, o bien... Utilizar los recursos de uno en uno, liberando cada recurso antes de solicitar el siguiente. En cualquier caso, si necesita ms de uno a la vez, debe entonces solicitar todos ellos al principio. Estas aproximaciones tienen dos problemas: Baja utilizacin de los recursos, puesto que estarn retenidos desde el principio de la ejecucin de los procesos, pero evidentemente no se estarn utilizando en todo momento. Inanicin de los procesos que necesiten muchos recursos solicitados muy frecuentemente por los dems procesos.
Tema5: Interbloqueos
15
Tema5: Interbloqueos
16
..... 1 2 3 4 5 6 7 8 9
< F(Rj)
17
Tema5: Interbloqueos
Tema 5: Interbloqueos
1.- Concepto de interbloqueo. 2.- Caracterizacin formal. Modelo de sistema. Representacin grfica. Condiciones de Coffman. 3.-Tcnicas de tratamiento de interbloqueos Prevencin. Evitacin: el algoritmo del banquero. Deteccin y recuperacin.
Tema5: Interbloqueos
18
En base a ello, cuando un proceso realice una peticin de recursos, el sistema se los conceder slo en el caso de que la peticin mantenga al sistema en un estado seguro.
Sistemas Operativos I (00-01) Tema5: Interbloqueos 19
seguro
Secuencia segura
es una cierta ordenacin de los procesos que cumple que los recursos que an puede pedir cualquier Pi pueden ser satisfechos con los recursos libres ms los recursos retenidos por los Pj, j<i.
An puede solicitar
R1 P1 P2
P1 P2 P3
1 3 2 R1
2 1 1 R2
R2
P3
Estado SEGURO
20
Tema5: Interbloqueos
10
An puede solicitar
P1 P2 P3
0 2 2 R1
2 1 1 R2
R2
P3
Estado INSEGURO
Dependiendo de cundo se soliciten los recursos y cuando se liberen, podr darse un interbloqueo o no
Tema5: Interbloqueos
21
C antidad de instancias disponibles de cada recurso. M xim o n de instancias de cada recurso que cada proceso puede pedir N de instancias de cada recurso actualm ente asignadas a cada proceso. N de peticiones de instancias de cada recurso que cada proceso an no ha hecho.
Max[n,m]
Asignado[n,m]
Necesito[n,m]
NOTACION: En las matrices como Asignado denotaremos por Asignado[i] a la fila i-sima de dicha matriz.
Sistemas Operativos I (00-01) Tema5: Interbloqueos 22
11
MAX 7 3 9 2 4 A Necesito 0 0 2 1 2 C P0 P1 P2 P3 P4 7 1 6 0 4 A 4 2 0 1 3 B 3 2 0 1 1 C
23
5 2 0 2 3 B
3 2 2 2 3 C
1 0 0 1 0 B
Tema5: Interbloqueos
Algoritmo:
Funcion Funcion Seguridad Seguridad retorna retorna Boolean Boolean Trabajo Trabajo := := Disponible Disponible Para Para todo todo i i Acabado[i] Acabado[i] := := false false FinPara FinPara Mientras Mientras i i tal tal que que Acabado[i]=False Acabado[i]=False AND AND Necesito[i]<=Trabajo Necesito[i]<=Trabajo Trabajo Trabajo := := Trabajo Trabajo + + Asignado[i] Asignado[i] Acabado[i] Acabado[i] := := True True FinMientras FinMientras Si i Si i Acabado[i]=True Acabado[i]=True Entonces Entonces Seguridad Seguridad := := True True Sino Sino Seguridad Seguridad := := False False FinSi FinSi Fin Fin Seguridad Seguridad
Tema5: Interbloqueos 24
12
Trabajo 3 2
P1 P2
10 3 2 10 7 4 3 7 4 5 4 7
Estado seguro
Tema5: Interbloqueos
25
Algoritmo:
Procedimiento Procedimiento Peticion_Recursos( Peticion_Recursos( Peticion[i] Peticion[i] ) ) Si Si Peticion[i] Peticion[i] > > Necesito[i] Necesito[i] Entonces Entonces ERROR ERROR FinSi FinSi Si Si Peticion[i] Peticion[i] > > Disponible Disponible Entonces Entonces Suspender_Proceso(i) Suspender_Proceso(i) Sino Sino Disponible Disponible := := Disponible Disponible - Peticion[i] Peticion[i] Asignado[i] Asignado[i] := := Asignado[i] Asignado[i] + + Peticion[i] Peticion[i] Necesito[i] Necesito[i] := := Necesito[i] Necesito[i] - Peticion[i] Peticion[i] Si Si Seguridad Seguridad Entonces Entonces Dar_Recursos_A(i) Dar_Recursos_A(i) Sino Sino Recuperar_estado_previo() Recuperar_estado_previo() Suspender_Proceso(i) Suspender_Proceso(i) FinSi FinSi FinSi FinSi Fin Fin Peticion_Recursos Peticion_Recursos
Tema5: Interbloqueos 26
13
OK
Trabajo
P0
P1
0
P2
10 3 2 10 7 4 3 P0 7 4 5 P1 P2 P3 P4 7 3 9 2 4 A 4 7
MAX 5 2 0 2 3 B
27
3 2 2 2 3 C
Tema5: Interbloqueos
OK
Trabajo
P0
P1
0
P2
3 2 2 2 3 C
2 C
P1
P2 P3 P4
Tema5: Interbloqueos
14
Tema 5: Interbloqueos
1.- Concepto de interbloqueo. 2.- Caracterizacin formal. Modelo de sistema. Representacin grfica. Condiciones de Coffman. 3.-Tcnicas de tratamiento de interbloqueos Prevencin. Evitacin: el algoritmo del banquero. Deteccin y recuperacin.
Tema5: Interbloqueos
29
Deteccin de interbloqueos
Algoritmos de deteccin. Casos:
1) Si slo hay recursos de instancia nica Grafo de espera-a (wait-for) Se basa en el grafo de asignacin de recursos. Se eliminan los nodos correspondientes a recursos, y se ajustan los arcos de forma que habr un arco del proceso Pi al proceso Pj si Pj posee un recurso que Pi ha solicitado. Existir un interbloqueo si y slo si hay un ciclo en el grafo.
Ejemplo:
P2 R1 P1 R5 R4 P5
Sistemas Operativos I (00-01)
P2
R2 P3 R3 P1 P3
INTERBLOQUEO !
P4
Tema5: Interbloqueos
P5
P4
30
15
Algoritmo de deteccin
Algoritmo:
Aquellos procesos para los que Acabado[i] sea falso, forman parte de un interbloqueo.
Funcion Funcion Detecccion Detecccion retorna retorna Boolean Boolean Trabajo Trabajo := := Disponible Disponible Para Para todo todo i i Si Si Asignado[i] Asignado[i] <> <> 0 0 Entonces Entonces Acabado[i] Acabado[i] := := False False Sino Sino Acabado[i] Acabado[i] := := True True FinSi FinSi FinPara FinPara Mientras Mientras i i tal tal que que Acabado[i]=False Acabado[i]=False AND AND Peticion[i]<=Trabajo Peticion[i]<=Trabajo Trabajo Trabajo := := Trabajo Trabajo + + Asignado[i] Asignado[i] Acabado[i] Acabado[i] := := True True FinMientras FinMientras Si i Si i Acabado[i]=True Acabado[i]=True Entonces Entonces Deteccion Deteccion := := False False Sino Sino Detecion Detecion := := True True FinSi FinSi Fin Fin Deteccion Deteccion
Tema5: Interbloqueos 31
Comparacin:
La primera alternativa produce ms sobrecarga, pero es ms fcil detectar qu procesos provocan el interbloqueo (pues como mucho habr un interbloqueo). Con la segunda alternativa podemos medir la sobrecarga, pero si existen varios ciclos ser difcil determinar qu procesos estn involucrados en cada uno de los interbloqueos. Peticin
Ejemplo:
A P3 B P0 P4
P0 P1 P2
C
0 2 0 1 0 A
0 0 0 0 0 B
0 2 0 0 2 C
La secuencia <P0, P2, P3, P1, P4> finaliza con Acabado[i] = true para todo i. P2 pide una instancia adicional del recurso C : Peticin[P2] = 0 0 1 Cul es el estado del sistema? Existe un interbloqueo, en el que intervienen los procesos P1,P2, P3, y P4.
P3 P4
P1 P2
Sistemas Operativos I (00-01)
Tema5: Interbloqueos
32
16
Recuperacin de interbloqueos
Alternativas: Terminacin de procesos.
Terminacin de todos los procesos interbloqueados. Terminacin iterativa de procesos, hasta que el interbloqueo desaparezca.
Apropiacin de recursos. El sistema se apropia de recursos de los procesos interbloqueados, hasta que desaparece el interbloqueo. Problemas a resolver:
Seleccin de una vctima: A quin se elige para apropiarse de sus recursos. Vuelta atrs: El proceso a quien se le quitan los recursos debe ser vuelto a un estado seguro. La solucin trivial es abortar dicho proceso. Inanicin. Hay que considerar que no se debera quitar siempre los recursos al mismo proceso, sobre todo si la vuelta atrs supone abortarlo y obligarle a empezar desde el principio.
Tema5: Interbloqueos
33
Tema5: Interbloqueos
17
Tema5: Interbloqueos
? ?
P( tenedor[i] );
y se quedan esperando en
P( tenedor[(i+1) mod 5] );
INTERBLOQUEO !
? ? ?
Soluciones triviales:
Permitir que slo 4 filsofos se sienten a la mesa. Cada filsofo coge ambos tenedores a la vez, o ninguno. Los filsofos pares cogen primero el tenedor derecho y los impares el izquierdo.
Tema5: Interbloqueos
18
P2 R1 P1 R5 R4 P5 P4 R3 R2 P3
CICLO
INTERBLOQUEO !
Tema5: Interbloqueos
37
Deteccin de interbloqueos
Ejemplo: 5 filsofos. Supongamos que se ha producido el interbloqueo: Cuando se invoque Deteccion():
Estado inicial:
Trabajo 0 0 0 0 0 F Acabado F F F F
I I Acabado[i] Acabado[i] = = False False Los cinco procesos estn Los cinco procesos estn interbloqueados interbloqueados
Tema5: Interbloqueos
38
19