Gestión de Bloqueo Mutuo en Sistemas Operativos: Conceptos y Estrategias

Enviado por federzzz y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 2,68 KB

"Un conjunto de procesos está en bloqueo mutuo si cada proceso del conjunto está esperando un evento que sólo otro proceso del conjunto puede causar"

Condiciones necesarias para el bloqueo mutuo

  1. Condición de exclusión mutua: Cada recurso está asignado únicamente a un solo proceso.
  2. Condición de retener y esperar: Debe existir al menos un proceso que esté haciendo uso de un recurso y que esté esperando por otros recursos asignados a otros procesos.
  3. Condición de no apropiación: No es posible quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos explícitamente.
  4. Condición de espera circular: Debe haber una cadena circular de dos o más procesos, cada uno de los cuales está esperando un recurso retenido por el siguiente miembro de la cadena.

Formas de manejar un bloqueo

  1. Hacer caso omiso del problema (Algoritmo del avestruz): Ignorar la posibilidad de que ocurra el bloqueo.
  2. Detección y recuperación: Cuando se usa esta técnica, el sistema no hace otra cosa que no sea vigilar las peticiones y liberaciones de recursos. Cada vez que un recurso se solicita o libera, se actualiza el grafo de recursos y se determina si contiene algún ciclo. Si se encuentra uno, se termina uno de los procesos del ciclo. Si esto no rompe el bloqueo mutuo, se termina otro proceso, continuando así hasta romper el ciclo. Un método un tanto más tosco consiste en no mantener siquiera el grafo de recursos y, en vez de ello, verificar periódicamente si hay procesos que hayan estado bloqueados continuamente durante más de, digamos, una hora. A continuación, se terminan esos procesos.
  3. Evasión de bloqueos: Para la evasión de bloqueos, el sistema partiría de poseer información acerca de cuándo requiere un proceso utilizar cada recurso. De este modo, el planificador puede marcar qué flujos entre dos (o más) procesos son seguros y cuáles son inseguros.
  4. Prevención: Consiste en atacar las condiciones necesarias para que el bloqueo ocurra:

    Estrategias de prevención

    • Condición de exclusión mutua: Estrategia: poner todo en spool.
    • Condición de retener y esperar: Estrategia: solicitar inicialmente todos los recursos.
    • Condición de no expropiación: Estrategia: quitar los recursos.
    • Condición de espera circular: Estrategia: ordenar recursos numéricamente.

Entradas relacionadas: