Está en la página 1de 30

 El bloqueo permanente de un conjunto de

procesos que compiten por los recursos del


sistema o se comunican entre sí.
 Un conjunto de procesos está bloqueado cuando
cada proceso en el conjunto está bloqueado en
espera de un evento que solo puede ser activado
por otro proceso bloqueado en el conjunto
 Permanente
 No hay solución eficiente
Dead Lock con Grafos
 Para las situaciones de “deadlock” , se tiene el siguiente grafo
donde
 los arcos representan:
 posesión de recursos Posesión B
Solicitud
 solicitud de recursos
 los vértices:
 Rectángulos: recursos
 Círculos: procesos. Q Lazo cerrado P

A
3

c b 2 3 2

4 d a 4 1

(a) Deadlock possible (b) Deadlock

Figure 6.1 Illustration of Deadlock


Progress
of Q
1 2
Release
A
P and Q
want A
A Release
Required B

Get A
3 deadlock P and Q
B
inevitable want B
Required
5
Get B
4
6

Progress
Get A Get B Release A Release B of P
= both P and Q want resource A
A
= both P and Q want resource B
Required

= deadlock-inevitable region B Required

= possible progress path of P and Q.


Horizontal portion of path indicates P is executing and Q is waiting.
Vertical portion of path indicates Q is executing and P is waiting.

Figure 6.2 Example of Deadlock


Progress
of Q

1 2 3
Release
A
4
A Release P and Q
Required B want A

P and Q
Get A
want B

B
Required
5
Get B

Progress
Get A Release A Get B Release B of P

= both P and Q want resource A ARequired B Required

= both P and Q want resource B = possible progress path of P and Q.


Horizontal portion of path indicates P is executing and Q is waiting.
Vertical portion of path indicates Q is executing and P is waiting.

Figure 6.3 Example of No Deadlock


Reutilizable
•puede ser utilizado de manera segura por un solo proceso
a la vez y no se agota por ese uso
•Procesadores, canales de E/S, memoria principal y
secundaria, dispositivos y estructuras de datos como
archivos, bases de datos y semáforos

Consumible
• Uno que puede ser creado (producido) y destruido
(consumido)
• Interrupciones, señales, mensajes e información.
• en buffers de E/S
Process P Process Q

Step Action Step Action


p0 Request (D) q0 Request (T)
p1 Lock (D) q1 Lock (T)
p2 Request (T) q2 Request (D)
p3 Lock (T) q3 Lock (D)
p4 Perform function q4 Perform function
p5 Unlock (D) q5 Unlock (T)
p6 Unlock (T) q6 Unlock (D)

Ejemplo de dos procesos que compiten por recursos reutilizables


Solicitud de memoria
 Hay espacio disponible para la asignación de
200Kbytes, y ocurre la siguiente secuencia de
eventos:

P1 P2
... ...
Request 80 Kbytes; Request 70 Kbytes;
... ...
Request 60 Kbytes; Request 80 Kbytes;

 Se produce un interbloqueo si ambos procesos


avanzan a su segunda solicitud
Deadlock con
Recursos consumibles
 Considere un par de procesos, en los que cada proceso intenta recibir un
mensaje del otro proceso y luego envía un mensaje al otro proceso:

 Se produce un deadlock si la recepción es bloqueante


Requests Held by
P1 Ra P1 Ra

(a) Resouce is requested (b) Resource is held

Ra Ra

He He
ld ld
s ts by s ts by
q ue q ue
Re Re

P1 P2 P1 P2
ts ts
He es He ue
s
ld e qu ld eq
by R by R

Rb Rb

(c) Circular wait (d) No deadlock

Figure 6.5 Examples of Resource Allocation Graphs


P1 P2 P3 P4

Ra Rb Rc Rd

Figure 6.6 Resource Allocation Graph for Figure 6.1b


Condiciones para Deadlock

Exclusión Mantener y
No apropiación Espera circular
mutua esperar
• sólo un • un proceso • Ningún • existe una
proceso puede recurso lista cerrada
puede usar mantener los puede ser de procesos,
un recurso a recursos quitado de de modo que
la vez asignados un proceso cada proceso
mientras se por la fuerza. contiene al
espera la menos un
asignación de recurso
otros necesario
para el
siguiente
proceso en la
lista
Tratando el Deadlock
 Existen tres enfoques generales para tratar con el deadlock:

Prevención del Deadlock


• Adoptar una política que elimine una de las condiciones.

Predicción (evitar) el Deadlock


• tomar las decisiones dinámicas apropiadas basadas en el
estado actual de la asignación de recursos

Detección del Deadlock


• Intentar detectar la presencia de un deadlock y tomar
medidas para recuperarse (rehabilitarse).
 Diseñar un sistema de tal manera que se excluya la posibilidad de
interbloqueo

 Dos métodos principales:


 Indirecto
 Evitar la aparición de una de las tres condiciones necesarias.
 Directo
 evitar la ocurrencia de una espera circular
Exclusión mutua Retener y esperar

Si el acceso a un requiere que un


