2009-11-14 8 views
2

Quelqu'un pourrait-il fournir une approche étape par étape pour résoudre le problème suivant en utilisant l'algorithme du banquier? Comment puis-je déterminer si un «état sûr» existe? Qu'entend-on par «processus d'achèvement» d'un processus?Algorithme des banquiers de Dijkstra

Dans cet exemple, j'ai quatre processus et 10 instances de la même ressource.

  Resources Allocated | Resources Needed 
Process A     1     6 
Process B     1     5 
Process C     2     4 
Process D     4     7 
+0

est ce devoir? Si oui, s'il vous plaît ajouter l'étiquette de devoirs –

Répondre

2

par Wikipedia,

Un état (comme dans l'exemple ci-dessus) est considérée comme sûre si elle est possible pour tous les processus de fin d'exécution (fin). Comme le système ne peut pas savoir quand un processus se terminera, ou combien de ressources il aura demandé d'ici là, le système suppose que tous les processus finiront par essayer d'acquérir leurs ressources maximales indiquées et se termineront peu après. C'est une hypothèse raisonnable dans la plupart des cas car le système ne s'intéresse pas particulièrement à la durée de chaque processus (du moins pas du point de vue de l'évitement des interblocages). En outre, si un processus se termine sans acquérir ses ressources maximales, il ne fait que faciliter le système.

Un processus peut être exécuté lorsque le nombre de chaque type de ressource dont il a besoin est disponible, entre lui-même et le système. Si un processus a besoin de 8 unités d'une ressource donnée, et qu'il a alloué 5 unités, alors il peut être exécuté jusqu'à ce qu'il y ait au moins 3 unités supplémentaires disponibles qu'il peut allouer. Par exemple, le système gère une seule ressource, avec 10 unités disponibles. Les processus en cours ont déjà alloué 8 (1 + 1 + 2 + 4) unités, donc il reste 2 unités. Le montant que tout processus doit compléter est son maximum moins ce qu'il a déjà alloué, donc au début, A a besoin de 5 de plus (6-1), B de 4 autres (5-1), C de 2 autres (4- 2), et D a besoin de 3 de plus (7-4). Il y en a 2 disponibles, donc le processus C est autorisé à fonctionner jusqu'à la fin, libérant ainsi 2 unités (laissant 4 disponibles). À ce stade, B ou D peut être exécuté (nous supposerons D). Une fois D terminé, il y aura 8 unités disponibles, après quoi A ou B pourra être exécuté (nous supposerons A). Une fois que A est terminé, il y aura 9 unités disponibles, et ensuite B peut être exécuté, ce qui laissera les 10 unités restantes pour un travail supplémentaire. Puisque nous pouvons sélectionner un ordre de processus qui permettra à tous les processus d'être exécutés, l'état est considéré comme «sûr».

+0

Merci Craig. C'est embarrassant quand on le casse comme ça! Je blâme mon manque de compréhension sur le temps :) – Blair

1
Resources Allocated | Resources Needed claim 
    Process A  1     6   5 
    Process B  1     5   4 
    Process C  2     4   2 
    Process D  4     7   3 

Total des ressources allouées est de 8 2 D'où les ressources ne sont pas encore attribués par conséquent qui est alloué pour le traitement C et le procédé c après la fin de reliefs 4 les ressources qui peuvent être données à traiter B, après avoir terminé le procédé B revit 5 ressources allouées à PROCESS A le n processus A après la fin alloue 2 ressources à traiter D

Questions connexes