0% encontró este documento útil (0 votos)
56 vistas29 páginas

Entendiendo el Deadlock en Sistemas

Este documento describe el concepto de deadlock o interbloqueo, incluyendo sus condiciones, modelos y métodos para prevenirlo como la exclusión mutua, posesión y espera, no apropiación y espera circular.

Cargado por

killerboy2008
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas29 páginas

Entendiendo el Deadlock en Sistemas

Este documento describe el concepto de deadlock o interbloqueo, incluyendo sus condiciones, modelos y métodos para prevenirlo como la exclusión mutua, posesión y espera, no apropiación y espera circular.

Cargado por

killerboy2008
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

El deadlock o interbloqueo

El interbloqueo

Situación en la que se encuentran un conjunto de procesos,


(al menos dos), tal que cada proceso del conjunto espera la
ocurrencia de un evento que sólo puede ser provocado por
otro proceso del mismo conjunto.

Dr. Roberto Gómez C. Diapo. No. 1


El deadlock o interbloqueo

Los recursos

Tipos de recursos:

1. Recurso apropiable

Se puede tomar del proceso que lo posee


sin provocar efectos dañinos

2. Recurso no apropiable

No se puede tomar de su poseedor activo sin


provocar un error.

Secuencia de eventos necesarios para utilizar un recurso:

1. Solicitar el recurso

2. Utilizar el recurso

3. Liberar el recurso

Dr. Roberto Gómez C. Diapo. No. 2


El deadlock o interbloqueo

Condiciones interbloqueo

1. Condición de exclusión mutua

2. Condición de posesión y espera

3. Condición de no apropiación

4. Condición de espera circular

Dr. Roberto Gómez C. Diapo. No. 3


El deadlock o interbloqueo

Modelando interbloqueos:
i el modelo de Holt

A S D

T U

R B C

(a) (b) (c)

Gráficas de asignación de recursos. (a) Posesión de un


recurso. (b) Solicitud de un recurso. (c) Bloqueo.

Dr. Roberto Gómez C. Diapo. No. 4


El deadlock o interbloqueo

A B C 1 A Solicitud R
Solicitud de R Solicitud de S Solicitud de T 2 B Solicitud S
Solicitud de S Solicitud de T Solicitud de R 3 C Solicitud T
Liberación de R Liberación de S Liberación de T 4 A Solicitud S
Liberación de S Liberación de T Liberación de R 5 B Solicitud T
6 C Solicitud R
bloqueo

A B C A B C A B C

R S T R S T R S T

(1) (2) (3)

A B C A B C A B C

R S T R S T R S T

(4) (5) (6)

Dr. Roberto Gómez C. Diapo. No. 5


El deadlock o interbloqueo

1. A Solicitud R
2 C Solicitud T
2.
3. A Solicitud S
4. C Solicitud R
5. A libera R
6. A libera S
no existe
it
bloqueo

A B C A B C A B C

R S T R S T R S T

(1) (2) (3)

A B C A B C A B C

R S T R S T R S T

(4) (5) (6)

Dr. Roberto Gómez C. Diapo. No. 6


El deadlock o interbloqueo

Areas de investigación del Interbloqueo

Prevención del interbloqueo


Condicionar un sistema para quitar cualquier
posibilidad de ocurrencia de interbloqueo
interbloqueo.

Evitar el interbloqueo
No precondiciona al usuario a quitar todas las
posibilidades
ibilid d dde iinterbloqueo.
bl

Detectar el interbloqueo
Determinar si un interbloqueo se dio o no.

Recuperarse del interbloqueo


Limpiar un sistema de interbloqueos, una vez
que fueron detectados.

Dr. Roberto Gómez C. Diapo. No. 7


El deadlock o interbloqueo

Prevención del Interbloqueo

Havender (Hv68)

+ Negación de la condición de no apropiación


Cada proceso debe de hacer todas sus requisiciones de
recursos y no puede continuar hasta que todo le haya
sido otorgado.

