Algorithme du banquier

Résolu/Fermé
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 - 31 juil. 2019 à 13:34
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 - 2 août 2019 à 16:31
Bonjour,

Je ne sais pas si je poste mon sujet au bon endroit mais j'ai besoin d'aide pour comprendre le fonctionnement d'un algorithme.

J'ai un énoncé de base :



Et les resultats d'un camarde, que je suppose justes




Est ce que quelqu'un pourrait m'aider à comprendre comment trouver ces résultats ?

Je sais que S est la matrice de ce dont on besoin les processus pour se terminer, mais je n'avance pas.

Merci d'avance...

3 réponses

yg_be Messages postés 22742 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477
1 août 2019 à 08:43
1
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
Modifié le 1 août 2019 à 12:56
Au risque de vous surprendre, j'ai déjà lu ce sujet.
je ne vous demande pas de faire le travail à ma place, je voudrais qu'on m'aide à avancer, qu'on m'explique.
Je n'arrive vraiment pas à avancer...

Et cet énoncé, c'est mon cours ! Je n'ai pas plus de cours que ça pour comprendre ...
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
Modifié le 1 août 2019 à 13:05
Je vais essayer de vous exposer mes reflexions, du coup.

Il faut trouver p1. Dans le résultats que j'ai, il y a trois lignes dans p1 :
p : 1 2 1 0
e : 6 3 4 2
r : 5 1 3 2

E ne change jamais, c'est donc la valeur qu'on donne dans l'énoncé. 6 3 4 2, c'est le nombre de ressources existantes dans le systeme.

Mais comment trouver la ligne P ?

J'ai demandé de l'aide à mon prof, et il m'a dit :

E c est le total des ressources du système
R c'est les ressources restantes a allouer

Pour E ça confirme ce que je pensais. Mais pour P ?

Je rame complétement..

Je me dis que A, c'est peut-être P0, avant P1, P2, etc

Et dans tous les exemples que je trouve sur internet, il y a une colonne ou une matrice "maximum"
C'est juste que mon prof l'a pas appelé comme ça là et que j'arrive pas à l'identifier. Ou alors elle n'est pas là..
0
yg_be Messages postés 22742 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477
Modifié le 1 août 2019 à 16:56
je pense que c'est une mauvaise idée d'utiliser les réponses de quelqu'un d'autre, cela va t’empêcher de comprendre. mieux vaut trouver les tiennes.
qu'as-tu compris de l'algorithme? à quoi sert-il? n'hésite pas à faire référence aux sites que tu as analysés sur internet.
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
2 août 2019 à 10:34
C'est que les examens approchent, et faute de mieux, j'ai utilisé ce que j'avais. :)

C'est un algorithme qui sert a affecter des ressources à des processus et tester si cette affectation permet de rester ou non dans un état sûr (la possibilité qu'il entre en interblocage ou non).

Mais c'est super abstrait ça, ça ne m'aide pas du tout.

En colonne, ce sont les ressources, la mémoire ;
En ligne ce sont les processus.

pN sont différentes affectations de ressources qui permettent de rester en état sûr ?

J'ai regardé la page wiki :
https://fr.wikipedia.org/wiki/Algorithme_du_banquier
Et ça confirmerait bien ce que je pensais sur pN, que c'est un instantané de l'affectation.

État à l'instant t d'un ordinateur : ressources actuellement attribuées et ressources demandées, pour cinq processus (P1 à P5) et quatre ressources (A à D)

Et j'ai regardé ces deux vidéo, qui ont toutes deux des colonnes "maximum" :

https://www.youtube.com/watch?v=-VoZvNvYt-A
https://www.youtube.com/watch?v=2V2FfP_olaA

Je me dis que "Need" doit correspondre a ma matrice S
"Allocation" corresponde à une ligne de P
"Available" c'est R ?
et... maximum serait "E" ?
0
yg_be Messages postés 22742 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477 > CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021
Modifié le 2 août 2019 à 10:57
Tu écris "Mais c'est super abstrait ça, ça ne m'aide pas du tout." Ce qui confirme que tu dois mieux comprendre. Regarde bien ton énoncé. Que signifie, concrètement, "affecter une ressource à un processus"?

