Sunteți pe pagina 1din 3

Detección de Deadlock

Mónica Vázquez monicaavqz@hotmail.com Damaris González dgonzlv@gmail.com


José Carmen Martínez majocarmen@gmail.com

ABSTRACT
En esta investigación se explicará el concepto de “Deadlock” así
como diversos métodos para predecirlos y prevenirlos.
Analizaremos los algoritmos más usados en manejo de
deadlock.

Palabras Clave
Deadlock, bloqueo, recursos, exclusión mutua, algoritmos de
detección.

1. INTRODUCCIÓN
Un deadlock se genera en el instante en que un proceso hace
petición de recursos y dichos recursos se encuentran asignados a
otros procesos que se encuentran en estado de espera de otros
recursos (Figura 1). [1] [2] [5]
Figura 1. Deadlock [5]
Actualmente los sistemas operativos ejecutan un gran número de
procesos, multihilos, archivos, múltiples accesos de lectura y
escritura, así como una cantidad ilimitada de transacciones en
bases de datos y servidores, por esta razón es importante que el
sistema operativo cuente con los mecanismos necesarios para
prevenir, detectar y solucionar el deadlock puesto que los 3. TRATAMIENTO DE DEADLOCK
procesos compiten entre sí por los recursos además de Stallings propone 3 estrategias para el manejo de deadlock:
comunicarse entre ellos, siendo altamente probable que un Prevenir: Asegurar que al menos una de las cuatro condiciones
proceso se encuentre bloqueado por esperar un evento de un que generan el deadlock no se cumplan. [1] [2] [5]
proceso también bloqueado. [1] [2]
Predecir: Detectar un posible deadlock de acuerdo a la
asignación de recursos para cada proceso [1] [2] [5]
2. CONDICIONES PARA GENERAR
DEADLOCK Detectar: Darse cuenta de que se han cumplido las 4
• Exclusión mutua: Los recursos no se pueden condiciones del deadlock y ejecutar una algoritmo que nos
compartir. Si el recurso se encuentra asignado a un permita salir de dicho bloqueo. [1] [2] [5]
proceso, el resto de los procesos deben esperar hasta Sin embargo Silberchatz [2] y Krzyzanowski [5] establecen una
que el recurso sea liberado. [1] [2] [5] cuarta estrategia:
• Retención y espera: Los recursos asignados a un Ignorarlo: Mencionan que el desarrollador de las aplicaciones
proceso permanecen en él, mientras se liberan los que debe ocuparse de codificar programas que resuelvan los
necesita para ejecutarse y que están ocupados por otros deadlocks. Es el más usado por la gran mayoría de sistemas
procesos. [1] [2] [5] operativos como Windows y Unix. [2] [5]
• Sin expropiación: El recurso solo puede ser liberado
por el proceso al que fue asignado después que haya 3.1 Prevención de deadlock
cumplido su objetivo. [1] [2] [5] Exclusión Mutua: No se puede prevenir, sin embargo es posible
que existan recursos a los que solo se accesará a ellos para
• Espera circular: En una lista de procesos un proceso consultarlos o leerlos, en estos casos ni será necesario garantizar
espera un recurso retenido por el proceso siguiente y la exclusión mutua. [1] [2] [3] [4] [5]
así sucesivamente, de tal forma que el último proceso Retención y espera: Implica que un proceso debe adquirir todos
de la lista espera un recurso retenido por el primer los recursos necesarios antes de que un proceso empiece a
proceso de la lista. [1] [2] [5] ejecutarse, haciendo que el deadlock no sea posible. [1] [2] [3]
[4]
Tiene las desventajas de que los recursos asignados pueden
permanecer indispuestos para los demás procesos, es decir causa
inanición y además puede ser que aún y teniéndolo asignado el
recurso no sea utilizado por un tiempo considerable. [1] [2]

1
Sin Expropiación: En caso de que un proceso requiera nuevos 4. DETECCIÓN DE DEADLOCK,
recursos para completar su ejecución, el proceso deberá liberar
los que le fueron asignados por voluntad propia hacia la lista de ALGORITMO DE CHAUDY, MISRA Y
procesos hasta que se encuentren disponibles todos los que HAAS
necesita; entonces si otro proceso necesita ejecutarse se El algoritmo propuesto en 1983 funciona de la siguiente manera:
comprueba la disponibilidad de sus recursos y se le asignan, en cuando un proceso espera un recurso se envía un mensaje que
caso de que no estén libres, se revisa que el proceso que los contiene tres componentes: el proceso que está bloqueado, el
tiene se encuentre en espera de recursos, en tal caso el proceso proceso que está enviando la solicitud y el destino. [5]
en espera libera los recursos y son usados por el que los necesita Una vez que se recibe el mensaje el proceso si este está
para ejecutarse junto a sus recursos originalmente asignados. [1] esperando un recurso envía nuevamente el mensaje al proceso
[2] [3] [4] que tiene el recurso que necesita para liberarse, si el mensaje
Espera Circular: Consiste en enumerar los recursos y ordenarlos regresa al proceso original que envió el mensaje se detecta un
en forma creciente de tal forma que los procesos soliciten los deadlock y se termina la transacción del mismo proceso o de un
recursos en ese orden. Es efectivo si los procesos son de proceso más joven. [5]
distintas prioridades. [1] [2] [3] [4].

3.2 Predecir un deadlock


Para evitar deadlocks los recursos están garantizados solamente
si el proceso su estado cuenta con una secuencia que permite
que el proceso corra completamente, es decir, no se deberá
comenzar el proceso si la petición de recursos causarían
interbloqueo [3] [5].

3.2.1 Evasión de deadlock


Cada proceso debe declara la cantidad máxima de recursos que
va necesitar de cada proceso, con esto podemos saber el estado
de asignación del recurso y tener la certeza de evitar una
dependencia circular. [2]
• Estado seguro: Se genera cuando a cada proceso se le
conceden los recursos con un orden para los procesos Tabla 2. Comparación de los algoritmos para la detección de
sin que eso cause deadlock. [2] Deadlock [3]
• Algoritmo del banquero: Sirve para determinar si
después de la asignación de recursos a un proceso, el
sistema permanece en estado seguro, en caso contrario 5. Recuperación de un deadlock
se niega la petición de recursos, hasta que el sistema
Cuando el sistema ha caído en deadlock es posible notificar al
pueda conservarse en estado seguro. [2]
usuario y que lo resuelva el mismo o bien permitir que el
“n = Número de procesos en el sistema sistema se restablezca por sí mismo, ya sea mediante la
m = Número de tipos de recursos terminación de procesos o mediante la expropiación de recursos.
[2]
a) Disponible: Vector m que indica el número de
recursos disponibles.
b) Max: Matriz n * m que indica la demanda 5.1 Terminación de procesos
máxima de cada proceso. • Interrumpir todos los procesos: Se interrumpe el
c) Asignación: Matriz n * m donde se defina la deadlock sin importar el tiempo consumido por los
cantidad de recursos de cada tipo asignados a procesos y se desechan los avances logrados hasta ese
cada proceso. momento. Tiene la desventaja de que es probable de
que ese proceso se vuelva a repetir. [2] [1]
d) Necesidad: Matriz n * m que indica la necesidad
a cubrir de recursos de cada proceso” [2] • Interrumpir proceso a proceso hasta que se elimine el
deadlock: Se utiliza un algoritmo de detección por
3.3 Detectar un deadlock cada interrupción para analizar si aún existen procesos
Detección de Deadlock requiere la examinación del proceso y bloqueados. Su desventaja es que consume muchos
sus interacciones también el sistema puede reponer terminando recursos. [2] [1]
el proceso que realice el deadlock o pre-vaciando los recursos de
otros procesos solo puede ser usada cuando el deadlock no es
muy frecuente y cuando la recuperación no es muy costosa [4] 5.1 Expropiación de recursos
[3]. Se retiran progresivamente los recursos de los procesos y se
asignan los mencionados recursos a otros procesos hasta que el
deadlock sea destruido. [2]

2
• Selección de un candidato: Se determina el orden en programación de algoritmos o bien darle la opción al usuario
que serán retirado los recursos del proceso en base a la para resolverlo por el mismo.
cantidad de recursos que está reteniendo el proceso en
deadlock y el total de tiempo consumido hasta su
ejecución. [2] [1]
7. REFERENCIAS
• Anulación: El proceso deberá ser reiniciado para
asegurar el estado seguro del mismo. [2] [1] [1] Stallings, W. (2005) (5ta ed.). Sistemas Operativos.
Prentice Hall: España. Recuperado el 12 de abril de
• Inanición: Se debe asegurar que el mismo proceso no 2011
sea seleccionado ni anulado, para esto se incluye la
cantidad de veces que ha sido anulado un proceso en el [2] Silberchatz, A. (2006) (7ma Ed). Fundamentos de
algoritmo de la selección del candidato. [2] [1] Sistemas Operativos. Mc Graw Hill. Recuperado el 12
de abril de 2011
[3] Deadlock Detection in Distributed System, Mukesh
6. CONCLUSION Singhal Ohio State University (Noviembre, 1989).
Es importante que los sistemas operativos cuenten con Recuperado el 12 de abril de 2011.
programas que eviten la existencia de deadlock ya que esto nos [4] Deadlock Properties of Computer Systems, Richard
afecta en el óptimo uso de los recursos del sistema, retrasa el
tiempo de ejecución, sobrecarga de trabajo en el procesador y
C. Holt, Universidad de Toronto. Recuperado el 12 de
abril de 2011.
puede llegar a causar pospuesta indefinida. Será necesario que
todo sistema en su creación cuente con los mecanismos [5] Krzyzanowski, Paul, “Distributed Deadlock,” Universidad
necesarios de recuperación de un deadlock ya sea mediante de Rutger (2004). Recuperado el 12 de abril de 2011