Condiciones y Prevención del Interbloqueo en Sistemas Operativos

Clasificado en Informática

Escrito el en español con un tamaño de 4,14 KB

Condiciones de Interbloqueo

Para que se produzca un interbloqueo, deben darse tres condiciones:

1. Exclusión Mutua

Solo un proceso puede usar un recurso simultáneamente.

2. Retención y Espera

Un proceso puede retener recursos asignados mientras espera que se le asignen otros.

3. No Apropiación

Ningún proceso puede ser forzado a abandonar un recurso que retenga.

4. Círculo Vicioso de Espera

Existe una cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena.

Las tres primeras condiciones son necesarias, pero no suficientes, para que exista interbloqueo. La cuarta condición es, en realidad, una consecuencia potencial de las tres primeras. Es decir, dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos que desemboque en un círculo vicioso de espera irresoluble. Un círculo de espera irresoluble es, de hecho, la definición de interbloqueo. El círculo de espera de la condición 4 es irresoluble porque se mantienen las tres primeras condiciones. Es decir, las cuatro condiciones en conjunto constituyen una condición necesaria y suficiente para el interbloqueo.

Prevención del Interbloqueo

La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de interbloqueo. Los métodos para prevenir el interbloqueo son de dos tipos:

  • Métodos indirectos: Impiden la aparición de alguna de las tres condiciones necesarias (condiciones 1 a 3).
  • Métodos directos: Evitan la aparición del círculo vicioso de espera (condición 4).

Exclusión Mutua

En general, la primera de las cuatro condiciones no puede anularse. Si el acceso a un recurso necesita exclusión mutua, el sistema operativo debe soportar la exclusión mutua. Algunos recursos, como los archivos, pueden permitir varios accesos para lectura, pero solo accesos exclusivos para escritura. Incluso en este caso, se puede producir interbloqueo si más de un proceso necesita permiso de escritura.

Retención y Espera

La condición de retención y espera puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse simultáneamente. Esta solución resulta ineficiente por dos factores:

  1. Un proceso puede estar suspendido durante mucho tiempo, esperando que se concedan todas sus solicitudes de recursos, cuando de hecho podría haber avanzado con solo algunos de los recursos.
  2. Los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables, tiempo durante el cual se priva del acceso a otros procesos.

No Apropiación

La condición de no apropiación puede prevenirse de varias formas:

  • Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deberá liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con el recurso adicional.
  • Si un proceso solicita un recurso que actualmente está retenido por otro proceso, el sistema operativo puede expulsar al segundo proceso y exigirle que libere sus recursos. Este último esquema evitará el interbloqueo solo si no hay dos procesos que posean la misma prioridad.

Esta técnica es práctica solo cuando se aplica a recursos cuyo estado puede salvarse y restaurarse más tarde de una forma fácil, como es el caso de un procesador.

Círculo Vicioso de Espera

La condición del círculo vicioso de espera puede prevenirse definiendo una ordenación lineal de los tipos de recursos. Si a un proceso se le han asignado recursos de tipo R, entonces solo podrá realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenación.

Como en la retención y espera, la prevención del círculo vicioso de espera puede ser ineficiente, retardando procesos y denegando accesos a recursos innecesariamente.

Entradas relacionadas: