Principios
Punto muerto: es el bloqueo permanente de un conjunto de porsesos que están compitiendo por
los recuersos del sistema o por comunicarse entre si
Deadlocked
El interbloqueo (deadlock) es una situación en la que un conjunto de procesos se bloquea de
manera permanente porque cada uno espera un recurso o evento que solo otro proceso
bloqueado puede liberar. Esto crea un ciclo de dependencia en el que ninguno de los procesos
puede avanzar, haciendo que el sistema se detenga de forma indefinida. No existe una solución
eficiente en términos generales para resolver este problema.
Este diagrama demuestra visualmente el concepto de interbloqueo al mostrar cómo las rutas de
dos procesos pueden cruzarse cuando ambos compiten por los mismos recursos. Si ambos
procesos adquieren los recursos en el orden incorrecto, pueden entrar en una situación de
interbloqueo donde ninguno puede liberar los recursos necesarios, lo que lleva a una falla en el
sistema.
Glosario
straight through
defer
Resumen Completo sobre Deadlock
1. Definición de Deadlock
El interbloqueo (deadlock) es una situación en la que un conjunto de procesos se bloquea de
manera permanente porque cada uno espera un evento que solo otro proceso bloqueado puede
liberar. Esto crea un ciclo de dependencia en el que ninguno de los procesos puede avanzar,
haciendo que el sistema se detenga de forma indefinida.
Es importante tener claro que el interbloqueo es permanente porque todos los procesos
involucrados están en una situación donde ninguno puede continuar debido a que están
esperando que otro libere un recurso que ellos necesitan
Existen dos conceptos más relacionados a esto:
El potencial interbloqueo: Este sucede cuando un sistema esta en riesgo a entrar en un estado de
interbloqueo, en otras palabras, se puede decir que los recursos están disponibles para que
cualquiera de los procesos lo utilicen. En el ejemplo en la intersección de tracito, un potencial
interbloqueo es cuando los carros están detenidos, ahí todos tienen la posibilidad de avanzar.
Un interbloqueo real: este se da cuando todos los procesos de brincan las reglas (no se detienen) y
avanzan.
región fatal" o "zona fatal"
Es un área donde el riesgo de que ocurra un interbloqueo es inminente (Zona peligrosa), es donde
las condiciones para que un interbloqueo ocurra ya se cumplieron y donde la situación se vuelve
irremediable sin intervención externa.
Este diagrama demuestra visualmente el concepto de interbloqueo al mostrar cómo las rutas de
dos procesos pueden cruzarse cuando ambos compiten por los mismos recursos. Si ambos
procesos adquieren los recursos en el orden incorrecto, pueden entrar en una situación de
interbloqueo donde ninguno puede liberar los recursos necesarios, lo que lleva a una falla en el
sistema.
Categorías generales de recursos
Recurso Reutilizable: Este recurso de caracteriza porque este solo puede ser usado por un
proceso a la vez y no es agotable. Basicamente los procesos conforme van optieniendo recursos
los va liberando para que otros procesos los reutilicen.
Ejemplos de recursos reutilizables incluyen:
Procesadores
Canales de entrada/salida (I/O)
Memoria principal y secundaria
Dispositivos
Estructuras de datos como archivos, bases de datos y semáforos
. El interbloqueo ocurre si cada proceso retiene un recurso y solicita el otro.
Los interbloqueos como este ocurren y la causa está en la lógica del programa, lo que hace que su
detección sea difícil. Una estrategia para lidiar con tales interbloqueos es imponer restricciones en
el diseño del sistema sobre el orden en el que se pueden solicitar los recursos.
Recursos Consumibles: Recursos que se crean (producen) y destruyen (consumen)
Cuando un recurso es adquirido por un proceso consumidor, el recurso deja de existir.
Ejemplos de recursos consumibles incluyen:
Interrupciones
Señales
Mensajes
Información en los búferes de entrada/salida (I/O)
………………………………………..
Gráficos de Asignación de Recursos:
Esta herrramientoa de Holt de 1972, es un grafo que representa el estado del sistema en relación
a los resusrso y procesos.
Los nodos: representan cada proceso y recurso
Los bordes o arcos se dividen en:
- Borde dirigido de un proceso a un recurso (borde invisible)
El proceso ha solicitado un recurso, pero el recurso aún no ha sido concedido.
- Borde dirigido de un recurso reutilizable a un proceso
Si una instancia del recurso ha sido concedida a un proceso, el borde se dirige desde un
punto en el nodo del recurso hacia el proceso que lo está utilizando
Estos gráficos ayudan a visualizar cómo los recursos están siendo asignados o solicitados por los
procesos, lo que es útil para identificar posibles situaciones de interbloqueo en el sistema.
2. Condiciones Necesarias para Deadlock
Para que ocurra un deadlock, deben cumplirse las siguientes cuatro condiciones
simultáneamente:
1. Exclusión Mutua: Solo un proceso puede usar un recurso a la vez. Si un recurso
está siendo usado por un proceso, otros procesos deben esperar hasta que el recurso
sea liberado.
2. Espera y Retención: Un proceso que ya tiene asignado al menos un recurso puede
solicitar recursos adicionales y retener los que ya posee mientras espera que se le
concedan los nuevos recursos.
3. No Preempción: No se puede forzar a un proceso a liberar un recurso que ya tiene;
el recurso solo se libera voluntariamente por el proceso que lo posee.
4. Espera Circular: Debe existir una cadena cerrada de procesos, donde cada proceso
en la cadena está esperando un recurso que está siendo retenido por el siguiente
proceso en la cadena.
3. Estrategias para Manejar Deadlock
Existen tres enfoques principales para manejar el deadlock:
1. Prevención de Deadlock:
o Objetivo: Eliminar al menos una de las condiciones necesarias para el
deadlock.
o Estrategias:
Solicitud Completa: Un proceso solicita todos los recursos que
necesita al inicio, evitando la espera y retención.
Preempción: Implementar mecanismos para retirar recursos de
procesos si es necesario, permitiendo que otros procesos puedan
continuar.
Ordenación de Recursos: Asignar un orden a los recursos y hacer
que los procesos soliciten los recursos en un orden específico para
evitar ciclos de espera circular.
2. Evitación de Deadlock:
o Objetivo: Garantizar que el sistema siempre se mantenga en un estado
seguro mediante decisiones dinámicas.
o Estrategias:
Algoritmo del Banco (Banker’s Algorithm): Evalúa si una
solicitud de recursos puede llevar al sistema a un estado seguro,
donde todos los procesos puedan finalizar.
Enfoques Dinámicos: Utilizar técnicas de manejo dinámico para
asegurar que los recursos se asignen de manera que eviten estados
peligrosos.
3. Detección de Deadlock:
o Objetivo: Detectar la presencia de deadlock cuando ocurre y tomar medidas
para recuperarse.
o Estrategias:
Pruebas Periódicas: Implementar algoritmos para detectar deadlock
en intervalos regulares.
Gráficos de Asignación de Recursos: Utilizar gráficos dirigidos
para representar la asignación de recursos y los procesos,
identificando ciclos que indiquen deadlock.
4. Ejemplos Clásicos de Deadlock
Intersección de Tráfico: Un ejemplo clásico de deadlock en la vida real donde
varios coches llegan a una intersección al mismo tiempo y no pueden avanzar
porque cada uno está esperando a que otro se mueva.
Diagrama de Progreso Conjunto: Muestra cómo dos procesos que compiten por
recursos pueden llevar a un deadlock, dependiendo de la secuencia de solicitudes y
liberaciones de recursos.
5. Recursos Reutilizables vs. Consumibles
Recursos Reutilizables: Recursos que pueden ser usados por un proceso a la vez y
luego liberados, como CPU, memoria y dispositivos de I/O.
Recursos Consumibles: Recursos que se crean y destruyen, como mensajes y
señales.
6. Implementación en Sistemas Operativos
Métodos en UNIX, Linux, Solaris y Windows 7: Cada sistema operativo utiliza
diferentes mecanismos para manejar la concurrencia y la sincronización, como
semáforos, mutexes y monitores, adaptados a sus propios modelos de recursos y
procesos.
Conclusión
Para manejar el deadlock, los sistemas operativos pueden elegir entre prevenir, evitar o
detectar y recuperar de situaciones de deadlock. Cada enfoque tiene sus ventajas y
desventajas, y la elección de la estrategia depende de los requisitos específicos del sistema
y de las características de los procesos que se ejecutan en él.
4o mini
¿Es útil esta conversación hasta ahora?