+ Negación de la condición de posesión y espera


Si a uun pproceso
S oceso que retiene
et e e recursos
ecu sos asignados
as g ados se lee negó
egó
un recurso, éste debe de liberar todos los que tenía. Si
es necesario los puede pedir después.

g
+ Negación de la espera
p circular
Imponer un orden lineal de los tipos de recursos en todos
los procesos. Por ejemplo, si un proceso tiene asignados
recursos de un determinado tipo, éste sólo puede pedir
recursos de tipos posteriores en el ordenamiento.

Dr. Roberto Gómez C. Diapo. No. 8


El deadlock o interbloqueo

Ejemplo Ordenamiento Lineal Recursos

R9
R10 .......

R8

R7

R6

R5

R4

R3

R2

R1

Dr. Roberto Gómez C. Diapo. No. 9


El deadlock o interbloqueo

R
Resumen metodos
t d prevención
ió iinterbloqueo
t bl

Exclusión Mutua
Realizar un spooling general

Posesión y espera
Solicitar todos los recursos al principio

p p
No apropiación
Retirar los recursos

Espera circular
Ordenar los recursos en forma numérica

Dr. Roberto Gómez C. Diapo. No. 10


El deadlock o interbloqueo

Evitando el interbloqueo
q el algoritmo
g del banquero
q

Si las condiciones necesarias para que se produzca un interbloqueo no


se pueden eliminar
=> tener cuidado con la asignación de recursos

P
Propuesto
t por Dijkstra.
Dijk t

Banquero:
Involucra un banquero que realiza prestamos y recibe pagos
de una determinada fuente de capital.
capital
Para autorizar un préstamo es necesario que el cliente sea
soluble y que no deje en banca rota al banco.

Objetivo algoritmo:
Dejar al sistema en un estado seguro después de asignar
recursos

Edo. Seguro:
g la situación total de los recursos es tal qque los usuarios
podrán terminar su trabajo

Edo. Inseguro: estado que me puede llevar a un interbloqueo

Dr. Roberto Gómez C. Diapo. No. 11


El deadlock o interbloqueo

Ejemplo Estado Seguro e Inseguro

Ejemplo de estado seguro:


Estado I

Préstamo Actual Necesidad Máxima


Usuario 1 1 4
Usuario 2 4 6
Usuario 3 5 8
Disponibles 2

Ejemplo de estado inseguro


Estado II

Préstamo Actual Necesidad Máxima


Usuario 1 8 10
Usuario 2 2 5
Usuario 3 1 3
Disponibles 1

Dr. Roberto Gómez C. Diapo. No. 12


El deadlock o interbloqueo

Paso de transición de edo


edo. seguro a inseguro

E d III
Estado

Préstamo Actual Necesidad Máxima


Usuario 1 1 4
Usuario 2 4 6
Usuario 3 5 8
Disponibles 2

E d IV
Estado

Préstamo Actual Necesidad Máxima


Usuario 1 1 4
Usuario 2 4 6
Usuario 3 6 8
Disponibles 1

Dr. Roberto Gómez C. Diapo. No. 13


El deadlock o interbloqueo

El algoritmo del banquero

• Varios ejemplares de recursos del mismo tipo


• Algoritmo puede extenderse a recursos de diferentes
tipos
ti
• Consideremos la asignación de una cantidad t de
recursos ( p.e. unidades de cinta ) entre un número u
de usuarios:
– cada usuario especifica el número de cintas que
necesitará durante la ejecución de su trabajo en el
sistema
– el sistema aceptará la petición de un usuario si la
necesidad máxima de ese usuario no es mayor que la
cantidad de recursos disponibles
– un usuario puede obtener o liberar unidades de cinta
una a una
– un usuario puede esperar para obtener una cinta
adicional, sin embargo la espera es finita
– el usuario debe garantizar al sistema que las unidades
de cinta serán utilizadas y liberadas en un tiempo
finito
• El algoritmo permite la asignación de unidades de
cinta a los usuarios solamente cuando la asignación
permita/conduzca a estados seguros y no a estados
inseguros

Dr. Roberto Gómez C. Diapo. No. 14


El deadlock o interbloqueo

Estructuras datos algoritmo


banquero

• Necesario representar el estado del sistema, para


determinar si se provocará un estado seguro o
inseguro
• M h estructuras
Muchas t t datos
d t deben
d b actualizarse
t li para
implementar el algoritmo del banquero
• Variables necesarias:
– t: número máximo de recursos
– n: número de procesos
– prestamo(i): cuantos recursos tiene asignado Pi
– max(i):número máximo de recursos solicitados por
Pi
– necesidad(i): el resto de los recursos que Pi puede
solicitar
– peticion(i): Pi requiere tantos procesos como
peticion(i) almacene
– dispo: número de recursos disponibles
n
dispo = t − ∑ prestamo(i)
i =n

Dr. Roberto Gómez C. Diapo. No. 15


El deadlock o interbloqueo

El algoritmo del Banquero

1. Si ( peticion(i) ≤ necesidad(i) )
i all paso 2
ir
sino
error --> proceso excedió su necesidad máxima
2. Si ( peticion(i) ≤ dispo )
ir al paso 3
sino
Pi debe esperar ya que no hay recursos disponibles
3. El sistema asigna los recursos pedidos al proceso Pi
modificando el estado del sistema de la siguiente
forma:
dispo = dispo
di di - petición(i);
i ió (i)
prestamo(i) = prestamo(i) + petición(i);
necesidad(i) = necesidad(i) - petición(i);

Si el estado después de la asignación es seguro:


=> la transacción es completada y Pi obtiene sus recursos.
Si el estado es inseguro:
=> entonces Pi debe esperar por petición(i) y el antiguo estado
de asignación de recursos es reestablecido.

Dr. Roberto Gómez C. Diapo. No. 16


El deadlock o interbloqueo

Algoritmo Detección de Estado del Sistema

Un algoritmo para verificar si el sistema de detección se


encuentra en estado seguro o inseguro es el siguiente:

1. Declaración e inicialización de variables:


trabajo
j = dispo;
p
terminado[1...n] inicializado en falso;
2. Encontrar i de forma que:

( ) terminado [[i]] = falso;;


(a)
(b) necesidad( i) ≤ trabajo

si i no existe ==> ir a 4
sii no ==> ir
i a3
3. trabajo = trabajo + prestamo(i);
terminado[i] = verdadero;
ir a 2;
4. si terminado[i] = verdadero (para toda i)
==> sistema está en un estado seguro
sino
el sistema esta en un estado inseguro

Dr. Roberto Gómez C. Diapo. No. 17


El deadlock o interbloqueo

Ejemplo algoritmo

Considere el siguiente escenario:

Se cuenta con 4 recursos disponibles, y el resto


esta distribuido de la siguiente forma:

P
Proceso RA N M
Nec Max. Necesidad
N id d
prestamo(i) necesidad(i)
P1 1 4 3
P2 2 6 4
P3 5 8 3

Ahora bien el proceso P2 solicita 2 recursos,


ppor lo qque la tabla anterior se actualiza:

Proceso RA Nec Max. Necesidad


prestamo(i) necesidad(i)
P1 1 4 3
P2 4 6 2
P3 5 8 3

di
dispo = 4 -2
2=2

Dr. Roberto Gómez C. Diapo. No. 18


El deadlock o interbloqueo

Ahora hay que verificar que no se crea un edo. inseguro

Paso 1)
trabajo = dispo = 2

P1 P2 P3
préstamo(i) 1 4 5
necesidad(i) 3 2 3
terminado(i) F F F

Paso 2)
i tal que (terminado[i] = falso) y (necesidad[i] ≤ trabajo)
==> i = 2

Paso 3)
trabajo = trabajo + prestamo[2] = 2 + 4 = 6
terminado[2] = V

la tabla queda de la siguiente forma:

P1 P2 P3
préstamo(i) 1 4 5
necesidad(i) 3 2 3
terminado(i) F V F

Dr. Roberto Gómez C. Diapo. No. 19


El deadlock o interbloqueo

Paso 2)
i tal que (terminado[i] = falso) y (necesidad[i] ≤ trabajo)
==> i = 1
Paso 3)
trabajo = trabajo + prestamo[1] = 6 + 1 = 7
t
terminado[1]
i d [1] = V
la tabla queda de la siguiente forma:
P1 P2 P3
préstamo(i) 1 4 5
necesidad(i) 3 2 3
terminado(i) V V F

Paso 2))
i tal que (terminado[i] = falso) y (necesidad[i] ≤ trabajo)
==> i = 3
Paso 3)
trabajo = trabajo + prestamo[3] = 7 + 5 = 12
terminado[3] = V
la tabla queda de la siguiente forma:
P1 P2 P3
préstamo(i)
ét (i) 1 4 5
necesidad(i) 3 2 3
terminado(i) V V V

Paso 3) No hay => Paso 4: terminado[i]=V para toda i

Dr. Roberto Gómez C. Diapo. No. 20


El deadlock o interbloqueo

La detección del interbloqueo

- Sistema no intenta evitar los bloqueos, sino que dejan que


aparezcan

- Deja que aparezcan y después lleva a cabo una acción para


recuperarse

- Existen dos tipos:

1 Detección
1. ió interbloqueo
i bl con un recursos de
d cada
d
tipo

2. Detección interbloqueo de varios recursos de cada


tipo

Dr. Roberto Gómez C. Diapo. No. 21


El deadlock o interbloqueo

Detección interbloqueo
(un recurso de cada tipo)

En el caso de que solo exista un recurso de cada tipo, para


detectar un interbloqueo basta con detectar un ciclo en el grafo
d asignaciones
de i i
R A B

C S D T E

F U V

W G
D T E
(a) Gráfica de recursos

U V
(b) Ciclo extraido de (a)

Dr. Roberto Gómez C. Diapo. No. 22


El deadlock o interbloqueo

Detección Interbloqueo
(varios recursos de cada tipo)

Es necesario utilizar dos matrices: asignación y disponible

Recursos en existencia
(E1,E2,E3,..., Em)

Matriz de asignación actual

C11 C12 C13 . . . C1m


Renglón n es la asignación C21 C22 C23 . . . C2m
actual para el proceso n. . . . .
: : : : . . .
. . . .
Cn1 Cn2 Cn3 . . . Cnm

Recursos disponibles
(A1,A
A2,A
A3,..., Am)

Matriz de solicitudes

R11 R12 R13 . . . R1m


1
R21 R22 R23 . . . R2m
. . . .
.: :. :. : .
. . . .
El renglón 2 es lo que
Rn1 Rn2 Rn3 . . . Rnm
necesita el proceso 2

Dr. Roberto Gómez C. Diapo. No. 23


El deadlock o interbloqueo

Algoritmo de asignación

Cada recurso debe estar asignado o disponible, por lo que:


m
∑ Cij + Aj = Ej
i =1

Algoritmo se basa en la comparación de vectores:


A ≤ B cada elemento vector A es menor o igual que
el elemento correspondiente de B, es decir:
A ≤ B ⇔ Ai ≤ Bi ∀ ( 0 ≤ i ≤ m)

El algoritmo de detección de bloqueos es el siguiente:

1 Se busca un proceso no marcado Pi, para que el i-ésimo


1. i ésimo
renglón de R sea menor o igual que A
2. Si se encuentra tal proceso, se suma el i-ésimo renglón
de C a A, se marca el proceso y se regresa al paso 1.
3 Si no existe
3. i tall proceso, ell algoritmo
l i termina
i

Al concluir el algoritmo, los procesos no marcados, de existir


