miércoles, 15 de diciembre de 2010

Algoritmo del banquero

Llamado: (Algoritmo de Dijkstra)

Este algoritmo se usa para evitar interbloqueos en el sistema, básicamente procede de la siguiente manera: cada proceso declara el máximo de recursos a utilizar y cada vez que se hace una solicitud de asignación de recursos, se determina si al asignar los recursos se deja en un estado inseguro y de ser así se pospone la asignación, de lo contrario, se asignan los recursos solicitados.

 

Asignación

  1. Se determina si hay disponiboles
  2. Se valida que no exceda su máximo declarado
  3. Se verifica que si se concede la petición, el sistema quede en estado seguro
Si no se cumple cualquiera de estas condiciones, el proceso queda suspendido hasta que exista una liberación de recursos.

Desventajas

  • Se necesita saber desde un principio el máximo de recursos que usará cada proceso
  • Este proceso implica un retardo en cada asignación de recursos, lo que puede degradar el sistema si se manejan muchos recursos y/o procesos
  • Se requiere una garantía de devolución: c/proceso liberará los recursos asignados

Ejemplo


proceso\recursoR1 (7)R2(7)R3(7)
Maximos P1531
P2323
P3231
P4503
AsignadosP1331
P2222
P3011
P4001
Necesarios P1200
P2101
P3220
P4502
Disponibles212


Supongamos las siguiente peticiones de recursos:
  • P2[1,0,1]:El sistema queda en un estado seguro
  • P3[2,0,0]:El sistema queda en un estado inseguro

1 comentario:

  1. P2[1,0,1]:El sistema queda en un estado seguro
    P3[2,0,0]:El sistema queda en un estado inseguro porque?

    ResponderEliminar