Académique Documents
Professionnel Documents
Culture Documents
Ali Larab
L2-info, CUFR d’Albi
2008-2009
1. Extension de la machine,
Machine virtuelle ou machine étendue,
• Rôle: Gérer les fichiers et offrir des primitives pour manipuler ces
fichiers.
– Ces primitives et les appels système qui leur correspondent sont appelés
par l’interpréteur de commande.
Répertoire Fichier
Données
Avantage :
– Par rapport à l’allocation contiguë, il n’y a pas d’espace perdu dans une
fragmentation du disque.
Inconvénient :
– Accès lent aux fichiers (fichiers non séquentiels), car pour accéder au bloc n,
le système doit démarrer au début et lire les n-1 blocs précédents, un par un.
– La perte d’un chaînage entraine la perte de tout le reste du fichier.
– Exemple : pour un disque de 20 Go ayant des blocs de 1Ko, la table doit contenir 20
millions d’entrées. Si 1 entrée = 3 octets, la table occupera 20 Mo.
Avantage :
• l’i-node n’a besoin d’être en mémoire que lorsque le fichier correspondant
est ouvert.
Si un i-node occupe n octets et k fichiers doivent être ouverts
simultanément, on aura besoin que de kn octets (alors que dans la
méthode précédente on a besoin d’un espace grand et fixe, relatif à
l’espace du disque et de ses blocs).
N°cluster Valeur
2 5
Exo1.c … … 2
3 0
4 0
Exo1.c = {cluster 2, 5 et6}
5 6
6 FFFFh
… …
Addr 2
•Les blocs physiques contiennent soit les données … b.i triple
du fichier, soit l’adresse d’autres blocs physiques. Addr 10
On parle alors de blocs d’indirection.
PS b.i
PD simple
PT b.i double
Fig2: Structure d’un I-Node
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 34
SGF
a) Rép simple avec des a) Rép simple dans lequel chaque entrée fait
entrées de taille fixe référence à un i-node
Répertoire racine
A B C
b) Une table de n bits pour un disque de n blocs (ex. 1: si bloc vide, 0: s’il est
alloué).
Ex. Un disque de 16 Go a 2^24 blocs de 1 Ko, et nécessite ainsi 2^24 bits pour la table. Ce qui
fait 2048 blocs (inférieur à celui des listes chaînée).
10101100 00110000 00110111 11000011 11111111
Octets 1 1 8 8 7 1 2 4 1 4-15
Num Nom
Localisation du fichier Taille du fichier Date et heure L sys
CD du fich
Octets 8 3 1 10 2 2 2 4
Nom-fichier extens attrib réservé heure date Num du 1er bloc taille
Octets 8 3 1 1 1 4
Nom-fichier extens attrib N seconde Date et heure
T de création
2 2 4 2 4
(suite) Dernier 16 bits pds Date et heure 16 bits pds Taille du
accès fort du bloc de dernière faible du bloc fichier
début écriture de début
Octets 2 14
Num d’i-node Nom du fichier
SE en RAM
SE en RAM
0 0 0
a): modèle rare aujourd’hui b): pour ordi de poche ou c): pour les 1er
PC avec
(pour mini-ordinateurs) sys embarqués MS-DOS (BIOS)
Files d’attente
multiples
800k 800k
Partition 4 Partition 4
600k 600k
Files d’attente
Partition 3 unique
Partition 3
400k 400k
Partition 2 Partition 2
200k 200k
Partition 1 Partition 1
100k 100k
SE SE
0 0
Non
utilisé C C C C C
B B B B
A
A A A
D D D
SE SE SE SE SE SE SE
(1) (2) (3) (4) (5) (6) (7)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 68
Gestion mémoire
Multiprogrammation et gestion mémoire (8/17)
Va
Va--et-
et-vient :
Gestion mémoire :
Attribution dynamique de la mémoire gérée par le SE.
Gérer= allouer une zone mémoire à un processus, l’enlever de la
mémoire et l’arrêter, l’enlever de la mémoire et le transférer sur
disque, et conserver une trace de l’utilisation de la mémoire.
mémoire
(a)
mémoire
(b)
(a)
Bus
Mémoire virtuelle et
segmentation 0 Segment 2 7000
9000
6000 1100
Segment
0 Segment 3 physique
Partition vide à 3080
occuper si le
segment voisin 0..500 Segment 4
est trop petit 19000
pour le
processus qui 0 Segment 5
l’occupe. 2050 23000
…
Espace d’adressage Mémoire centrale
logique du programme P1
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 82
Gestion mémoire
Multiprogrammation et gestion mémoire
Mémoire virtuelle et segmentation
• Avantages:
– Protection: le programmeur peut interdire l’accès à son segment, mais il
peut aussi le partager pour que plusieurs processus puissent l’exécuter.
– Seules les adresses appartenant au segment ayant été modifié le seront.
– Fragmentation interne…
À suivre…
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 112
PROCESSUS .
PLAN
1. Rappels sur la multiprogrammation
2. Introduction aux processus
3. Description d’un processus
4. Interruption d’un processus
5. Structure de données pour la gestion des processus
6. Ordonnancement de processus
7. Synchronisation de processus (accès concurrents)
8. Interblocages
9. Communication interprocessus
10. Appels systèmes pour la gestion des processus
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 113
Rappels sur la multiprogrammation
Monoprogrammation :
– Un seul programme (processus) s’exécutant en UC, sans interruption
• si le processus contient une instruction d’E/S, le processeur restera
inactif durant une longue période en attendant que cette instruction se
termine.
Multiprogrammation :
– Plusieurs programmes (processus) se partagent les ressources
(mémoires, périphériques…) de l’ordinateur pb de protection, de
concurrence et contrôle.
– Le processeur exécute un autre processus au lieu de rester inactif
pendant tout le temps occupé par l’instruction d’E/S du 1er processus.
– Ça donne illusion à l'utilisateur que les processus s'exécutent tous en
même temps. pseudo parallélisme
• Sur une machine mono processeur Seul un programme est actif à un
moment donné.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 114
Introduction aux processus
• Processus = instance d’exécution d’un programme (créée
par le SE ou par l’utilisateur) .
il possède son conteur ordinal, ses registres et ses variables
mémoires.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 116
Description d’un processus (1/2)
(4)
Actif (5)
Prêt (en exécution)
Terminé
(3)
Bloqué
(en attente d’E/S)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 118
Espace mémoire d’un processus (1/5)
L’espace mémoire utilisé par un processus est divisé en plusieurs (4)
zones:
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 119
Espace mémoire d’un processus (2/5)
1. Segment de code
– Copie du segment de code du fichier exécutable.
– Placé dans des zones fixes de la mémoire
(début de la zone disponible).
– La prochaine instruction à exécuter dans ce
segment est repérée par le pointeur d’instruction.
– Cette zone est en lecture seule. Pile
– Elle peut être partagée par tous les processus
exécutant le même programme. Ce qui n’est pas
le cas pour les segments de données et de pile 24 k
(jamais partagés)
Données
16 k
Texte
0 (code)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 120
Espace mémoire d’un processus (3/5)
2. Segment de données
– Se trouve au dessus du seg. de code.
– Il est amené à grandir ou à rétrécir durant
l’exécution.
– Il est composé de:
• Un seg. de données initialisées: copié
directement de l’exécutable. Les données Pile
initialisées correspondent aux var. globales et
statiques initialisées d’un programme C par
exemple. 24 k
• Un seg. de données non initialisées: créé
dynamiquement. Les données non initialisées Données
correspondent aux var. globales et statiques 16 k
non initialisées Texte
0 (code)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 121
Espace mémoire d’un processus (4/5)
3. Pile
– Sert à stocker les données obtenues en cours
d’exécution.
– Son nom de pile (stack en anglais) vient de la
manière dont elle est gérée: empiler puis dépiler les
données.
– Le plus souvent située en haut de l’espace Pile
d’adressage et croit vers le bas.
– Ex. Appel d’une fonction :
• Empiler le nom de la fonction, les paramètres à lui 24 k
passer et les différentes var locales de cette fct.
• Exécuter la fonction, Données
• Une fois la fonction terminée, le système dépile les 16 k
données utilisées par la fonction et retrouve les Texte
données d’avant, (code)
0
• Poursuivre l’exécution du pgm.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 122
Espace mémoire d’un processus (5/5)
4. Tas
– Est un autre segment utilisé par le SE pour
les allocations dynamiques.
– ////// …………..
Pile
24 k
Données
16 k
Texte
0 (code)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 123
Interruption d’un processus
Interruption :
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 124
Interruption d’un processus
Traitement d’une IT :
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 125
Interruption d’un processus
Traitement d’une IT : exemple
N° Code
Processus
Gest-IT(100) … …
en exécution ……….. Routine
100 ------
IT qui arrive. ………
………… d’IT 100
……….. -----.-
…………
Ex. …….. ---
………..
ctrl+Alt+Supp
ou ………
………..
……..
IT100 ………
………..
……..
………
Afficher la
……….. fenêtre de
……..
Ctrl+Alt+Supp Fermeture de la
fenêtre
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 126
Interruption d’un processus
Table des vect d’IT
Traitement d’une IT : exemple N° Code
Gestionnaire d’IT … …
Processus
------ Routine
en exécution …… 100
-----
…… d’IT 100
P1
…………
.-
………..
……..
…… ---
Exécution d’un ……… IRQ100
programme Charger
quelconque puis un autre Exécuter le pgme
arrivée de l’IT processus associé à la routine
« Ctrl+Alt+Supp ». Afficher la fenêtre du Fermeture de
P2
On la symbolise ………
……… gestionnaire des tâches. la fenêtre
……..
ici par le numéro ……..
……..
IT100
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 127
Interruption d’un processus
• Une IT est provoquée par un signal généré soit par un événement interne
soit par un événement externe .
– Éven. Interne: lié au processus:
• Appel système
• Déroutement: dû généralement aux erreurs telles qu’une division par zéro,
débordement de la mémoire, exécution d’une instruction non autorisée…)
– Éven. externe: panne, intervention de l’utilisateur à l’aide d’une frappe au
clavier. Par exemple « Ctrl+Alt+Supp », bouton « reset »….
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 128
Structure de données pour la gestion des
processus (1/3)
Pour gérer un processus, le SE manipule 2 structures de
données :
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 129
Structure de données pour la gestion des
processus (2/3)
1) Contexte d’un processus :
• C’est la structure de données qui décrit un processus en cours
d’exécution.
• Il s’agit des info sauvegardées par le SE lors de l’IT d’un processus.
• Elles sont créées au même moment que le processus et sont MAJ la
plus part du temps lors de l’IT du processus.
• Parmi les données du cotexte d’un processus on a:
• Le compteur ordinal (adresse de la prochaine inst),
• Le contenu des registres généraux,
• Les registres d’occupation mémoire,
• Registre de variable d’état (état du processus),
• Valeur d’horloge,
• Priorité du processus…
• Lors de l’IT d’un processus, le SE sauvegarde le contexte du
processus en cours et charge celui du processus à exécuter
«commutation de contexte» (changement de contexte).
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 130
Structure de données pour la gestion des
processus (3/3)
2) Table des processus :
• Tout processus contient une entrée dans cette table.
• Cette table contient toutes les info indispensables au SE pour assurer
une gestion cohérente des processus.
• Parmi ces info on a :
• un pointeur vers le bloc de contexte du processus,
• l’identifiant du processus,
• son lien de parenté,
• les fichiers qu’il a ouvert,
• occupation mémoire (pointeurs sur le segment de code, de données et
de pile),
• Cette table est stockée dans l’espace mémoire du SE.
Donc aucun processus ne peut y accéder.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 131
Ordonnancement de processus (1/7)
• P3 P1 P5 P2 P7 P8 P9 Processeur
Fonctionnement de l’ordonnanceur
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 132
Ordonnancement de processus (2/7)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 133
Ordonnancement de processus (3/7)
Ordonnancement selon FIFO (First In First Out)
• Le 1er processus arrivé est le 1er servi
• placer le nouveau processus qui arrive à la fin de la liste
• Avantage :
– Simple
– Ne consomme pas de temps processeur
• Inconvénient :
– Comme si on fait de la monoprogrammation,
– Problème avec les processus prioritaires,
– Le processeur peut être trop occupé par un gros travail
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 134
Ordonnancement de processus (4/7)
Ordonnancement circulaire (le tourniquet ou round Robin)
Robin)
• Allouer à chaque processus un temps d’exécution q (quantum),
• Une fois un processus a consommé son temps d’exécution, il est
interrompu et mis à la fin de la file d’attente.
• L’ordonnanceur sélectionne le prochain (premier) processus de la file et
l’exécute pendant le même quantum de temps.
• Avantage:
– Tous les processus ont la chance (même chance) d’être exécutés.
• Inconvénient:
– Si le temps q est faible et comparable à celui du changement de
contexte le processeur se retrouve à passer plus de temps à charger
et décharger des processus plutôt qu’à les exécuter. devient
inefficace.
– Problème avec les processus prioritaires
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 135
Ordonnancement de processus (5/7)
Ordonnancement avec priorité
– Le processus de plus haute priorité est exécuté le premier
Cet algo classe les processus dans l’ordre décroisant de leur priorité.
– Chaque processus s’exécute jusqu’à la fin.
– Une priorité peut être statique ou dynamique, fixe ou variable.
• Avantages :
– Pouvoir privilégier certains processus. Par exemple les processus systèmes
(ceux du SE) ont la priorité la plus haute.
• Inconvénients :
– Problème de la famine: Plusieurs processus de haute priorité monopolisent
l’unité centrale. Les processus de faible priorité ne s’exécuteront que très
rarement !!!
– Solutions: Décrémenter de 1 la priorité du processus (à chaque impulsion
d’horloge, chaque quantum q…) et le mettre (après avoir effectué son temps
q d’exécution) à la fin (queue) de la file de priorité inférieure.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 136
Ordonnancement de processus (6/7)
Ordonnancement selon le plus court d’abord (SJF
(SJF))
• C’est le plus court (du point de vue temps d’exécution) processus qui est
mis à la tête de la file d’attente et qui est exécuté en premier
Avantage:
– Utile dans les chaînes de production
Inconvénient:
– Suppose la connaissance de la durée d’exécution des processus, ce qui
est rare en pratique sauf si on a utilisé au préalable au moins une fois
ces processus.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 137
Ordonnancement de processus (7/7)
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 138
Synchronisation de processus
(accès concurrents)
• Le problème d’accès concurrents se produit quand 2 processus partagent
une ressource, matérielle ou logicielle (tq: fichier, variable, périphérique d’E/S),
alors que celle-ci ne peut pas être partagée (accès exclusif).
– Généralement les accès en lecture ne posent pas ce pb, ce qui n’est pas le cas
pour les accès en écriture.
• Ex.
– P1 et P2 : deux processus qui veulent accéder à l’imprimante.
– L’imprimante est gérée par le processus démon-plt qui inspecte une var de type
tableau qui contient les fichiers à imprimer et 2 var entières prochain (indique le
n°du prochain fichier à imprimer) et libre (indique le 1er emplacement libre où
déposer le fichier). Supposons le scénario suivant:
– P1 lit libre. La trouve à 5, puis est interrompu.
– P2 lit libre. La trouve toujours à 5, met son fichier à cet emplacement,
incrémente libre à 6, puis interrompu.
– P1 reprend et écrase le fichier de P2 avec le sien ! ! !
Solution: Ne pas interrompre P1 au moment où on l’a interrompu.
Notion de section critique et d’exclusion mutuelle.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 139
Synchronisation de processus
(accès concurrents)
Section critique et exclusion mutuelle
• Section critique = partie du processus où peut y avoir un conflit d’accès.
Elle contient des var ou des ressources partagées par d’autres
processus.
• Exclusion mutuelle : Si une ressource a été accédée par un processus
P1, aucun autre processus ne peut y accéder tant qu’elle n’a pas été
libérée par P1.
– Si P1 est interrompu, il faut attendre à ce qu’il reprenne son exécution et qu’il
libère la ressource.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 141
Synchronisation de processus
(accès concurrents)
Sémaphores (2/3)
• P(S) est équivalente à :
Si (S>0) alors S=S-1
Sinon s’endormir
Finsi
– Si le sémaphore est binaire une seule exécution de la section
critique
Faire
...instructions...
...
P(S)
Section critique
V(S)
...
...instructions...
...
Fin
• RQ: Il faut faire attention à l’ordre de P et de V.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 143
Synchronisation de processus
(accès concurrents)
Moniteurs (1/2)
• Contrairement aux sémaphores, les moniteurs est une solution facile à
mettre en œuvre (pas de problème d’inversion de P et de V).
• Primitives Wait et Signal : Leur but est de bloquer les processus sur la
réalisation d’une condition et pouvoir ensuite les réveiller.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 144
Synchronisation de processus
(accès concurrents)
Moniteurs (2/2) Exemple
monitor ProducteurConsommateur void producteur()
condition full, empty; {
int cpt; while(true)
{
void insert(int objet) objet=produce_object;
{ ProducteurConsommateur.insert(objet);
if (cpt==N) wait(full); }
insert_object(objet); }
cpt++;
if (cpt==1) signal(empty);
} void consommateur()
{
void remove(int objet) while(true)
{ {
if (cpt==0) wait(empty); ProducteurConsommateur.remove(objet);
remove_object(objet); consum_objet(objet)
cpt--; }
if (cpt==N-1) signal(full); }
}
cpt=0;
endmonitor;
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 145
Synchronisation de processus
(accès concurrents)
Solution matérielle : désarmement des IT
1) Désarmer les IT pendant toute la section critique, puis les réarmer à la fin
de celle-ci.
Méthode à n’appliquer qu’entre processus systèmes, car a des risques
(inconvénients):
– Blocage de processus plus prioritaires par l’exécution d’une longue section
critique.
– Blocage de tout le système si l’utilisateur oublie de réarmer les IT après la
sortie de la section critique.
2) Instruction TS (Test and Set) : instruction élémentaire qui permet de lire et
d’écrire le contenu d’un mot mémoire de manière indivisible.
void TS(int a,b) TS(test,verrou);
{a=b; b=1;} While test==1 do TS(test,verrou);
La section d’entrée devient: …Section critique…
verrou=0;
Le 1er qui s’exécute trouve verrou à 0, les autres le trouvent à 1 et ne
rentreront pas.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 146
Interblocages
Camion 2
Camion 4
Camion 3
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 147
Interblocages
Détection d’interblocage
P1 P2
P1 détient la
ressource R3
Pi Processus Pi R3
R1
Rj Ressource Rj
P3
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 148
Interblocages
Modélisation d’un interblocage (modèle (graphe) de Holt)
R1 R3 R1* R3* R1 R3 *
P1 P2 P3 P1 P2 P3 P1 P2 P3
(1) Pas d’interblocage (2) Cycle + les 3 (3) Cycle mais pas d’interblocage, car
conditions satisfaites pas d’attente circulaire; la libération
interblocage de P1 pour R2 met fin à l’interblocage
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 149
Interblocages
Solutions aux problème d’interblocage :
1. Approche préventive: empêcher les interblocages d’avoir lieu.
Nécessite beaucoup d’efforts.
2. Approche de détection et de guérison: le syst laisse les
interblocages se produire, ensuite, il les détecte et il les corrige.
3. Politique de l’autruche: Les ignorer et redémarrer le système s’ils se
produisent.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 150
Communication interprocessus
• But de la communication : échanger des données ou des résultats.
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 151
Appels systèmes pour la gestion des
processus
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 152
FIN
Ali Larab, L2-info, CUFR, 08-09 Systèmes d'Exploitation (2ème partie) 153