Interbloqueo
Interbloqueo
Interbloqueo
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 Seguridad retorna Boolean Funcion Seguridad retorna Boolean Trabajo := Disponible Trabajo := Disponible Para todo i Para todo i Acabado[i] := false Acabado[i] := false FinPara FinPara Mientras i tal que Acabado[i]=False AND Mientras i tal que Acabado[i]=False AND Necesito[i]<=Trabajo Necesito[i]<=Trabajo Trabajo := Trabajo + Asignado[i] Trabajo := Trabajo + Asignado[i] Acabado[i] := True Acabado[i] := True FinMientras FinMientras Si i Acabado[i]=True Entonces Si i Acabado[i]=True Entonces Seguridad := True Seguridad := True Sino Sino Seguridad := False Seguridad := False FinSi FinSi Fin Seguridad Fin 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 Peticion_Recursos( Peticion[i] ) Procedimiento Peticion_Recursos( Peticion[i] ) Si Peticion[i] > Necesito[i] Si Peticion[i] > Necesito[i] Entonces ERROR Entonces ERROR FinSi FinSi Si Peticion[i] > Disponible Si Peticion[i] > Disponible Entonces Suspender_Proceso(i) Entonces Suspender_Proceso(i) Sino Sino Disponible := Disponible - Peticion[i] Disponible := Disponible - Peticion[i] Asignado[i] := Asignado[i] + Peticion[i] Asignado[i] := Asignado[i] + Peticion[i] Necesito[i] := Necesito[i] - Peticion[i] Necesito[i] := Necesito[i] - Peticion[i] Si Seguridad Si Seguridad Entonces Dar_Recursos_A(i) Entonces Dar_Recursos_A(i) Sino Sino Recuperar_estado_previo() Recuperar_estado_previo() Suspender_Proceso(i) Suspender_Proceso(i) FinSi FinSi FinSi FinSi Fin Peticion_Recursos Fin 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 Detecccion retorna Boolean Funcion Detecccion retorna Boolean Trabajo := Disponible Trabajo := Disponible Para todo i Para todo i Si Asignado[i] <> 0 Si Asignado[i] <> 0 Entonces Acabado[i] := False Entonces Acabado[i] := False Sino Acabado[i] := True Sino Acabado[i] := True FinSi FinSi FinPara FinPara Mientras i tal que Acabado[i]=False AND Mientras i tal que Acabado[i]=False AND Peticion[i]<=Trabajo Peticion[i]<=Trabajo Trabajo := Trabajo + Asignado[i] Trabajo := Trabajo + Asignado[i] Acabado[i] := True Acabado[i] := True FinMientras FinMientras Si i Acabado[i]=True Si i Acabado[i]=True Entonces Deteccion := False Entonces Deteccion := False Sino Detecion := True Sino Detecion := True FinSi FinSi Fin Deteccion Fin 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 Acabado[i] = False I Acabado[i] = False Los cinco procesos estn Los cinco procesos estn interbloqueados interbloqueados
Tema5: Interbloqueos
38
19