2010-05-17 6 views
0

juste une question rapide sur les états sûrs/dangereux dans ce Banker's algorithm Dijkstra ...Vous avez besoin d'éclaircissements sur l'algorithme des banquiers

Si l'un des processus dans l'instantané du système (par exemple celui ci-dessous) a déjà tous ses besoins sont satisfaits et il n'y a pas suffisamment de ressources disponibles pour répondre aux besoins des autres processus, le système est-il dans un état sûr? Je sais normalement que nous supposons qu'une fois qu'un processus reçoit ses ressources requises, il se terminera rapidement et retournera toutes les ressources, mais cette hypothèse est-elle prise en compte lorsque nous calculons l'état du système?

Allocated  Maximum  Available 

    | A | B   | A | B  A | B 
---+---+---  ---+---+--- ---+--- 
P1 | 1 | 2  P1 | 1 | 2  1 | 3 
P2 | 5 | 3  P2 | 7 | 8  

EDIT

qu'apporter ma question un peu plus clair: le système est dans l'exemple ci-dessus dans un état de sécurité ou d'un état dangereux? Supposons-nous que les demandes de P2 sont retardées jusqu'à ce que P1 renvoie des ressources, à quel point les demandes de P2 peuvent être satisfaites et donc le système est sûr, ou le système est-il dangereux car aucune des demandes possibles ne peut être satisfaite?

+0

Cet état est sûr puisque nous avons un horaire qui permet l'achèvement – user567879

Répondre

1

Le système est dans un état sûr car le processus 1 peut s'exécuter. Quand il se termine, il y aura suffisamment de copies de la ressource A et de la ressource B pour que le processus 2 se termine. Ainsi, il existe un "calendrier" avec lequel le système peut exécuter ses processus jusqu'à la fin. Cela signifie que c'est sûr.

Questions connexes