recurso requiere proceso solicite todos
exclusión mutua, sus recursos
entonces debe ser requeridos al mismo
compatible con el tiempo y bloquee el
sistema operativo proceso hasta que
todas las solicitudes
puedan concederse
simultáneamente
 Sin Apropiación
 si a un proceso que posee ciertos recursos se le niega una
solicitud adicional, ese proceso debe liberar sus recursos
originales y solicitarlos nuevamente
 Si un proceso solicita un recurso y a éste, lo retiene otro
proceso, el SO puede anticiparse al segundo proceso y
requerir que libere sus recursos
 Espera circular
 Definir un ordenamiento lineal de tipos de recursos.
 Se toma una decisión de forma dinámica si la solicitud de
asignación de recursos actual, si se otorga, puede llevar a
un DeadLock.
 Requiere conocimiento de futuras solicitudes de proceso.
Evitar el
Deadlock
Denegación de
asignación de recursos Denegación de
• no conceda una
inicio de proceso
solicitud de recursos • No inicie un
incrementales a un proceso si sus
proceso si esta demandas pueden
asignación puede llevar llevar a un deadlock.
a un DeadLock
 Conocido como el algoritmo del banquero.

 El estado del sistema refleja la asignación actual de recursos


a procesos.

 El estado seguro es aquel en el que hay al menos una


secuencia de asignaciones de recursos a los procesos que no
produce un DeadLock.

 El estado inseguro es un estado que no significa DeadLock.


R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 3 2 2 P1 1 0 0 P1 2 2 2
P2 6 1 3 P2 6 1 2 P2 0 0 1
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 0 1 1
Resource vector R Available vector V

(a) Initial state

Determinación de un estado seguro


R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 3 2 2 P1 1 0 0 P1 2 2 2
P2 0 0 0 P2 0 0 0 P2 0 0 0
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 6 2 3
Resource vector R Available vector V

(b) P2 runs to completion

Determinación de un estado seguro


R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 0 0 0 P1 0 0 0 P1 0 0 0
P2 0 0 0 P2 0 0 0 P2 0 0 0
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 7 2 3
Resource vector R Available vector V

(c) P1 runs to completion

Determinación de un estado seguro


R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 0 0 0 P1 0 0 0 P1 0 0 0
P2 0 0 0 P2 0 0 0 P2 0 0 0
P3 0 0 0 P3 0 0 0 P3 0 0 0
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 9 3 4
Resource vector R Available vector V

(d) P3 runs to completion


(d) P3 runs to completion

Determinación de un estado seguro


R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 3 2 2 P1 1 0 0 P1 2 2 2
P2 6 1 3 P2 5 1 1 P2 1 0 2
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 1 1 2
Resource vector R Available vector V

(a) Initial state

R1 R2 R3 R1 R2 R3 R1 R2 R3
P1 3 2 2 P1 2 0 1 P1 1 2 1
P2 6 1 3 P2 5 1 1 P2 1 0 2
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Claim matrix C Allocation matrix A C–A

R1 R2 R3 R1 R2 R3
9 3 6 0 1 1
Resource vector R Available vector V

(b) P1 requests one unit each of R1 and R3

Determinación
Figure 6.8 Determination of an Unsafe de un
State estado inseguro
 No es necesario anticipar y revertir los procesos, como en la
detección de interbloqueo

 Es menos restrictivo que la prevención de DeadLock.


• El requerimiento máximo de recursos para cada
proceso se debe indicar por adelantado

• Los procesos en consideración deben ser


independientes y sin requisitos de sincronización.

• Debe haber un número fijo de recursos para asignar

• No puede cambios en el escenario de los procesos


(ninguno puede agregarse o salir)
Estrategias para tratar el
Deadlock

Las estrategias de prevención de deadLock


son muy conservadoras.
• Limitar el acceso a los recursos mediante la imposición
de restricciones en los procesos.

Las estrategias de detección de interbloqueo


hacen lo contrario.
• las solicitudes de recursos se conceden siempre que sea
posible
Algoritmos de detección
 Se puede realizar una Ventajas:
comprobación de conduce a la detección
interbloqueo con la temprana
frecuencia de cada El algoritmo es
solicitud de recurso o, relativamente simple.
con menor frecuencia,
dependiendo de la Desventaja
probabilidad de que se Las comprobaciones
produzca un frecuentes consumen
interbloqueo un tiempo de
procesador
considerable
Estrategias de recuperación

1. Abortar todos los procesos bloqueados


2. Retroceder cada proceso interbloqueado hasta algún punto de
control definido previamente y volver a ejecutar los procesos
3. Abortar sucesivamente procesos interbloqueados hasta que ya
no exista el interbloqueo
4. Apropiarse de los recursos sucesivamente hasta que deje de
haber interbloqueo.
Para los puntos 3 y 4, el criterio de selección puede ser:
• La menor cantidad de tiempo de procesador consumido hasta ahora
• El menor número de líneas de salida producidas hasta ahora
• El mayor tiempo restante estimado
• El menor número total de recursos asignados ahora
• La prioridad más baja

También podría gustarte