Académique Documents
Professionnel Documents
Culture Documents
Paix-Travail-Patrie
MINISTERE DE L’ENSEIGNEMENT Peace-Work-Fatherland
SUPERIEUR MINITRY OF HIGHER EDUCATION
******** ******
UNIVERSITE DE DSCHANG UNIVERSITY OF DSCHANG
************* ***********
FACULTE DES SCIENCES FACULTY OF SCIENCES
********* *********
DEPARTEMENT DE MATHEMATIQUES- DEPARTMENT OF MATHEMATICS-
INFORMATIQUE
COMPUTER SCIENCES
R
REED
DIIG
GEE PPA
ARR ::
SSU
UPPE
ERRV
VIISSE
E PPA
ARR : Dr. KENGNE T. Vianney
Contexte du travail
La gestion des ressources par les systèmes d’exploitation est un élément crucial
pour la synchronisation et la communication interprocessus d’où des études
profondes s’avèrent nécessaires pour une efficacité dans cette gestion c’est le
cas des inters blocages dont l’étude permet de remédier aux accès concurrents
des processus aux ressources. En effet un ensemble de processus est en inter
blocages si chaque processus de l’ensemble est en attente d’événement que seul
un autre processus de l’ensemble peut engendrer, un événement étant en général
la libération d’une ressource par un autre processus de l’ensemble.
Problématique
L’exécution d’un processus nécessite un ensemble de ressources (mémoire
principale, disques, fichiers, périphériques, etc.) qui lui sont attribuées par
le système d’exploitation. L’utilisation d’une ressource passe par les étapes
suivantes : Demande de la ressource : Si l’on ne peut pas satisfaire la demande il
faut attendre. La demande sera mise dans une table d’attente des ressources.–
Utilisation de la ressource : Le processus peut utiliser la ressource.– Libération
de la ressource : Le processus libère la ressource demandée et allouée
.Lorsqu’un processus demande un accès exclusif à une ressource déjà
allouée à un autre processus, le système d’exploitation décide de le mettre
en attente jusqu’à ce que la ressource demandée devienne disponible ou lui
retourner un message indiquant que la ressource n’est pas disponible : réessayer
plus tard. Cependant la question qui se pose sont : comment le système
d’exploitation détecte t’il l’inter blocages ? et quels sont les stratégies qu’elle
met en œuvre pour y remédier ? Ses techniques de résolutions sont t’elles
parfaites ? Et enfin qu’elles sont les perspectives pour des éventuelles
améliorations ultérieures que nous pouvons suggérer ?
Plan du travail
Pour aborder cet études nous allons dans un premier temps définir et présenter
un outils de modélisation des inter blocages ,secondement présenter de façon
succinct les algorithmes de détection d’inter blocages utilises par des SE ,
troisièmement nous allons voir comment les SE traitent ce problèmes et
comment les éviter en présentant un algorithmes d’ordonnancement de djisktra
connu sur le nom d’algorithmes des banquiers qui permet de maintenir le
système dans un états sain et enfin nous allons voir comment prévenir ce
problèmes et apporter une ébauche de résolution
I-Définition
Un ensemble de processus est en interblocage si chaque processus attend un
évènement que seul un autre processus de l’ensemble peut provoquer.
Comme tous les processus attendent, aucun d’eux ne peut jamais produire un
évènement pour réveiller un autre et tous les processus continueront d’attendre
indéfiniment. Le plus souvent, l’évènement attendu est la libération d’une
ressource détenue par un autre processus. On parle donc généralement
d’interblocage des ressources. Ce qui ne peut se réaliser qu’a 4 conditions qui
sont :
Conditions d’exclusion mutuelle : chaque ressource est attribuée à un seul
processus à la fois
Un processus ayant déjà obtenu des ressources peuvent en demander de
nouvelles.
Les ressources déjà obtenues ne peuvent être retiré de force à un processus. Elles
doivent êtres explicitement libères par le processus qui les détient.
Il doit y avoir un cycle d’au moins deux processus pour produire un
interblocage.
Cet algorithme prend à son tour chaque nœud comme racine de ce qu’il pense
être un arbre et parcours l’arbre en profondeur. S’il arrive à un nœud qu’il a déjà
rencontré. C’est qu’il a trouvé un cycle. S’il épuise tous les arcs d’un nœud
donné, il revient au nœud précèdent. S’il revient au nœud racine et ne peut
poursuivre sin chemin cela indique que le sous arbre que l’on peut atteindre
depuis le nœud en cours ne contient aucun cycle.
Exécutons cet algorithme sur notre figure.
On commence par le nœud R et on initialise une liste L à vide. On ajoute ensuite
R a la liste L et on va passer au nœud A. on ajoute également A a la liste L
(L=[R, A]) et on passe au nœud S. on ajoute le nœud S a L (L=[R, A, S]). S ne
possède aucun arc sortant ce qui nous oblige à rebrousser chemin car l s’agit
d’une impasse. Comme A ne possède aucun arc non marqué nous revenons à R
et nous finissons notre inspection de R.
On constatera qu’avec les nœuds A, C, S, F et W nous nous retrouverons avec le
même résultat.
Avec le nœud D
Initialisation de la liste à vide
Insertion du nœud D dans la liste et positionnement sur le nœud T
Insertion du nœud T dans la liste et positionnement sur le nœud E
Insertion du nœud E dans la liste et positionnement sur le nœud V
Insertion du nœud V dans la liste et positionnement sur le nœud G
Insertion du nœud G dans la liste et positionnement sur le nœud U
Insertion du nœud U dans la liste et positionnement sur le nœud D
Insertion du nœud D dans la liste
A partir de ce moment on constate que le nœud D apparait dans notre liste donc
nous sommes en présence d’un cycle. Ainsi l’algorithme prend fin.
Lorsque l’algorithme se termine, tous les processus non marques, s’il y en a sont
en interblocages.
Exécutons cet algorithme avec les données suivantes :
E= (4 2 3 1)
A= (2 1 0 0)
C= (0 0 1 0,
2 0 0 1,
0 1 2 0)
R= (2 0 0 1,
1 0 1 0,
2 1 0 0)
Dans certains cas il est possible de retirer provisoirement une ressource à son
propriétaire pour l’attribuer à un autre processus.
Mais la possibilité de retirer une ressource à un processus pour l’attribuer à un
autre avant de la restituer au premier sans qu’ils s’en aperçoivent dépend
fortement de la nature de la ressource. De même le choix du processus à
suspendre dépend grandement des ressources susceptibles de leur être retirer
facilement. Par conséquent, effectuer une reprise de cette manière est souvent
difficile, voire impossible.
Si nous pouvons empêcher que des processus qui détiennent des ressources
attendent d’autres ressources, nous pouvons éviter les interblocages. Pour ce
faire, il est possible d’exiger de tous les processus qu’ils demandent la ressource
s dont ils ont besoin avant de commencer à s’exécuter. Si elles sont toutes
disponibles le processus se verra attribuer tout ce dont il a besoin pour
s’exécuter jusqu’au bout. Si une ou plusieurs ressources sont indisponible, rien
ne pourra être attribue et le processus se contentera d’attendre.
De cette approche découle le problème suivant : bon nombre de processus ne
savent pas combien de ressources ils vont avoir besoin avant de s’exécuter.
Pour contrecarrer de manière légèrement différente la condition détente et
d’attente, on peut exiger qu’un processus qui demande une ressources qu’il
commence par libérer provisoirement toutes les ressources qu’il détient. Il peut
tenter d’obtenir tout ce dont il a besoin en une seule fois.
Conclusion
Au terme de notre étude il en ressort que tous les système d’exploitation utilise
des stratégies algorithmiques pour assurer la bonne gestion des ressources entre
différents processus , cette taches étant un élément cruciale qui assure
l’efficacité d’un système d’exploitation .nous pouvons dire au terme de notre
analyse que l’interblocages est un problèmes rencontrés par tous les systèmes
d’exploitation .
Bibliographie
Andrew Tanenbaum, système d’exploitation peason education France, 2008