As-tu compris l'article de wikipedia? Quand tu écris "ça confirmerait bien ce que je pensais sur pN", de quel pN s'agit-il précisément?
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
Modifié le 2 août 2019 à 12:49
Déjà, merci d'avoir adopté cette démarche avec moi. Exactement ce dont j'avais besoin, au vu du contexte.

Dans ma compréhension de la chose :
Un processus à besoin d'une ressource pour s’exécuter puis se terminer. Allouer (meilleur terme je pense) une ressource à un processus, c'est la lui rendre disponible, et donc lui réserver (ou la "consommer"?).

Là, en relisant wikipedia, je me dis :
Aurais-je depuis le début voulu donner un deuxième sens a pN alors qu'il ne signifie qu'une chose : "processus-N" ?

Et que du coup, une ligne P, celle de P1 par exemple, correspondrait à une ligne de "ressources attribuées" de l'exemple de wikipedia ?



Mais ce qui me met dans la panade c'est qu'à aucun endroit on me dit "il y a n instances de la ressource x".
MAIS, ne serait-ce pas, justement, la ligne "E" ?

Il faudrait donc l'allocation des ressources pour chaque processus (P1, P2, etc.) en tenant compte de E, (qu'on décrémenterait au fur et à mesure) ?

Mais du coup à quoi sert A ? C'est pour l'ensemble ?
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
2 août 2019 à 13:00
Les "ressources restantes à allouer" c'est en fait les "ressources demandées", je pense.
Mais c'est là que je ne comprend pas, pourquoi le total des colonnes de S ne fait pas "6 3 4 2".
Ca n'a juste rien à voir en fait ?
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
2 août 2019 à 14:52
Du coup, ma résolution :

j'ai fais P4, mon neo_dispo est (2 1 2 1)

P1 possède des valeurs inférieures ou égales :

Alloc de P1 (3 0 1 1)
Need de P1 (1 1 0 0)
neo_alloc. de P1 --> (4 1 1 1)
neo_dispo. -> (2 1 2 1) - (1 1 0 0) = (1 0 2 1)
P1 se termine :
P1 libère (4 1 1 1)
dispo. -> (1 0 2 1) + (4 1 1 1) = (5 1 3 2)

P2 possède des valeurs inférieures ou égales :

Alloc de P2 (0 1 0 0)
Need de P2 (0 1 1 2)
neo_alloc. de P2 --> (0 2 1 2)
neo_dispo. -> (5 1 3 2) - (0 1 1 2) = (5 0 2 0)
P2 se termine :
P2 libère (0 2 1 2)
dispo. -> (5 0 2 0) + (0 2 1 2) = (5 2 3 2)

P3 possède des valeurs inférieures ou égales :

Alloc de P3 (1 1 1 0)
Need de P3 (3 1 1 0)
neo_alloc. de P3 --> (4 2 2 0)
neo_dispo. -> (5 2 3 2) - (3 1 1 0) = (2 1 2 2)
P3 se termine :
P3 libère (4 2 2 0)
dispo. -> (2 1 2 2) + ( 4 2 2 0) = (6 3 4 2)

P5 possède des valeurs inférieures ou égales :

Alloc de P5 (0 0 0 0)
Need de P5 (2 2 2 0)
neo_alloc. de P5 --> (2 2 2 0)
neo_dispo. -> (6 3 4 2) - (2 2 2 0) = (4 1 2 2)
P5 se termine :
P5 libère (2 2 2 0)
dispo. -> (4 1 2 2) + (2 2 2 0) = (6 3 4 2)

Tous les processus peuvent s'achever sans interblocage, l’état est sûr ?
0
yg_be Messages postés 22742 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477
2 août 2019 à 15:02
le #16 me semble juste.
0
CH4BRN Messages postés 49 Date d'inscription lundi 19 février 2018 Statut Membre Dernière intervention 6 février 2021 1
2 août 2019 à 16:31
Parfait, merci beaucoup, autant pour les conseils que les encouragements !
0