Cap06
Concurrencia: interbloqueo e
inanición
Interbloqueo
• Bloqueo permanente de un conjunto de
procesos que compiten por los recursos
o bien se comunican unos con otros.
• No existe una solución eficiente.
• Suponen necesidades contradictorias de
recursos por parte de dos o más
procesos.
(a) Posible interbloqueo
(b) Interbloqueo
Figura 6.1. Representación del interbloqueo.Progreso
de Q
Liberación
de A
A es
necesario
P y Q quieren
aA
Liberación de
B
Obtención
Interbloqueo
inevitable
de A
B es
necesario
Py Q
quieren a B
Obtención
de B
Progreso de P
Obtención de A
Obtención de B
Liberación
Liberación
de A
de B
A es
necesario
B es
necesario
Figura 6.2. Ejemplo de interbloqueo [BACO98].
Progreso
de Q
Liberación de
A
A es
necesario
Liberación de
B
Py Qquieren
aA
Py Q
quieren
aB
Obtención
B es
necesario
de A
Obtención
de B
Progreso de P
Obtención de
B
Liberación de Obtención de B Liberación de
A es
necesario
A
B
B es
necesario
Figura 6.3. Ejemplo de sin interbloqueo [BACO98].
Recursos reutilizables
• Pueden ser usados por un proceso y no se
agotan con el uso.
• Los procesos obtienen unidades de recursos
que liberan posteriormente paraque otros
procesos las reutilicen.
• Procesadores, canales de E/S, memoria
principal y secundaria, archivos, bases de
datos y semáforos.
• El interbloqueo se produce si cada proceso
retiene un recurso y solicita el otro.
Ejemplo de interbloqueo
Proceso P
Paso
Acción
Proceso Q
Paso
Acción
p0
Solicitar (D)
Solicitar
(D)
q0
Solicitar (T)
p1
Bloquear
Bloquear(D)(D)
q1
Bloquear (T)
q2Solicitar (D)
Bloquear (T)
q3
Bloquear (D)
p2
p3
Solicitar (T)
Solicitar (T)
Bloquear (T)
Realizar función
Solicitar (D)
p4
Desbloquear (D)
Realizar función
q4
Realizar función
p5
Desbloquear
Desbloquear
(T)(D)
q5
Desbloquear (T)
p6
Desbloquear (T)
q6
Desbloquear (D)
Figura 6.4. Ejemplo de dos procesos compitiendo por recursos utilizables
Figura 6.4. Ejemplo de dos procesoscompitiendo por recursos reutilizables.
[BACO98]
Otro ejemplo de interbloqueo
• El espacio disponible es de 200 KB y se
origina la siguiente secuencia de peticiones:
P1
...
Solicitud de 80 Kbytes
...
P2
...
Solicitud de 70 Kbytes;
...
• Se produce un interbloqueo si ambos
procesos avanzan hasta su segunda
petición.
Solicitud de 60 Kbytes;
Solicitud de 80 Kbytes;
Recursos consumibles
• Puedeser creado (producido) y destruido
(consumido) por un proceso.
• Interrupciones, señales, mensajes e
información en buffers de E/S.
• El interbloqueo se produce si el Receive
es bloqueante.
• Puede darse una combinación de sucesos
poco habitual que origine el interbloqueo.
Ejemplo de interbloqueo
• El interbloqueo se produce si el Receive
es bloqueante.
P1
P2
...
...
Receive (P2);
Receive(P1);
Send (P2, M1);
Send (P1, M2);
...
...
Condiciones de interbloqueo
• Exclusión mutua:
– Sólo un proceso puede usar un recurso cada
vez.
• Retención y esperar:
– Un proceso solicita todos los recursos que
necesita a un mismo tiempo.
Condiciones de interbloqueo
• No apropiación:
– Si a un proceso que retiene ciertos recursos
se le deniega una nueva solicitud, dicho
proceso deberáliberar sus recursos
anteriores.
– Si un proceso solicita un recurso que
actualmente está retenido por otro proceso,
el sistema operativo puede retener el
segundo proceso y exigirle que libere sus
recursos.
Condiciones de interbloqueo
• Círculo vicioso de espera:
– Puede prevenirse definiendo una
ordenación lineal de los tipos de recursos.
Recurso
A
do
icita
l
o
S
Ret
en
id o
Proceso
P1
po rProceso
P2
Ret
en
id o
por
o
itad
c
i
l
So
Recurso
B
Figura 6.5. Círculo vicioso de espera.
Predicción del interbloqueo
• Se decide dinámicamente si la petición
actual de asignación de un recurso
podría, de concederse, llevar
potencialmente a un interbloqueo.
• Necesita conocer las peticiones futuras
de recursos.
Dos enfoques para la
predicción del interbloqueo
• No iniciar un proceso si...
Regístrate para leer el documento completo.