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
Se determina si hay disponibolesSe valida que no exceda su máximo declarado
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 procesoEste 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
proceso\recurso | R1 (7) | R2(7) | R3(7) | |
Maximos | P1 | 5 | 3 | 1 |
P2 | 3 | 2 | 3 | |
P3 | 2 | 3 | 1 | |
P4 | 5 | 0 | 3 | |
Asignados | P1 | 3 | 3 | 1 |
P2 | 2 | 2 | 2 | |
P3 | 0 | 1 | 1 | |
P4 | 0 | 0 | 1 | |
Necesarios | P1 | 2 | 0 | 0 |
P2 | 1 | 0 | 1 | |
P3 | 2 | 2 | 0 | |
P4 | 5 | 0 | 2 | |
Disponibles | 2 | 1 | 2 |
0 comentarios:
Publicar un comentario