Comprensión Profunda del Interbloqueo en Sistemas Operativos: Causas y Soluciones

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,94 KB

Comprensión Profunda del Interbloqueo en Sistemas Operativos

Definición de Interbloqueo (Deadlock)

Un interbloqueo, también conocido como Deadlock, Abrazo Mortal o Bloqueo Mutuo, ocurre cuando:

  • Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que solo puede originar otro proceso del mismo conjunto.
  • Se da cuando los procesos no pueden progresar debido a que los recursos que cada uno de ellos necesita están ocupados por los otros.

Recursos: Tipos y Clasificación

Tipos de Recursos

  • Físicos: Procesador, memoria, dispositivos. Asociado al hardware.
  • Lógicos: Archivos, semáforos, mutex, cerrojos, mensajes o señales. Asociado al software.

Clasificación de los Recursos

Reutilizable o Consumible
  • Reutilizable: Sigue existiendo luego que un proceso lo usa. Ejemplos: Recursos físicos y lógicos como archivos y cerrojos.
  • Consumible: Deja de existir luego que un proceso lo usa.

Nota: Los recursos lógicos están frecuentemente relacionados con la comunicación y sincronización de procesos.

Compartido o Exclusivo
  • Compartido: No se ve afectado por el interbloqueo.
  • Exclusivo: Solo lo puede usar un proceso a la vez.
Instancias
  • Único ejemplar o Múltiple ejemplar: Indica si existe una o varias instancias de un recurso.
Expropiable o No Expropiable
  • Expropiable: Sí se le puede quitar a un proceso mientras lo está usando. Ejemplos: Procesador y memoria.
  • No Expropiable: No se le puede quitar a un proceso mientras lo está usando.

Condiciones Necesarias para la Existencia de Interbloqueo

Las siguientes son condiciones necesarias (pero no suficientes) para que ocurra un interbloqueo:

  • Exclusión mutua: Recursos de uso exclusivo.
  • Retención y espera: Un proceso en espera retiene recursos que ya posee.
  • Sin expropiación (No expropiación): No se le pueden quitar los recursos a un proceso; solo los libera voluntariamente.
  • Espera circular: Existe una lista circular donde un proceso espera los recursos que está usando el proceso siguiente en la lista, y el último proceso espera los recursos que está usando el primero.

Tratamiento del Interbloqueo

Existen diversas estrategias para manejar la situación de interbloqueo:

Estrategias de Detección y Recuperación

  • Fase de Detección: Se aplica un algoritmo que determina si el sistema está en interbloqueo y cuáles son los procesos involucrados. Es crucial establecer la frecuencia con la que se ejecutará este algoritmo.
  • Fase de Recuperación: Consiste en eliminar el interbloqueo abortando algunos procesos implicados para liberar recursos. Debe existir un algoritmo que determine qué proceso(s) se aborta(n).

Estrategias de Prevención

Estas estrategias buscan eliminar el problema de raíz, eliminando la posibilidad de interbloqueo al asegurar que una de las cuatro condiciones necesarias no se satisfaga:

  • Eliminar Exclusión mutua: Implica compartir todos los recursos. Esto es imposible, ya que algunos recursos son intrínsecamente no compartibles.
  • Eliminar Retención y espera: Se debe garantizar que, cuando un proceso solicite un recurso, no esté reteniendo otros recursos previamente asignados.
  • Eliminar Expropiación: Cuando un proceso solicita un recurso que no está disponible, se le deben liberar los recursos que ya tiene retenidos.

Entradas relacionadas: