|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2009 Messages : 79 ![]() |
salut tout le monde!
je suis en train de lire un cours sur les interblocages dans unix ![]() je veux juste savoir les conséquences d'un inter-blocage sur les processus qui sont en dehors des cycles d'inter-blocage?càd ceux qui demandent des ressources qui sont dans la boucle d'inter-blocage? merci d'avance! |
|
|
00
|
|
|
#2 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 129 ![]() |
Bonjour,
Ca va dependre de la priorite de tes processus, ainsi que des ressources qu'ils consomment. Exemple 1 : Tes 2 processus sont des processus de calcul, qui continuent a calculer s'ils sont bloques (calcul de sinus par exemple). Tu as donc 2 processus interbloques, mais qui sont consommateurs de CPU. Tu vas donc limiter les ressources CPU pour les autres processus, mais qui auront eux aussi le droit de s'executer. [HS pour aller un peu plus loin] Ici, ca va dependre de l'algorithme utilise par l'ordonnanceur de ton OS : si l'algo utilise est "Un quantum par processus qui demande, puis retour du processus a la fin de la queue", tu as bien le cas cite ci-dessus. Mais si l'algo est "Plus un processus est vieux, moins je lui donne de temps CPU", ou son inverse "Plus il est vieux, plus il a de temps", les comportements seront differents : Dans le premier cas, ton interblocage va utiliser de moins en moins de CPU, et son effet sur la machine sera donc amoindri avec le temps. Dans le second cas, ton interblocage va etre de plus en plus genant, jusqu'a bloquer la machine completement. [Fin du HS] 2 eme cas : tes processus ne font rien que de demander le semaphore Dans ce cas, l'etat de tes processus (dans la file d'attente du processeur) sera toujours "non pret". Dans ce cas, l'ordonnanceur ne les charge meme pas sur le CPU, qui est donc entierement libre pour les autres processus. Attention, cela ne reste vrai tant que tes 2 processus ne consomment pas trop de ressources, ou que tu n'as que 2 processus intrebloques. Si tu as trop de processus interbloques, cela aura tout de meme un impact sur les performances du systeme (ce qui est logiqe car il doit a chaque instant gerer tes centaines ou tes milliers de processus pour verifier si leur etat change ou non). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com