Concepto de recursos

 

1         Bloqueos mutuos (Deadlock)

 

Cuando un proceso A solicita un recurso que está ocupado por otro proceso B, pasa a un estado de espera. Si B también está en estado de espera, esperando un recurso que tiene A, los dos procesos están en deadlock.

 

1.1.1        Modelo del sistema

 

Un sistema consiste en un número finito de recursos que deben distribuirse entre varios procesos que compiten. Los recursos se dividen en varios tipos, cada uno de los cuales consiste en cierta cantidad de ejemplares idénticos (unidades de recursos). Si un proceso solicita un ejemplar de un tipo de recurso, la asignación de cualquier ejemplar del tipo, satisface la solicitud.

Un proceso solo puede utilizar un recurso, siguiendo esta secuencia:

  1. Solicitud: Si la solicitud no puede atenderse de inmediato, el proceso debe esperar.
  2. Uso: El proceso opera con el recurso.
  3. Liberación: El proceso libera el recurso.

 

La solicitud y liberación, son llamadas al SO. Una tabla del sistema registra si cada recurso está libre o asignado. Si un proceso solicita un recurso ocupado, se lo coloca en la cola de procesos que esperan ese recurso.

 

Los recursos pueden ser físicos (impresoras, memoria, ciclos de CPU), o lógicos (archivos, semáforos, monitores).

1.1.2       7.2 Caracterización de bloqueos mutuos

 

En un bloque mutuo, los procesos nunca terminan su ejecución y los recursos del SO quedan acaparados.

 

1.1.2.1       Condiciones necesarias

 

Puede llegar a ocurrir bloqueo mutuo si se cumplen simultáneamente las cuatro condiciones siguientes:

*      Mutua exclusión: Al menos un recurso debe adquirirse de forma no compartida, o sea, solo puede usarlo un proceso a la vez. Si otro proceso lo solicita, debe esperar.

*      Retener y esperar: Debe existir un proceso que haya adquirido al menos un recurso y esté esperando para adquirir recursos adicionales, que ya fueron otorgados a otros procesos.

*      No expropiación: Los recursos no se pueden arrebatar, es decir, la liberación es voluntaria por parte del proceso que adquirió el recurso.

*      Espera circular: Debe existir un conjunto {P0, P1, … , Pn} de procesos en espera tal que P0 espera un recurso adquirido por P1, P1 espera uno adquirido por P2, … , Pn espera uno adquirido por P0.