Вы находитесь на странице: 1из 13

Dead Locks

Causas y Mitigaciones en S.O.D.

Qu es un DeadLock?
Bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema. Causado por un proceso que retiene un recurso solicitado por otro. Depende de la dinmica de la ejecucin como de los detalles de la aplicacin. Se encuentran en recursos reutilizables como en los consumibles.

Deadlocks Distribuidos
Transacciones Distribuidas: Conjunto de operaciones entre 2 host. Manejador de transacciones. Deben basarse en ACID (Atomicidad, Consistencia, Isolacin y Durabilidad). Control de Concurrencia: Asegura de que los resultados sean correctos para las operaciones en accin. Generar los resultados rpidamente.

Tipos de recursos:
Reutilizables:
Puede ser utilizado por el proceso sin que se agote cuando se libera est disponible para ser usado por otro proceso. Puede ser creado (producido) y destruido (consumido). Cuando un proceso adquiere un recurso de este tipo, es destruido.

Consumibles:

Condiciones de Deadlock
1. Exclusin mutua: Los recursos compartidos son adquiridos y utilizados de modo mtuamente exclusivo. 2. Retencin y espera: Cada proceso retiene los recursos que ya le han sido asignado mientras espera para adquirir el resto de recursos. 3. No expropiacin: Los recursos no se pueden quitar a los procesos. 4. Espera circular: Cada uno espera por uno o ms recursos en poder del siguiente miembro de la cadena circular.

Mitigacin de Deadlocks
Utilizar un protocolo que asegure que el sistema nunca llegar a un estado de deadlock. Permitir que el sistema entre en bloqueo mutuo y luego se recupere. Desentenderse del problema y hacer como si nunca ocurrieran bloqueos mutuos en el sistema. Esta solucin es la que adopta la mayor parte de los sistemas operativos, incluido Windows y UNIX.

Deadlock en Solaris
El krnel de Solaris es mediante mdulos. un mdulo interacta con otro mediante interfaces y est diseado para prevenir deadlocks causados por la interrupcin de hilos. La estrategia de bloqueo de kernel utilizada es un bloqueo basado en datos. Cada pieza de datos compartido es protegida por un objeto de sincronizacin.

Mitigacin de Deadlocks en SOLARIS


Deadlock causados por violacin de jerarqua son detectados en tiempo de ejecucin por un mecanismo de herencia. Pero NO es capaz de detectar todos los deadlocks (deadlocks con variables de condicin). El kernel de Solaris utiliza numerosos enfoques para tratar deadlocks: prevencin, deteccin, resolucin y no hacer nada.

Deadlock en Unix
En Unix, como en otros SO se ignora la ocurrencia de deadlock.
Esta estrategia resulta ser la ms sencilla y es denominada algoritmo del avestruz Ostrich (esconder la cabeza en la tierra y pretender que no existe problema alguno).

Ostrich
Si el deadlock se presenta con una frecuencia minima no tiene sentido tomar medidas para evitar el problema. Cada tabla del sistema en Unix (tabla de procesos) es un recurso finito que puede ser fuente de un posible deadlock. La mayora de los usuarios preferira un bloqueo ocasional en vez de una regla que restringiera el uso de los recursos.

Mitigacin de Deadlocks en UNIX


Usar un protocolo que garantice que el sistema nunca entre en un estado de deadlock (deteccin y evitacin). Permitir que el sistema entre en deadlock y luego se recupere (tcnicas de detection complementadas con tcnicas de recuperacin).

Вам также может понравиться