next up previous contents
Next: Prevenir Up: Bloqueo Previous: Detectar y actuar   Índice General

Evitar

El sistema no da permiso de acceso a recursos si es posible que el proceso se bloquee en el futuro. Un método es el algoritmo del banquero (Dijkstra) que es un algoritmo centralizado y por eso posiblemente no muy practicable en muchas situaciones.

Se garantiza que todos los procesos actuan de la siguiente manera en dos fases:

  1. primero se obtiene todos los cerrojos necesarios para realizar una tarea, eso se realiza solamente si se puede obtener todos a la vez,
  2. despues se realiza la tarea durante la cual posiblemente se liberan recursos que no son necesarias.

Ejemplo:

Asumimos que tengamos 3 procesos que actuan con varios recursos. El sistema dispone de 12 recursos.

proceso recursos pedidos recursos reservados
A 4 1
B 6 4
C 8 5
suma 18 10

es decir, de los 12 recursos disponibles ya 10 están ocupados. La única forma que se puede proceder es dar el acceso a los restantes 2 recursos al proceso B. Cuando B haya terminado va a liberar sus 6 recursos que incluso pueden estar distribuidos entre A y C, así que ambos también pueden realizar su trabajo.

Con un argumento de inducción se verifica fácilmente que nunca se llega a ningún bloqueo.


next up previous contents
Next: Prevenir Up: Bloqueo Previous: Detectar y actuar   Índice General
© 2005, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática