Information Technology Reference
In-Depth Information
Acquisition
Exécution
Impression
mess : message;
début
boucle
enregistrer_travail(mess);
P(mvide);
P(muti);
requete(i)
mess, res : message;
début
boucle
P(mplein);
P(mutj)
mess
mess : message;
début
boucle
P(mutl);
P(nplein);
mess
=
requete(j);
=
avis(l);
=
mess;
j
1 mod m;
V(mutj);
V(mvide);
exécuter_travail(mess, res);
P(nvide);
P(mutk);
avis(k)
=
j
+
l
1 mod n;
V(nvide);
V(mutl);
imprimer_resultat(mess);
fin boucle
fin
=
l
+
i
1 mod m;
V(muti);
V(mplein);
fin boucle
fin
=
i
+
=
res;
k
1 mod n;
V(mutk);
V(nplein);
fin boucle
fin
=
k
+
16.7
Allocations de ressources et interblocage
1. Deux processus se partagent l'imprimante : le processus Collecteur et le processus
Bilan. Imaginons que le processus Collecteur ait commencé une impression alors
que le processus Bilan se réveille et démarre lui-même sa propre impression suite
au traitement sur les mesures. Comme chacune des deux impressions comporte
plusieurs lignes et que la ligne est l'unité de transfert vers l'imprimante il est très
probable que les 2 impressions seront mélangées sur l'imprimante.
Pour résoudre ce problème, il ne faut pas qu'un processus puisse démarrer une
impression si une impression est déjà en cours. Autrement dit, l'imprimante doit
être accédée en exclusion mutuelle.
2. Imaginons que le processus Collecteur s'exécute et acquiert l'imprimante par le
biais de l'opération P(imp). Le processus Bilan maintenant se réveille, préempte
le processus Collecteur et acquiert la ressource disque par le biais de l'opération
P(disque). Maintenant les deux processus sont bel et bien en situation d'inter-
blocage. Le processus Bilan poursuivant son exécution est bloqué sur l'opération
P(imp) car l'imprimante est allouée au processus Collecteur. Le processus Collec-
Search WWH ::




Custom Search