alguno,
l están
á bloqueados.
bl d

Dr. Roberto Gómez C. Diapo. No. 24


El deadlock o interbloqueo

Ejemplo de aplicación

Recursos en existencia Recursos disponibles

mpresoras
Imppresoras

D ROM
Unidades
D ROM
Unnidades

dee cinta

Plloters
de cinta

Plooters

CD
Im
CD

U
E = ( 4 2 3 1) A= (2 1 0 0)

Matriz de asignación actual Matriz de solicitudes

0 0 1 0 2 0 0 1

C= 2 0 0 1 R= 1 0 1 0

0 1 2 0 2 1 0 0

Dr. Roberto Gómez C. Diapo. No. 25


El deadlock o interbloqueo

Recuperación de un interbloqueo

Una vez que se detectó un interbloqueo:

se necesita una forma de recuperarse y lograr que


el sistema continúe nuevamente

Existen
i varias
i técnicas,
é i (ninguna
( i de
d ellas
ll interesante):
i )

1. Recuperación mediante la apropiación

2. Recuperación mediante rollback

3. Recuperación mediante la eliminación de procesos

Dr. Roberto Gómez C. Diapo. No. 26


El deadlock o interbloqueo

Apropiación

• Selección de la víctima
– cuales recursos de cuales procesos se deben
expropiar
– orden de expropiación para minimizar el costo
– factores costo: número de recursos que un
proceso tiene asignados, y el tiempo que un
proceso bloqueado ha consumido
• Retroceso (rollback)
– que debe hacerse con el proceso víctima
– no puede continuar con su ejecución normal
– se debe regresar el proceso a un estado seguro y
reiniciarlo en ese estado
• Inanición (hambruna)
– como asegurarse de que no habrá inanición
– como garantizar
ti que no siempre
i se expropiaran
i
los recursos del mismo proceso
– un proceso debe ser elegido como víctima un
número finito, ((chico)) de veces
– solución común: incluir número retrocesos como
factor de costo
Dr. Roberto Gómez C. Diapo. No. 27
El deadlock o interbloqueo

Eliminación

• Dos opciones:
p
– abortar todos los procesos bloqueados
– abortar un proceso a la vez hasta eliminar el ciclo
de bloqueo mutuo
• Terminación forzada de un proceso podría
no ser fácil (proceso estaba actualizando un
archivo; imprimiendo)
• Factores en la selección de los procesos
– Prioridad del proceso
– Tiempo que ha trabajado el proceso y tiempo que
le resta antes de llevar a cabo su tarea designada
– cuantos recursos ha usado el proceso y de que
tipo (los recursos se pueden expropiar fácilmente)
– cuantos
t recursos adicionales
di i l necesita it ell proceso
para terminar su tarea
– cuantos procesos habrá que abortar
– los procesos son interactivos o por lotes

Dr. Roberto Gómez C. Diapo. No. 28


El deadlock o interbloqueo

Combinando métodos
• Investigadores argumentan que ninguna técnica
estrategia por si sola es apropiada para el manejo del
deadlock
• Una posibilidad es combinar ciertas técnicas y permitir
el uso de la estrategia para cada clase de recursos
• Considerar sistema que maneja cuatro de los siguientes
recursos:
– recursos internos: recursos usados por el sistema como un
bloque de control de proceso
– memoria central: memoria usada por trabajo de un usuario
– recursos de trabajo: dispositivos asignables (como
unidades de cinta) y archivos
– espac
espacio
o intercambiable:
te ca b ab e: espacio
espac o pa
paraa cada trabajo
t abajo de
usuario en el almacenamiento auxiliar
• Solución mixta:
– recursos internos: ordenamiento de recursos
– memoriai principal:
i i l expropiación
i ió
– recursos trabajos: evitar, ya que información se puede
obtener de las tarjetas de control de trabajos
– espacio intercambiable: preasignación

Dr. Roberto Gómez C. Diapo. No. 29

También podría gustarte