Punto muerto en OperaSistema de ting: ¿Qué es la espera circular? (Ejemplos)
⚡ Resumen inteligente
El interbloqueo en un sistema operativo se produce cuando un conjunto de procesos se bloquean porque cada uno posee un recurso y espera otro que está en manos de un proceso diferente, creando una cadena circular en la que ningún proceso puede continuar.

¿Qué es un bloqueo?
Deadlock es una situación que ocurre en un sistema operativo El interbloqueo es un problema común en el procesamiento paralelo, donde varios procesos comparten un tipo específico de recurso mutuamente excluyente, conocido como bloqueo suave o bloqueo de software.
Cuando se produce un bloqueo, ninguno de los procesos implicados puede continuar, por lo que el trabajo afectado se detiene hasta que interviene el sistema operativo.
Ejemplo de bloqueo
- Un ejemplo real sería el tráfico que circula en una sola dirección.
- Aquí, un puente se considera un recurso.
- Por lo tanto, cuando se produce un bloqueo, se puede resolver si un coche retrocede (se apropian recursos y se revierte la operación).
- Es posible que sea necesario hacer marcha atrás con varios vehículos si se produce una situación de bloqueo.
- Por lo tanto, la inanición es posible.
Ejemplo de interbloqueo
¿Qué es la espera circular?
Un proceso espera un recurso que está en posesión de un segundo proceso, que a su vez espera un recurso que está en posesión de un tercer proceso, y así sucesivamente. Esto continúa hasta que el último proceso espera un recurso que está en posesión del primer proceso. Esto crea una cadena circular.
Por ejemplo, al Proceso A se le asigna el Recurso B mientras lo solicita. De igual manera, al Proceso B se le asigna el Recurso A mientras lo solicita. Esto crea un bucle de espera circular.
Ejemplo de espera circular
Por ejemplo, un ordenador tiene tres unidades USB y tres procesos. Cada uno de los tres procesos utiliza una de las unidades USB. Por lo tanto, cuando cada proceso solicita otra unidad, los tres procesos entran en un estado de bloqueo, ya que cada uno espera a que se libere una unidad USB mientras aún está en uso. Esto genera un bucle infinito.
Ejemplo de espera circular
Detección de bloqueos en el sistema operativo
El planificador de recursos puede detectar un interbloqueo. Un planificador de recursos ayuda al sistema operativo a mantener... track de todos los recursos que se asignan a diferentes procesos. Una vez que se detecta un interbloqueo, se puede resolver expropiando recursos, revirtiendo un proceso o terminando uno o más de los procesos bloqueados.
Prevención de bloqueos en el sistema operativo
Es fundamental prevenir un interbloqueo antes de que ocurra. El sistema verifica cada transacción antes de su ejecución para asegurarse de que no provoque un interbloqueo. Incluso una operación pequeña que podría causar un interbloqueo en el futuro nunca se ejecuta.
La prevención de bloqueos mutuos es un conjunto de métodos para garantizar que al menos una de las cuatro condiciones necesarias no pueda cumplirse.
Sin preferencia
Un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene, una vez que dicho proceso haya finalizado su tarea.
- Si un proceso que está utilizando algunos recursos solicita otro recurso que no se le puede asignar de inmediato, entonces se liberan todos sus recursos.
- Los recursos que han sido interrumpidos se añaden a la lista de recursos que el proceso está esperando.
- El proceso se reinicia únicamente cuando puede recuperar sus recursos anteriores, así como los nuevos que está solicitando.
Exclusión mutua
Exclusión Mutua es la forma completa de Mutex. Es un tipo especial de binario. semáforo Se utiliza para controlar el acceso a un recurso compartido. Incluye un mecanismo de herencia de prioridad para evitar problemas de inversión de prioridad prolongados y mantiene las tareas de mayor prioridad bloqueadas durante el menor tiempo posible.
Los recursos compartidos, como los archivos de solo lectura, nunca provocan interbloqueos, pero recursos como las impresoras y las unidades de cinta necesitan acceso exclusivo por parte de un único proceso.
Espera y espera
En esta condición, se debe impedir que los procesos mantengan uno o más recursos mientras esperan simultáneamente por uno o más recursos.
Espera circular
Este método impone un ordenamiento total de todos los tipos de recursos. La prevención de esperas circulares también requiere que cada proceso solicite recursos en orden ascendente de enumeración.
Evitar puntos muertos Algorithms
Es preferible prevenir un interbloqueo que actuar una vez que este se ha producido. Para evitarlo, se necesita información adicional, como la forma en que se utilizarán los recursos. Un modelo útil para prevenir interbloqueos es aquel en el que cada proceso declara la cantidad máxima de recursos de cada tipo que podría necesitar.
Evitación Algorithms
El algoritmo para evitar interbloqueos evalúa dinámicamente el estado de asignación de recursos, de modo que nunca se produzca una situación de espera circular.
Para una única instancia de un tipo de recurso:
- Utilice un gráfico de asignación de recursos.
- Un ciclo en el grafo es necesario y suficiente para que se produzca un interbloqueo.
Para múltiples instancias de un tipo de recurso:
- Un ciclo es necesario pero no suficiente para que se produzca un bloqueo mutuo.
- Utilice el Algoritmo del banquero.
Diferencia entre inanición y punto muerto
Aquí hay algunas diferencias importantes entre el bloqueo y la inanición:
| Deadlock | Hambre |
|---|---|
| La situación de interbloqueo se produce cuando uno de los procesos queda bloqueado. | La inanición es una situación en la que todos los procesos de baja prioridad se bloquean mientras que los procesos de alta prioridad se ejecutan. |
| El bloqueo es un proceso infinito. | La inanición es una larga espera, pero no un proceso infinito. |
| Todo punto muerto siempre conlleva inanición. | No toda hambruna implica necesariamente un punto muerto. |
| El bloqueo se produce debido a la exclusión mutua, la espera prolongada, la falta de expropiación y la espera circular que ocurren simultáneamente. | Esto ocurre debido a prioridades no controladas y una mala gestión de los recursos. |
Ventajas del bloqueo
Estas son las ventajas de utilizar el método de manejo de interbloqueos:
- Esta situación funciona bien para procesos que realizan una única ráfaga de actividad.
- No se necesita ninguna interrupción para evitar el interbloqueo.
- Es un método práctico cuando se aplica a recursos cuyo estado se puede guardar y restaurar fácilmente.
- Es factible implementarlo mediante comprobaciones en tiempo de compilación.
- No requiere cálculos en tiempo de ejecución, ya que el problema se resuelve en el diseño del sistema.
Desventajas del bloqueo
Estas son las desventajas de utilizar el método de manejo de interbloqueos:
- Retrasa el inicio del proceso.
- Los procesos deben conocer de antemano sus necesidades futuras de recursos.
- Se anticipa más de lo necesario.
- No permite solicitudes incrementales de recursos.
- Tiene pérdidas inherentes por preeminencia.


