Systèmes d`Exploitation - ENSIN6U3 - Gestion des ressources

publicité
Systèmes d’Exploitation - ENSIN6U3
Gestion des ressources
Leonardo Brenner 1
1
Jean-Luc Massat 2
[email protected]
2
[email protected]
Aix-Marseille Université
Faculté des Sciences
Table de matière
1
Ressources
Définition des ressources
Allocation de ressources
2
Interblocages
Traitement des interblocages
Ignorer les problèmes
Prévention des interblocages
Évitement des interblocages
Détection des interblocages
Guérison des interblocages
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
2 / 27
Ressources
Table de matière
1
Ressources
Définition des ressources
Allocation de ressources
2
Interblocages
Traitement des interblocages
Ignorer les problèmes
Prévention des interblocages
Évitement des interblocages
Détection des interblocages
Guérison des interblocages
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
3 / 27
Ressources
Définition des ressources
Définition des ressources
Définition d’une ressource
Une ressource est un objet utilisable par une tâche. Elle est caractérisée par :
l’existence d’un mode d’emploi ;
un état (libre ou allouée) ;
l’existence d’un allocateur que répond aux requêtes.
Type de ressources
On distingue les ressources :
banalisées : qui ont des occurrences multiples (imprimantes, canaux
d’E/S) ;
réquisitionnables : CPU, mémoire ;
physiques ou logicielles ;
partageables ou réentrantes : pour le code d’un programme.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
4 / 27
Ressources
Définition des ressources
Utilisation des ressources
Étapes d’utilisation
Demande : représente l’étape de demande d’une ressource. Si la
demande ne peut pas être satisfaite, on la met en attente ;
Utilisation : le processus peut utiliser la ressource ;
Libération : le processus libère la ressource demandée et allouée.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
5 / 27
Ressources
Allocation de ressources
Objectif de l’allocation de ressources
Objectif
Les allocateurs de ressources doivent :
être équitables (en respectant les priorités) ;
éviter la privation (attente sans fin d’une ressource) ;
éviter l’apparition d’un interblocage ;
éviter une congestion en veillant à :
identifier une demande excessive de ressources ;
ne pas accepter de demandes quand le système est en surcharge.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
6 / 27
Ressources
Allocation de ressources
Le graphe d’allocation de ressources
Graphe d’allocation
L’état des ressources est décrit au moyen d’un graphe de l’allocation de
ressources.
Un processus Pi et une ressource Rj ayant 3 occurrences sont décrits par :
Pi
Rj
Demandes d’allocation
Les demandes d’allocation et les ressources allouées sont décrits par :
R1
(a)
P1
R2
(b)
Leonardo Brenner , Jean-Luc Massat (AMU)
P1
Systèmes d’Exploitation
P1 réclame
une ressource
de type R1
Une ressource
de type R2 a été
allouée à P1
7 / 27
Interblocages
Table de matière
1
Ressources
Définition des ressources
Allocation de ressources
2
Interblocages
Traitement des interblocages
Ignorer les problèmes
Prévention des interblocages
Évitement des interblocages
Détection des interblocages
Guérison des interblocages
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
8 / 27
Interblocages
Les interblocages
Définition - Interblocage
Attente indéfinie pour un ou plusieurs processus d’une ou plusieurs
ressources détenues par des processus en attente de ressources.
Conditions d’apparition
Exclusion mutuelle : les ressources ne sont pas partageables ;
Détention et attente : chaque processus utilise simultanément plusieurs
ressources ;
Pas de préemption : les ressources ne sont pas réquisitionnables ;
Attente circulaire : il existe un ensemble de processus (p0 , ..., pn ) tel
que :
pi attend pi+1 pour 0 ≤ i < n,
pn attend p0 .
Les 3 premières conditions n’impliquent pas nécessairement une
interblocage, car l’attente circulaire pourrait ne pas se réaliser.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
9 / 27
Interblocages
Un exemple d’interblocage
Deux processus en interblocage
Un interblocage représenté par un graphe d’allocation des ressources :
La ressource 1
est détenue par
le processus A
ressource
1
Le processus B
réclame la
ressource 1
processus
A
processus
B
Le processus A
réclame la
ressource 2
ressource
2
La ressource 2
est détenue par
le processus B
Pa
(1)
(3)
Leonardo Brenner , Jean-Luc Massat (AMU)
Pb
..
.
prendre R1
..
.
(2)
prendre R2
..
.
prendre R2
..
.
(4)
prendre R1
Systèmes d’Exploitation
10 / 27
Interblocages
Traitement des interblocages
Traitement des interblocages
Comment traiter les interblocages
Ignorer les problèmes : politique de l’autruche ;
La prévention : On impose des règles strictes qui évitent l’apparition d’un
interblocage ;
L’évitement : On surveille l’apparition d’un interblocage en imposant des
contraintes moins strictes ;
La détection : Un algorithme à la charge de détecter les interblocages ;
La guérison : Suppression éventuelle de l’un des processus.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
11 / 27
Interblocages
Ignorer les problèmes
Ignorer les problèmes
Politique de l’autruche
Cette stratégie consiste à ignorer complètement les possibilités
d’interblocages. C’est à les utilisateurs de coder correctement leurs
applications et de surveiller à la bonne exécution.
Critiques
+ Solution adoptée par la plupart des systèmes d’exploitation courants ;
+ Très rapide et légère, il n’y a rien à implémenter ;
- Aucune garantie sur le bon fonctionnement du système.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
12 / 27
Interblocages
Prévention des interblocages
Prévention des interblocages (1/5)
Annonce des demandes
Annoncer les demandes de ressources nécessaires avant de démarrer un
processus. Le processus ne démarre que si tous les ressources demandées
sont disponibles.
Critiques
+ solution parfaite ;
- très mauvaise utilisation des ressources ;
- programmes difficiles à écrire (on ne connaît pas les ressources en
avance) ;
- risque de famine.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
13 / 27
Interblocages
Prévention des interblocages
Prévention des interblocages (2/5)
Libération et re-allocation des ressources
À chaque demande d’allocation d’une ressource supplémentaire, il faut libérer
toutes les ressources détenues et les redemander en y ajoutant la ressource
supplémentaire.
Critiques
- très mauvaise utilisation des ressources (perte au milieu de l’utilisation) ;
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
14 / 27
Interblocages
Prévention des interblocages
Prévention des interblocages (3/5)
Virtualisation de ressources
Diminuer le nombre de ressources qui ne peuvent pas être réquisitionnées.
interdire l’accès direct à la ressource,
remplacer la ressource réelle par une ressource virtuelle.
Exemple de virtualisation de ressources
processeur −→ processus ;
mémoire −→ mémoire virtuelle ;
imprimante −→ queue d’impression ;
écran −→ double-buffer, display ;
machine −→ machine virtuelle.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
15 / 27
Interblocages
Prévention des interblocages
Prévention des interblocages (4/5)
Ressources réquisitionnables
Pour supprimer la contrainte de non réquisition. On peut utiliser le protocole
suivant :
un processus détenant certaines ressources en demande une autre
si la ressource peut être allouée immédiatement, alors le processus
continue avec la ressource demandée ;
sinon, toutes les ressources actuellement allouées au processus sont
réquisitionnées.
Critiques
- Lenteur
- Risque de famine
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
16 / 27
Interblocages
Prévention des interblocages
Prévention des interblocages (5/5)
Classement des ressources
Classer les ressources suivant un ordre, et respecter cet ordre lors des
demandes de ressources.
Critiques
+ La condition d’attente circulaire est impossible donc pas d’interblocage
possible ;
- Cet ordre doit respecter une certaine logique, ... mais laquelle ?
- La contrainte est très lourde ;
- La portabilité des applications est médiocre ;
- Que faire quand on ajoute une nouvelle ressource ?
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
17 / 27
Interblocages
Évitement des interblocages
Évitement des interblocages
Politique d’évitement : Prudence
On évite les interblocages en adoptant un comportement prudent. La
méthode la plus connu est l’algorithme des banquiers.
Principe
Cet algorithme consiste à examiner chaque nouvelle requête pour voir si elle
conduit à un état sain. Si c’est la cas, la ressource est allouée, sinon la
requête est mise en attente.
le S.E. connaît les demandes maximales ;
les allocations/libérations sont libres.
État sain
Un système est dans un état sain s’il existe une séquence saine. Une
séquence de processus P1 , ..., Pn est une séquence saine pour l’état
d’allocation courant si, pour chaque Pi , les requêtes des ressources de Pi
peuvent être satisfaites par les ressources disponibles, plus les ressources
détenues par tous les Pj , avec j < i.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
18 / 27
Interblocages
Évitement des interblocages
L’algorithme des banquiers (1/3)
Principe de fonctionnement
Les processus sont comme des clients qui désirent emprunter de l’argent
(ressources) à la banque ;
Un banquier ne devrait pas prêter de l’argent s’il ne peut pas satisfaire les
besoins de tous ses clients ;
À tous moment, la quantité d’argent prêtée par la banque ne peut pas
dépasser la quantité maximale d’argent de la banque ;
Pour décider si le prêt doit être accordé, l’algorithme du banquier teste si
cette allocation conduira le système dans un état sain.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
19 / 27
Interblocages
Évitement des interblocages
L’algorithme des banquiers (2/3)
Structures de données
M : nombre de classes de ressources ;
N : nombre de processus ;
dispoj pour j ∈ {1, ..., M} ;
maxi,j pour i ∈ {1, ..., N}, j ∈ {1, ..., M} ;
alloci,j pour i ∈ {1, ..., N}, j ∈ {1, ..., M}.
Conditions d’exécution
Un processus Pi peut s’exécuter ssi
∀j ∈ {1, ..., M}, (maxi,j − alloci,j ) ≤ dispoj
Un ordre d’exécution Pk1 , ..., Pkn est dit sain ssi les processus peuvent
s’exécuter dans cet ordre les uns après les autres.
Si,dans un système d’allocation de ressources, il existe un ordre d’exécution
sain, alors il n’y a pas d’interblocages.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
20 / 27
Interblocages
Évitement des interblocages
L’algorithme des banquiers (3/3)
Algorithme d’allocations
Algorithme d’allocation de Rj à Pi :
1
2
3
4
dispoj > 0 ?
les annonces sont-elles respectées ?
si Rj est allouée à Pi , l’état est-il sain ?
si la réponse est négative, suspendre le processus Pi .
Critiques
+ Seule les requêtes laissant le système dans un état sain sont honorées ;
- Présuppose le nombre de ressources invariant ;
- Il faut connaître le nombre maximale de ressources que le processus
aura besoin.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
21 / 27
Interblocages
Détection des interblocages
Détection des interblocages
Principe
Le système ne cherche pas à empêcher les interblocages ;
À pour but de détecter les attentes circulaires ;
Coût exploitation non négligeable.
Différents types de vérification
À chaque modification du graphe suite à une demande d’une ressource ;
Périodiquement ;
Faible utilisation du processeur.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
22 / 27
Interblocages
Détection des interblocages
Détection des interblocages
Détection par graphe d’allocation
Nous devons montrer qu’il n’y a pas d’attente circulaire. Pour cela :
Un processus peut se terminer sans attendre les autres ;
D’autres processus pourrons se terminer après avoir récupérer les
ressources libérés par les précédents.
Nous supposons l’existence des 3 premières conditions : Exclusion mutuelle,
Détention et attente et Pas de préemption.
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
23 / 27
Interblocages
Détection des interblocages
Détection des interblocages
Exemple de détection par graphe d’allocation
P8
P7
P8
P7
R6
R6
P9
Réduction
par P9
P9
R7
R7
Réduction par P7
P8
P7
P8
P7
R6
R6
P9
Réduction
par P8
R7
Leonardo Brenner , Jean-Luc Massat (AMU)
P9
R7
Systèmes d’Exploitation
24 / 27
Interblocages
Détection des interblocages
Détection des interblocages
Exemple détection par graphe d’allocation
R1
R1
R2
R2
R5
R5
P1
P2
P3
P4
P5
P1
P2
P3
P4
R4
R4
R3
R3
R1
R1
R2
R2
R5
P1
P2
P3
P1
P2
P3
R4
R3
Leonardo Brenner , Jean-Luc Massat (AMU)
R3
Systèmes d’Exploitation
25 / 27
Interblocages
Détection des interblocages
Détection des interblocages
Constatations
S’il n’y a pas de cycles dans le graphe d’allocation, aucun interblocage
peut exister ;
Les cycles dans le graphe d’allocation de ressources ne représente pas
nécessairement une attente circulaire ;
S’il y a de cycles :
S’il y a seulement une ressource par type, il y a forcement interblocage ;
Si plusieurs ressources par type, il y a possibilité d’interblocage. Est-ce qu’il
y a un processus qui peut se terminer ?
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
26 / 27
Interblocages
Guérison des interblocages
Guérison des interblocages
Comment guérir des interblocages
Retirer temporairement une ressources à un processus ;
Restaurer un état antérieur du système ;
Supprimer un ou plusieurs processus.
Problèmes
Quel processus supprimer ? ou retirer les ressources ?
Comment revenir à un état sain ?
Leonardo Brenner , Jean-Luc Massat (AMU)
Systèmes d’Exploitation
27 / 27
Téléchargement