Telechargé par ihsen86

Diapos cours SE-2

publicité
Systèmes d’Exploitation 2
Ali Larab
L2-info, CUFR d’Albi
2008-2009
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
1
Présentation du module « S.ES.E-2 »
Objectif:
–
Approfondir les notions acquises dans le module SE-1 (Notions sur
l'organisation interne et gestion des mémoires et fichiers).
Volume horaire:
–
30h (10h cours + 10h TD + 10h TP).
Contenu:
–
–
–
–
Fonction d’un SE : approfondir les points abordés dans le module SE-1
Gestion des fichiers (Fichiers et catalogues : accès et protection)
Gestion des mémoires (principale et secondaires)
Gestion des processus : Organisation d'un SE, concepts de processus, ressources
API, gestion des conflits…
Thèmes de TP :
–
TP de gestion de fichiers, de la mémoire et des processus.
Evaluation:
–
Contrôle de connaissances sur table + Evaluation TP ( compte rendu ! ).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
2
Bibliographie
• Andrew Tanenbaum, Systèmes d'exploitation, Pearson Education
(2ème édition), France, ISBN: 2-7440-7002-5.
• J. Archer Harris, Systèmes d'exploitation, Edisciences, 2002,
ISBN:2100065130.
• Valérie Martinez, Windows 2000 Professionnel – Notions de base,
Edition Dunod, 2001, ISBN:2100046284.
• Jerry Peek, Grace Todino, John Strang, Introduction à Unix, Edition
O'Reilly, 2002, ISBN: 978-2841772094.
• ...
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
3
Cours 1
Gestion de fichiers
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
4
Rappels: Définition d'un SE
Un SE (ou OS pour Operating System) est le programme fondamental
des programmes systèmes.
Son rôle est de gérer tous les périphériques et de fournir aux
programmes utilisateur une interface simplifiée avec le
matériel.
Il contrôle donc toutes les ressources de l'ordinateur et fournit
la base sur laquelle seront construits les programmes
d'application.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
5
Fonctions d'un SE (1/5)
Le SE a donc 2 fonctions principales :
1. Extension de la machine,
Machine virtuelle ou machine étendue,
2. Gestion des ressources.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
6
Fonctions d'un SE (2/5)
1. Extension de la machine (Machine virtuelle)
Fournir à l'utilisateur l'équivalent d'une machine virtuelle
plus simple à programmer que la machine réelle.
Masquer les éléments fastidieux liés au matériel (gestion
des interruptions, des horloges, de la mémoire, des périphériques
(déplacement du bras de lecture d'un disque dur)).
Le SE: Créer une interface de programmation plus abstraite qui lui
permet de manipuler les périphériques d'une manière plus simple.
• Ex. Présenter le disque dur comme un fichier qu'il faut ouvrir, manipuler
(lecture/écriture), puis fermer.
–L'interface de programmation offerte par le SE =
ensemble de services que les programmeurs peuvent
solliciter par le billet d'instructions spéciales appelées
« appels systèmes ».
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
7
Fonctions d'un SE (3/5)
2. Gestion des ressources (1/3)
–
–
•
Un ordinateur = ensemble de ressources.
Plusieurs programmes peuvent s'exécuter sur cet ordinateur. Ces
programmes nécessitent de la mémoire, des accès disque et des
accès ou utilisation des ressources.
Le rôle du SE dans ce cas est de gérer de manière équitable,
optimale et sans conflit l'allocation des processeurs, de la
mémoire et des périphériques d'E/S aux différents programmes
concurrents qui les sollicitent.
Ex.
- Impression simultanée,
- Accès aux fichiers,
- Autorisation/interdiction d’accès à certaines ressources.
Partage de ressources
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
8
Fonctions d'un SE (4/5)
2. Gestion des ressources (2/3)
Partage de ressources
ressources::
–
Dans le temps : Gérer l'accès dans le temps à l'imprimante, à un fichier ou
à la CPU.
Le choix du programme qui va bénéficier de la ressource est la tâche du SE.
–
Dans l'espace : Au lieu d'attendre son tour, certaines ressources
permettent d'être partagées.
• On peut par exemple partager la mémoire principale entre les processus ou
programmes actifs qui s'exécutent à un instant t.
Remarque:
Le rôle du SE est de trouver le juste milieu entre le partage de la ressource dans le
temps et dans l'espace.
Ex1. Ne pas allouer toute la mémoire à un seule programme qui n'a besoin que de
quelques kilo octets et de laisser les autres attendre l'utilisation de la CPU.
Ex2. Ne pas partager la mémoire entre tous les programmes à un instant t (la mémoire
n'est pas suffisante).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
9
Fonctions d'un SE (5/5)
2. Gestion des ressources (3/3)
Les ressources à gérer :
– Les fichiers,
– Les entrées/sorties,
– Les processus,
– La mémoire.
Points à détailler tout au long de ce module.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
10
Système de Gestion de Fichiers
(SGF)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
11
Fonctions d'un SE (5/5)
2. Gestion des ressources (3/3)
Les ressources à gérer :
– Les fichiers,
– Les entrées/sorties,
– Les processus,
– La mémoire.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
12
Le Système de Gestion des Fichiers
(SGF)
• Le SGF est la partie la plus visible d’un SE
• Le SGF permet d’accéder à divers périphériques (disque dur, clé USB,
lecteur de disquette, de CD-ROM et de DVD).
• 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.
• Le SE a pour charge d’établir une correspondance entre la
notion logique de fichier et le secteur physique sur lequel le
fichier est recopié.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
13
Le Système de Gestion des Fichiers
(SGF)
Tâches d’un SGF
1.
2.
3.
4.
Offrir une interface conviviale pour manipuler les fichiers
Stocker les fichiers sur le disque
Gérer l’espace libre sur le disque
Gérer les fichiers dans le cas d’un environnement multiutilisateurs
5. Donner des utilitaires pour le diagnostique, la récupération
en cas d’erreur, l’organisation des fichiers.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
14
SGF
Supports de stockage
• Disque dur
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
15
SGF
Supports de stockage
• Disque dur
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
16
SGF
Supports de stockage
Formatage d’un support magnétique (disque dur) :
• Formatage de bas niveau (usine)
– Formatage standard: Toutes les pistes ont le même nombre de
secteurs
– Formatage complexe: Le nombre de secteur par piste est de plus en
plus petit au fur et à mesure qu’on se dirige vers le centre.
• Formatage de haut niveau: organiser les pistes et les
secteurs d’une manière compréhensible par le SE.
– Chaque SE organise ses pistes et secteurs à sa manière il est
par exemple possible qu’un disque formaté sous Linux ne puisse
être lu sous DOS.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
17
SGF
Supports de stockage
Partitionnement d’un disque :
• C’est le fait de diviser le disque en partitions.
• La partition est une zone du disque qui peut être considérée comme un
disque logique à part. lecteur logique.
• Chaque partition peut recevoir un SE différent.  il suffit que le disque
soit amorçable et que le programme d’amorçage du système soit placé
dans le secteur de boot.
– Ex. commande DOS « fdisk » permet de partitionner le disque en plusieurs
lecteurs. Idem pour l’utilitaire gparted/qparted sous Linux.
• Une fois le disque est partitionné, on peut formater chacune de ses
partitions pour le SE qui va la gérer.
– Ex. FAT16, FAT32, NTFS, EXT2, EXT3
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
18
SGF
Concept de fichier (1/2)
• Un fichier = ensemble de secteurs sur le disque
• Le SE doit présenter le stockage des données sur le disque d’une
manière plus simple aux utilisateurs.
Tout SGF intègre la notion de fichier et de répertoire.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
19
SGF
Concept de fichier (2/2)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
20
SGF
Concept de répertoire (catalogue, directory)
(1/2)
• La notion de répertoire est créée pour l’organisation de fichiers
• Le SE a besoin d’une organisation afin de structurer ses fichiers et de
pouvoir y accéder rapidement.
• Un répertoire est vu comme un fichier quand il est stocké sur le disque
et est destiné à contenir des fichiers.
• Plusieurs structures:
– Structure plate à un niveau : on peut avoir plusieurs répertoires mais
chacun d’eux ne peut contenir que des fichiers (pas de répertoire).
– Structure à deux niveaux : chaque utilisateur a son propre répertoire
lequel peut contenir des fichiers et des répertoires. Ces sous-répertoires ne
peuvent contenir que des fichiers.
– Structure arborescente : on peut avoir un ensemble arbitraire de
répertoires et de fichiers. Les répertoires peuvent avoir des sous-répertoires
et ainsi de suite (pas de limite).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
21
SGF
Concept de répertoire (catalogue, directory)
(2/2)
• Du point de vu d’un SGF, un répertoire est un fichier qui dispose d’une
structure logique (un tableau qui possède une entrée par fichier).
Répertoire
Fichier
Données
Structure d’un répertoire
NomFich
Attributs
Info sur le stockage du fichier
NomRep
Attributs
Info sur le stockage du fichier
NomFich
Attributs
Info sur le stockage du fichier
Structure logique d’un répertoire
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
22
SGF
Création d’un fichier (répertoire) par le SE
1. Créer la structure de données qui décrit le fichier (ou le répertoire).
– Tout fichier doit être décrit afin que le syst puisse le connaître et le
reconnaître. permet au SE d’organiser au mieux les fichiers
– Les attributs des fichiers sont sauvegardés dans cette structure de données.
• Un fichier et un répertoire ne sont pas décrits par la même structure de données.
2. Créer le fichier proprement dit.
– Allouer au fichier un certain nombre de blocs sur le disque selon sa taille
– Le contenu d’un bloc sera différent selon qu’il s’agisse d’un fichier ou d’un
répertoire.
• Les blocs d’un fichier contiennent des données sans aucune structure
particulière, alors que les blocs d’un répertoire ont une structure bien précise
(contiennent des noms et des attributs de fichiers et de sous-répertoires).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
23
SGF
Organisation des fichiers sur le disque
• Les méthodes utilisées pour l’allocation des secteurs (blocs) sur le disque à
un fichier (ou un répertoire) sont propre au SGF et par conséquent au SE différence entre DOS, Linux…
• Techniques d’allocation des blocs sur le disque:
Comment organiser les blocs ou les clusters d’un fichier sur le disque. il
y a 3 (voire 4) manières :
1. Allocation contiguë: Le fichier est enregistré sur des blocs consécutifs sur
le disque
2. Allocation chaînée: On divise le fichier en plusieurs blocs qu’on enregistre à
des endroits espacés et on les relie avec des liens.
3. Allocation indexée: Les blocs sont indépendants mais on conserve dans
une structure statique ou dynamique (bloc index) les numéros des blocs
appartenant au fichier.
4. i-nodes: Associer à chaque fichier une structure de données contenant les
attributs et les adresses du disque des blocs du fichier.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
24
SGF
Techniques d’allocation des blocs sur le disque
1) Allocation contiguë
•
•
(1/2)
C’est le mode d’allocation le plus implicite
Pour chaque fichier à enregistrer, le système recherche une zone
suffisamment grande pour accueillir le fichier. Le fichier sera constitué de
plusieurs blocs contigus.
Nom du fichier Attributs
Adresse de début
longueur
Description d’un fichier dans un système qui applique l’allocation contiguë.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
25
SGF
Techniques d’allocation des blocs sur le disque
1) Allocation contiguë
(2/2)
Avantages:
Rapidité d’accès. Pour lire les différents secteurs, il suffit d’attendre qu’ils
passent sous la tête de lecture/écriture accès séquentiel.
Adaptée au CD-ROM, car la taille de tous ses fichiers est connue à l’avance et
ne changera jamais lors de l’utilisation ultérieure du système de fichier du CDROM.
Inconvénients:
N’est plus utilisée pour diverses raisons:
Difficulté de prévoir la taille qu’il faut réserver pour le fichier. En plus un fichier
est amené à augmenter
Perte d’espace: car prévoir plus d’espace, risque de ne pas l’occuper, alors
que prévoir moins d’espace risque d’être insuffisant.
Fragmentation: des trous après suppression d’un fichier. Comment remplir ces
trous avec le temps, apparition de petits trous dont la taille ne suffit pas pour
allouer un fichier. nécessite défragmentation.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
26
SGF
Techniques d’allocation des blocs sur le disque
2) Allocation par liste chaînée
•
•
(1/2)
Elle consiste à allouer des blocs chaînés entre eux au fichier.
Le premier mot de chaque bloc sert de pointeur sur le bloc suivant (Le
mot du dernier bloc = 0), Le reste du bloc contient les données.
Fichier A
Un fichier peut désormais être
0
éparpillé sur le disque
Bloc 0
Bloc 1
Bloc 2
Bloc 3
Bloc 4
du
du
du
du
du
puisque chaque bloc permet
fichier
fichier
fichier
fichier
Bloc fichier
physique
4
7
2
10
12
de retrouver le bloc suivant.
Fichier B
Bloc
physique
Bloc 0
du
fichier
Bloc 1
du
fichier
Bloc 2
du
fichier
0
Bloc 3
du
fichier
6
3
11
14
Figure . Stockage d’un fichier à l’aide d’une liste
chaînée de blocs de disque.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
27
SGF
Techniques d’allocation des blocs sur le disque
2) Allocation par liste chaînée
(2/2)
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.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
28
SGF
Techniques d’allocation des blocs sur le disque
3) Allocation par liste chaînée utilisant une table en
mémoire (allocation indexée)
(1/2)
• Pour éliminer les problèmes
de la méthode précédente, on
prend les pointeurs de chaque
bloc du disque et on les range
dans une table en mémoire.
• Cette table s’appelle la FAT
(File Allocation Table, table
d’allocation de fichier).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
29
SGF
Techniques d’allocation des blocs sur le disque
3) Allocation par liste chaînée utilisant une table en
mémoire (allocation indexée) (2/2)
Avantages :
• Plus de problème d’indexation de la méthode précédente.
La plupart des SE actuels appliquent ce mode:
– MS-DOS utilise la FAT
– Widows NT utilise la MFT
– UNIX utilise le I-Node
Inconvénient :
• La table prend beaucoup d’espace mémoire (elle doit se trouver en mémoire tout
le temps sinon paginée). Si le disque a n blocs et la taille d’une entrée est de k
octets, on aura besoin de kn octets (valeur fixe).
– 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.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
30
SGF
Techniques d’allocation des blocs sur le disque
4) I-nodes (nœuds d’information)
• Associer à chaque fichier une structure de données appelée i-node,
laquelle inclut les attributs et les adresses du disque des blocs du fichier.
• Exemple : Attribut du fichier A : adresse disque du bloc 0, adresse disque du bloc 1,
adresse disque du bloc 2, adresse disque du bloc 3… Adresse d’un bloc de pointeurs).
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).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
31
SGF
SGF MSMS-DOS FAT (1/2)
• Chaque disque formaté avec MS-DOS contient un répertoire racine qui
contient des fichiers et des sous-répertoires
• Chaque entrée d’un répertoire a une taille de 32 octets:
Nom_Fich
Attributs
Adresse du 1er bloc du fichier ou du répertoire
Une entrée de répertoire dans MS-DOS
• Méthode intéressante et prévenant: en ne mettant que le 1er bloc, on
ne limite pas la taille du fichier.
• MS-DOS associe un tableau où chaque indice contient la valeur du
prochain bloc associé au fichier.
• Mesure de sécurité: deux copies de la FAT sont enregistrées près du
répertoire racine.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
32
SGF
SGF MSMS-DOS FAT (2/2)
N°cluster Valeur
Exo1.c
…
…
2
Exo1.c = {cluster 2, 5 et6}
2
5
3
0
4
0
5
6
6
FFFFh
…
…
Schéma structurel de la FAT
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
33
SGF
Bloc d’indirection simple
SGF UNIX I-Node (Nœud d’index)
Nom Fich ou rép
256 @ de
blocs sur le
disque
Taille
Numéro d’I-Node
Fig1: Structure d’une entrée de répertoire sous UNIX
•Remarque: Aucune identité pour le fichier sur l’INode se fait dans le rép associé au fichier
•Taille d’un I-Node: 64 octets.
Adresse sur le disque du 1er
bloc associé au fichier
Date de création
Compteur de liens
UID
b.i double
GID
…
Addr 1
b.i simple
Addr 2
•Les blocs physiques contiennent soit les données
du fichier, soit l’adresse d’autres blocs physiques.
On parle alors de blocs d’indirection.
…
Addr 10
PS
PD
Fig2: Structure d’un I-Node
Ali Larab, L2-info, CUFR, 08-09
b.i triple
PT
Systèmes d'Exploitation (2ème partie)
b.i
simple
b.i double
34
SGF
SGF Windows NT NTFS
• Windows NT propose: FAT16, FAT32, et NTFS
• NTFS utilise une structure de données organisée en table
nommée Master File Table (MFT) pour gérer les fichiers.
• MFT contient des informations détaillées sur les fichiers et
les répertoires.
entête
Attributs
NomFich
données
Attributs de sécu
Structure d’une entrée de la MFT
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
35
SGF
Gestion des fichiers dans un environnement
multi--utilisateurs
multi
Partage de ressource et d’accès aux fichiers Problème de
sécurité
définir des droits d’accès précis au fichier
Accès différent au fichier selon que l’utilisateur est :
propriétaire, membre du groupe du propriétaire ou autres
utilisateurs.
Ex. (rwx r-x - -x) propriétaire peut lire, écrire et exécuter le fichier, les
membre du groupe de cet utilisateur peuvent accéder en lecture à ce
fichier et l’exécuter. Les autres ne peuvent qu’exécuter ce fichier (ne
peuvent ni le modifier, ni le lire).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
36
SGF
Lien symbolique et lien physique
Utile pour le partage de fichiers ou de répertoires.
Unix offre 2 types de liens: symbolique et physique.
• Les liens symboliques représentant des pointeurs virtuels (raccourcis)
vers des fichiers réels.
– La suppression du lien symbolique ne supprime pas le fichier pointé.
– Commande: ln -s nomFichReel NouvLien
• Les liens physiques représentent un nom alternatif pour un fichier.
– La suppression de l'un ou l'autre de ces liens n'entraine pas la suppression
du fichier. Plus exactement, tant qu'il subsiste au minimum un lien physique,
le fichier n'est pas effacé. En contrepartie lorsque l'ensemble des liens
physiques d'un même fichier est supprimé le fichier l'est aussi.
– Commande (sans option s): ln nom-du-fichier-reel nom-du-lien-physique
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
37
SGF
Implémentation des répertoires
(1/2)
1) Rép simple contenant des entrées de taille fixe:
a) rép=liste d’entrées, dont la taille est fixée, qui correspondent chacune à un fichier.
Chaque entrée contient un nom de fichier (d’une longueur donnée), une structure
des attributs du fichier et une ou plusieurs adresses disques précisant la
localisation des blocs de disque.
b) Pour les syst fonctionnant avec les i-nodes: stocker les attributs dans les inodes plutôt que dans les entrées de répertoires.
Toto
attributs
Toto
Jeux
attributs
Jeux
Cours
attributs
Cours
internet
attributs
internet
a) Rép simple avec des
entrées de taille fixe
Ali Larab, L2-info, CUFR, 08-09
Structure de
données contenant
les attributs
a) Rép simple dans lequel chaque entrée fait
référence à un i-node
Systèmes d'Exploitation (2ème partie)
38
SGF
Implémentation des répertoires
(2/2)
2) Rép avec des noms longs et de longueur variable:
a) une partie fixe qui débute par la longueur de l’entrée, suivie de données au
format fixe (propriétaire, date création, droits d’accès…), nom de fichier qui est
variable. inconvénient: trous après effacement d’un fichier.
b) Entrée de rép=longueur fixe + garder les noms de fichiers ensemble dans un
tas à la fin du répertoire
Entrée
d’un
fichier
Fichier 1 : longueur d’entrée
Fichier 1 : attributs
p
r
o
j
e
t
b
u
d
g

e
t
Fichier 2 : longueur d’entrée
Fichier 2 : attributs
p
e
r
s
o
n
n
e

l
Fichier 3 : longueur d’entrée
Fichier 3 : attributs

f
o
O
…
a) sur une ligne
Ali Larab, L2-info, CUFR, 08-09
Pointeur vers le nom du fichier 1
Fichier 1 : attributs
Pointeur vers le nom du fichier 2
Fichier 2: attributs
Pointeur vers le nom du fichier 3
Fichier 3: attributs
…
p
r
o
j
e
t
b
u
d
g

e
t
p
e
r
s
o
n
n
e
l

f
o
o

…
Entrée
d’un
fichier
tas
b) dans un tas
Systèmes d'Exploitation (2ème partie)
39
SGF
Les fichiers partagés
• Plusieurs utilisateurs besoin de partager des fichiers
• Faire apparaître ce fichier dans les différents répertoires qui
appartiennent aux différents utilisateurs
Répertoire racine
A
B
C
Système de fichier contenant un fichier partagé
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
40
SGF
Gestion de l'espace disque
1. Taille des blocs
2. Mémorisation des blocs libres
3. Quotas d'espace disque
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
41
SGF
Gestion de l'espace disque
1. Taille des blocs
• Fichiers stockés sur disque gestion espace disque = important.
• Stratégies de stockage: allocation consécutive (contiguë) ou division par
blocs de taille fixe.
• Taille des blocs = secteur, piste, cylindre?
- Petits blocs dégradent les performances (trop de blocs trop de déplacements
et de rotation vitesse de lecture lente), mais améliorent l’utilisation du disque.
- Grands blocs améliorent les performances mais perte d’espace
disque (perte de 97% de l’espace disque)?.
Taille moyenne: pour UNIX= 1 Ko, Windows NT=~2 Ko (mais change
selon la taille du disque)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
42
SGF
Gestion de l'espace disque
2. Mémorisation des blocs libres
•
•
Après avoir choisi la taille du bloc passer à la mémorisation de l’espace libre.
Utiliser soit une « liste chaînée » soit une « table de bits » :
a) Une liste chaînée de blocs contenant chacun des numéros de blocs
libres.
1 seul vecteur de blocs en mémoire !.
Ex. si 1 vecteur de blocs = 1 Ko, numéro de bloc sur 32 bits on enregistre 255 (=256-1 pour
pointer sur le prochain bloc) blocs libres dans un seul vecteur de bloc.
Si disque = 16 Go besoin d’une liste de 16 794 blocs pour contenir les 2^24 vecteurs de
blocs du disque.
42
36
11
67
516
230
162
612
342
482
86
234
897
422
141
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
Ali Larab, L2-info, CUFR, 08-09
00110111
11000011
11111111
Systèmes d'Exploitation (2ème partie)
43
SGF
Gestion de l'espace disque
3. Quotas d'espace disque
• Systèmes multiutilisateur plusieurs utilisateurs en même temps risque d’occupation de tout le disque
• Fournir un moyen qui permet d’attribuer des quotas d’espace disque
(logicielles, matérielles).
– L’administrateur définit la capacité max de fichiers et de blocs pour chacun
des utilisateurs et le SE vérifie que l’utilisateur n’a pas dépassé ce quotas.
– Si un utilisateur augmente la taille d’un fichier, on enlève cette taille
du quotas attribué au propriétaire du fichier !
• "Table des fichiers ouverts" "Table des quotas". Le fichier des quotas
est MAJ quand tous les fichiers sont fermés.
– Limites logicielles peuvent être dépassées, mais pas les limites
matérielles.
Ex. gestion des profils supprimer des fichiers (temporaires) avant de se
déconnecter.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
44
SGF
Fiabilité du système de fichiers
• Plus grave panne dans un ordinateur = destruction d’un syst de fichier.
– Restauration de données difficile, voire impossible.
• Sauvegarde :
– Pas toute les données juste une partie du syst de fichiers
– Deuxième sauvegarde: juste la partie modifiée depuis la dernière sauvegarde
(copies incrémentales)
– Notion de copie logique/copie physique
• Cohérence du système de fichier
– Modification: Lire des blocs, les modifier puis les réécrire
– Si le syst tombe en panne avant la réécriture incohérence.
• Le pb est plus grave si les blocs concernés = blocs i-nodes, blocs de répertoires,
blocs contenant la liste des blocs libres.
– Vérification de cohérence
• Un bloc est soit libre soit utilisé, sinon incohérence.
• Ex. de logiciel de vérif de cohérence: fsck (sous UNIX) ou scandisk
(sous Windows)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
45
SGF
Performance du système de fichiers
•
•
Un accès disque est beaucoup plus lent qu’un accès en mémoire
Optimisation : Concevoir un syst de fichier de telle manière à
augmenter les performances des accès disque :
a) Mémoire cache: prendre une partie du disque (qlq blocs) et les
conserver en mémoire.
b) Lecture anticipée des blocs : mettre des blocs en mémoire
cache avant d’en avoir besoin. utile uniquement avec des
fichiers lus séquentiellement.
c) Réduction du mouvement du bras d'un disque : en rapprochant
les blocs susceptibles d’être adressés en séquence et en les
plaçant de préférence sur le même cylindre.
Système de fichier LFS (voir diapo suivante).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
46
SGF
Le système de fichier LFS
• Amélioration technologiques: Rapidité CPU ↑ , capacité disque ↑ , taille
mémoire ↑.
• Par contre la rapidité (temps d'accès et de déplacement) disque est le
seul paramètre à ne pas être concerné par ces améliorations.
parfois mène même à des réductions des performances
• Solution : un nouveau type de système de fichiers: LFS (Log-structured
File System, système de fichier structuré en lots d'enregistrements).
• Principe du Syst. LFS : Satisfaire une quantité non négligeable de
demandes de lectures directement depuis la mémoire cache, sans avoir
besoin des accès disques.
• Toutes les écritures sont tamponnées en mémoire, et
périodiquement écrites sur le disque dans un seul segment à la fin de
l'ensemble des enregistrements (à l’avenir, probablement la plupart des
accès disque seront des accès en écriture).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
47
SGF
Exemples de système de fichiers
–
–
–
–
–
Système de fichiers de CD-ROM (ISO 9660)
Système de fichiers CP/M
Système de fichiers MS-DOS
Système de fichiers Windows 98 et NT
Système de fichiers UNIX
à détailler dans ce qui suit
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
48
SGF
Exemples de système de fichiers
(1/8)
1. Système de fichiers de CDCD-ROM (ISO 9660)
•
•
•
(1/2)
Système simple, car conçu pour des support en écriture seule
N’offre pas la possibilité de garder trace des blocs libres
Chaque CD-ROM :
–
–
Commence par 16 blocs (fonction non définie: ex. pour booter…)
Un bloc qui comprend le descripteur primaire de volume (a des info générales sur le
CD et une entrée répertoire pour le répertoire racine (ie où trouver le rép racine qui
permet de localiser le sys de fichier).
Octets 1 1
8
8
7
Localisation du fichier
Taille du fichier
Date et heure
Lgueur de l’enregistrement des attributs
Lgueur de l’entrée de répertoire
1
drapeaux
intervalle
2
4
1
4-15
Num
Nom
L
CD
du fich
sys
Padding
Nom.ext;ver
L’entrée du répertoire de la norme ISO 9660.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
49
SGF
Exemples de système de fichiers
(2/8)
1. Système de fichiers de CDCD-ROM (ISO 9660)
•
(2/2)
Norme ISO 9660 trop restrictive il faut des extensions pour
représenter des sys de fichiers autres que les sys simples tels que
MS-DOS
Deux (2) extensions pour la norme du sys de fichier ISO 9660:
•
•
Rock Ridge : pour représenter les sys de fichiers UNIX sur CD-ROM
et les restaurer par la suite correctement sur un sys différent.
Joliet : pour permettre à un sys Windows d’être copié sur un CDROM et d’être restauré par la suite
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
50
SGF
Exemples de système de fichiers
2. Système de fichiers CP/M
(3/8)
• Le système d’exploitation CP/M (Control Program for Microcomputers) peut
être vu comme l’ancêtre de MS-DOS, mais des syst d’exploitation futurs
(embarqués) peuvent se baser sur certains de ses principes de
fonctionnement (ex. n’a besoin que de 16 Ko de RAM pour démarrer,
•
•
•
simple…).
Le sys de fichier CP/M dispose d’un seul répertoire, qui comprend des entrées
de taille fixe (32 octets)
Après démarrage (boot) le CP/M parcourt le répertoire et crée un tableau des
blocs de disque libres (en recherchant les blocs qui n’appartiennent à aucun fichier).
À l’arrêt du sys, le tableau n’est pas sauvegardé. vérification de cohérence:
pas nécessaire.
Octets
1
8
Code utilisateur Nom du fichier
3
1
2
Type-fich
(extens)
ordre
Réservé
16 (Numéros de blocs disque)
Cptr de
bloc
date
Num du 1er bloc
taille
Format d’une entrée de répertoire CP/M
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
51
SGF
Exemples de système de fichiers
3. Système de fichiers MSMS-DOS
(4/8)
• Un CP/M amélioré dédié aux plateformes Intel sur des PC.
• Sys de fichiers hiérarchique dans lequel les répertoires peuvent avoir
une profondeur qlcq.
• Le sys de fichier représente un arbre qui commence du rép. racine
• Pas de multiutilisateur n’importe quel utilisateur a accès à l’ensemble
des fichiers.
• Rép de tailles variables, mais avec des entrées de taille fixe (32 octets).
• MS-DOS garde trace des blocs de fichiers dans une table d’allocation
(FAT) en mémoire principale.
Octets
8
3
1
10
2
2
2
4
Nom-fichier
extens
attrib
réservé
heure
date
Num du 1er bloc
taille
Entrée d’un répertoire MS-DOS
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
52
SGF
Exemples de système de fichiers
4. Système de fichiers Windows 98
(5/8)
• Allonger les noms de fichiers (noms de fichier longs)
• Introduction de la FAT-32 autoriser des taille supérieures à 2 Go
pour les partitions et supérieures à 8 Go pour les disques
• …
Octets
(suite)
8
3
1
1
1
4
Nom-fichier
extens
attrib
N
T
seconde
Date et heure
de création
2
2
4
2
4
Dernier
accès
16 bits pds
fort du bloc de
début
Date et heure
dernière
écriture
16 bits pds
faible du bloc
de début
Taille du
fichier
Entrée d’un répertoire MS-DOS utilisé dans Widows 98
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
53
SGF
Exemples de système de fichiers
(6/8)
5. Système NTFS (Windows NT, XP…)
• NTFS utilise une structure de données organisée en table nommée
Master File Table (MFT) pour gérer les fichiers.
• La MFT contient des informations détaillées sur les fichiers et les
répertoires.
entête
Attributs
NomFich
données
Attributs de sécu
Structure d’une entrée de la MFT
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
54
SGF
Exemples de système de fichiers
(7/8)
6. Système de fichiers UNIX (UNIX V7)
(1/2)
• Sys de fichier multiutilisateur sophistiqué
• Structure arborescente qui démarre au rép racine
• Une entrée de répertoire UNIX comprend une entrée pour chaque
fichier de ce répertoire (des entrées simples, car des i-nodes).
• Format d’un i-node: voir fig. de la diapo suivante.
Octets
2
14
Num d’i-node
Nom du fichier
Entrée d’un répertoire d’UNIX (UNIX V7)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
55
SGF
Exemples de système de fichiers
(8/8)
6. Système de fichiers UNIX (UNIX V7)
(2/2)
I-Node
Attributs:
Remarque: L’attribut
compteur (dans cette figure)
compte le nbr de liens vers
cet i-node. Quand ce
compteur = 0, l’i-node est
récupéré et les blocs de
disque sont placés dans la
liste des blocs libres.
Taille du fichier
256
numéros
de blocs
256
numéros
de blocs
UID propriétaire
GID propriétaire
Date de création
Compteur ….
Adresses
disque
10 numéros de
blocs
Simple redirection
256
simples
redirections
256
doubles
redirections
Double redirection
256
simples
indirections
256
numéros
de blocs
Triple redirection
Entrée d’un répertoire d’UNIX (UNIX V7)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
56
GESTION
DE LA
MÉMOIRE
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
57
Gestion mémoire
•
•
•
•
•
•
•
•
Définitions
Gestion élémentaire de mémoire (mono et multiprogramation)
Va-et-vient
Mémoire virtuelle
Algorithmes de remplacement de pages
Conception des systèmes de pagination
Problème d’implantation
Segmentation
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
58
Gestion mémoire
Mémoire
• Mémoire = ressource importante à gérer avec attention.
• Type de mémoires:
– Mémoire cache: petite quantité (qlq dizaines ou centaine de Ko), volatile, rapide et
chère,
– RAM (mém principale, inclus ROM) : qlq dizaines ou centaines de Mo, vitesse et
prix moyen
– Mémoire de masse (disque, clé usb…): dizaines ou centaines de Go, lente,
non volatile, pas chère.
• Rôle SE (partie gestionnaire de la mémoire) = Coordonner la manière
dont ces mémoires sont utilisées :
1. Conserver la trace de la partie mémoire qui est en cours d’utilisation et de celle
qui ne l’est pas,
2. Allouer la mémoire libre aux processus qui en ont besoin,
3. Libérer la mémoire quand les processus ont fini leur travail,
4. Gérer le va-et-vient (swapping) entre la mémoire principale et le disque quand
la mémoire principale est trop petite pour contenir tous les processus.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
59
Gestion mémoire
Gestion élémentaire de la mémoire
Prévoir un bon gestionnaire de mémoire car:
–
–
Les programmes grossissent plus/aussi vite que la mémoire
Mémoire de plus en plus sollicitée (multimédia)
Il y a 2 classes de gestionnaires de mémoire :
1. La monoprogrammation: simple (ni va-et-vient ni pagination).
2. La multiprogrammation: inclus le va-et-vient (swapping) et/ou la
pagination.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
60
Gestion mémoire
Monoprogrammation et gestion mémoire
•
Exécuter un seul prgm ( "processus" ) à la fois en partageant la mémoire
entre le prgm et le SE [Le partitionnement peut se faire manuellement]
3 variantes simples d’organisation mémoire sont possibles (avec un SE et
1 seul processus utilisateur) :
Prgm
utilisateur
0xFFF…
SE en ROM
Gestionnaire de
périph en ROM
Prgm
utilisateur
Prgm
utilisateur
SE en RAM
SE en RAM
0
a): modèle rare aujourd’hui
(pour mini-ordinateurs)
Ali Larab, L2-info, CUFR, 08-09
0
b): pour ordi de poche ou
sys embarqués
0
1er
c): pour les
PC avec
MS-DOS (BIOS)
Systèmes d'Exploitation (2ème partie)
61
Gestion mémoire
Multiprogrammation et gestion mémoire (1/17)
•
•
•
•
•
Multiprogrammation: plusieurs prgm en même temps. Quand un
processus est bloqué (attente de terminaison d’une E/S) un autre peut
utiliser le processeur.
Solution simple: diviser la mémoire en n partitions fixes (de préférence
inégales), et placer le nouveau processus qui arrive dans la file
d’attente de la plus petite partition qui peut le contenir plusieurs
files d’attentes (cf. figure a).
Multiprogrammation avec un nombre fixé de tâches « MFT ».
Inconvénient: Les files d’attente des petites partitions peuvent être
pleines alors que celles des grandes partitions libres .
blocage, alors qu’une grande partie de la mémoire est libre.
Solution : avoir une seule file d’attente (cf. figure b).
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
62
Gestion mémoire
Multiprogrammation et gestion mémoire (2/17)
Files d’attente
multiples
800k
800k
Partition 4
Partition 4
600k
Files d’attente
unique
Partition 3
600k
Partition 3
400k
400k
Partition 2
Partition 2
200k
Partition 1
200k
Partition 1
100k
SE
SE
0
0
a): Partitions mémoires prédéfinies
avec des files d’attentes différentes
Ali Larab, L2-info, CUFR, 08-09
100k
b): Partitions mémoires prédéfinies
avec une seule file d’attente.
Systèmes d'Exploitation (2ème partie)
63
Gestion mémoire
Multiprogrammation et gestion mémoire (3/17)
• Inconvénient de la file unique:
Un petit travail peut attendre longtemps
• Solutions/propositions :
– Parcourir la file d’attente et choisir le plus gros travail que peut
contenir la partition libérée, ( pénalise les petits travaux).
– Conserver une (ou plusieurs) petite partition aux petits travaux
– Un travail ne peut être ignoré plus de k fois,
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
64
Gestion mémoire
Multiprogrammation et gestion mémoire (4/17)
• Remarque : Aujourd’hui peu de SE se servent du modèle MFT.
Il faut introduire la notion de probabilité d’attente d’E/S.
– "Taux utilisation CPU" " 1-pn "
(p: probabilité d’attente d’E/S, n: nbr de processus) .
• Ex.
–
–
–
–
Ordi avec 32 Mo de mémoire,
SE utilise 16 Mo,
Attente moyenne d’E/S=80%,
Chaque programme utilisateur nécessite 4 Mo
–
–
–
–
4 processus peuvent être simultanément en mémoire (32-16=16 = 4*4)
Taux d’utilisation CPU (en ignorant celui du SE)=1 – 0,84 = 60%
Si on ajoute 16 Mo de RAM taux = 1 - 0,88 = 83% gain de 38%
Si on ajoute 16 autres taux= 0,93 gain d’uniquement 12% gain
décroissant !!
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
65
Gestion mémoire
Multiprogrammation et gestion mémoire (5/17)
« Réallocation » et « protection »
•
Lors de la procédure de lien, le programme lieur doit savoir à quelle
adresse le pgm démarrera en mémoire il faut ajouter l’adresse de
la partition qui le recevra. « réallocation »
–
•
•
•
•
Ex. si adresse de la 1ère instruction = 100 et adresse de la partition2=200k adresse du lien = 200k + 100 exemple: CALL 200k+100
Dans les sys multiutilisateurs, il est déconseillé d’autoriser des
processus à lire ou à écrire dans la mémoire appartenant à d’autres
utilisateurs ou au sys. « protection »
Solution: équiper l’ordi de 2 registres matériels: registre de base (reçoit
l’adresse de départ) et registre de limite (reçoit la longueur de partition).
Les adresses sont comparées avec la valeur du registre de
limites, afin d’assurer qu’elles ne référenceront pas une adresse hors
de la partition courante.
Remarque: Peu d’ordi fonctionnent encore selon ce principe
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
66
Gestion mémoire
Multiprogrammation et gestion mémoire (6/17)
Va
Va--etet-vient (swapping) et « mémoire virtuelle »
• Organisation mémoire en partitions fixes = simple et efficace
– Contrainte: Chaque tâche doit rester en mémoire jusqu’à sa terminaison.
– Pb engendré: parfois la mémoire principale est insuffisante pour maintenir
tous les processus courant actifs.
– Solution: Conserver les processus supplémentaires sur un disque et les
charger pour qu’ils s’exécutent dynamiquement.
• Deux (2) approches de gestion mémoire peuvent être utilisées:
1. Va-et-vient (Swapping): Travailler sur des processus entiers
(exécuter un processus puis le placer sur le disque).
2. Mémoire virtuelle: permet aux pgms de s’exécuter même quand ils
sont partiellement en mémoire principale.
Partitions variables: contrairement aux partitions fixes, dans les partitions
variables, leurs nombre, leur localisation et leur taille varient dynamiquement au
gré des allers-retours des processus. (Gérés par le SE)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
67
Gestion mémoire
Multiprogrammation et gestion mémoire (7/17)
Va
Va--etet-vient (swapping)
•
•
Processus = entité indivisible.
L’allocation mémoire change au gré des processus qui viennent en mémoire et
qui la quitte
Temps Non
utilisé
B
C
C
C
B
B
B
C
C
A
A
SE
(1)
A
SE
(2)
Ali Larab, L2-info, CUFR, 08-09
A
SE
(3)
SE
(4)
D
D
D
SE
(5)
SE
(6)
SE
(7)
Systèmes d'Exploitation (2ème partie)
68
Gestion mémoire
Multiprogrammation et gestion mémoire (8/17)
Va
Va--etet-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.
Il y a principalement deux (2) façons de gérer la mémoire :
1. Tableaux de bits
2. Listes chaînées
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
69
Gestion mémoire
Multiprogrammation et gestion mémoire (9/17)
Gestion mémoire avec « tableaux de bits » et avec une « liste chaînée »
mémoire
(a)
a): Gestion de la mémoire à l’aide d’une table de bits.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
70
Gestion mémoire
Multiprogrammation et gestion mémoire (10/17)
Gestion mémoire avec « tableaux de bits » et avec une « liste chaînée »
mémoire
(b)
(a)
a): Gestion de la mémoire à l’aide d’une table de bits.
b) Gestion de la mémoire à l’aide d’une liste chaînée.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
71
Gestion mémoire
Multiprogrammation et gestion mémoire (11/17)
Algorithmes d’allocation mémoire avec une « liste chaînée »
1. Algo de la 1ère zone libre (first fit): Le 1er trou qui peut contenir le
processus
2. Algo de la zone libre suivante (next fit): idem que first fit mais commence
sa recherche à partir de l’endroit où il s’est arrêté la fois précédente au lieu
de recommencer dès le début.
3. Algo du meilleur ajustement (best fit): fait la recherche dans toute la liste
et prend le plus petit trou qui convient.
4. Algo du plus grand résidu (worst fit): fait la recherche dans toute liste et
prend le plus grand trou disponible.
5. Algo du déplacement rapide (quick fit): utilise plusieurs listes séparées
pour certaines des tailles les plus communément demandées permet de
trouver un trou d’une taille donnée d’une façon extrêmement rapide.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
72
Gestion mémoire
Multiprogrammation et gestion mémoire (12/17)
Mémoire virtuelle
•
Certains pgm (processus) sont trop importants pour être supportés par
la mémoire disponible :
•
diviser le pgme en parties (Segments de recouvrement) et exécuter
à chaque fois un segment (en commence tjours par le segment 0). Les
autres parties sont sauvegardées sur disque.
•
mémoire virtuelle:
– Si un programme A veut s'exécuter alors qu'il n'y a plus de place
en mémoire, un "bout" d'un autre programme est "viré" en mémoire
secondaire et remplacé par un "bout" de A.
– Donc, un programme est découpé en bouts que l'on nomme
pages, de taille fixe. La mémoire physique est elle aussi découpée
pages
en cadres de pages (taille pages=taille cadre), ainsi que la mémoire
secondaire.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
73
Gestion mémoire
Multiprogrammation et gestion mémoire (13/17)
Mémoire virtuelle et pagination
Le CPU envoie les adresses
Ensemble
virtuelle à la MMU
CPU
CPU
Mémoire
Unité de
gestion
mémoire
(MMU)
Contrôleur
de disque
Bus
Le MMU envoie les adresses physiques à la
mémoire
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
74
Gestion mémoire
Multiprogrammation et gestion mémoire (14/17)
Mémoire virtuelle et pagination
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
75
Gestion mémoire
Multiprogrammation et gestion mémoire (15/17)
Mémoire virtuelle et pagination exemple 1
•
•
•
Un ordi qui peut produire des adresses sur 16 bits, avec des valeurs
entre 0 et 64 Ko (adresses virtuelle), mais il a seulement 32 Ko de
mémoire physique.
Enregistrer sur disque le pgme et diviser l’espace virtuel en pages de
4 Ko par exemple et la mémoire physique en cadres de même taille.
16 pages virtuelles et 8 cadres
Si le pgme essaye d’accéder à l’adresse 0 (ex. MOV REG,0), l’adresse
virtuelle 0 est envoyée à la MMU qui constate que cette adresse
tombe dans la page virtuelle 0 qui correspond au cadre de page 2
(selon la figure précédente). Elle transforme alors cette adresse en 8192
(ie 8Ko) et la présente sur le bus. La mémoire exécute l’instruction
demandée en lui transférant le contenu de cette adresse.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
76
Gestion mémoire
Multiprogrammation et gestion mémoire (16/17)
Mémoire virtuelle et pagination
Correspondance adresse virtuelle ↔ adresse physique
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
77
Gestion mémoire
Sortie de l’adresse physique (24580)
Multiprogrammation
et gestion mémoire
(17/17)
Mémoire virtuelle et
pagination
Exemple
Table
des
pages
1
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
000
000
000
000
111
000
101
000
000
000
011
100
000
110
001
010
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
Le décalage sur
12 bits est
copié
directement de
l’entrée vers la
sortie
110
Bit de présence/absence
La page virt 2 est utilisée comme
indexe dans la table des pages
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
Entrée de l’adresse virtuelle (8196)
Figure : Fonctionnement interne d’une MMU avec 16 pages de 4 octets.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
78
Gestion mémoire
Multiprogrammation et gestion mémoire
Mémoire virtuelle et pagination défaut de page
•
•
•
•
Si l'adresse virtuelle référence une page qui n'est pas présente en
mémoire physique (cf. ‘0’ dans la figure précédente ou ‘x’ dans la figure d’avant), le
mécanisme d'adressage génère un défaut de page. déroutement (le
processeur est restitué au SE)
Si la mémoire physique est pleine :
Virer de la mémoire physique une page (remplacement) :
– choisir une page "victime",
– si elle a été modifiée, la réécrire sur disque,
– modifier les indicateurs de présence en TPV (Table des Pages Virtuelles) ;
Puis, dans tous les cas :
– charger la page référencée en mémoire physique (placement) ;
– modifier les indicateurs de présence en TPV.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
79
La mémoire virtuelle
Multiprogrammation et gestion mémoire
Mémoire virtuelle et pagination Le choix d'une victime –
remplacement
• De nombreux algorithmes :
– FIFO - First In First Out : ordre chronologique de chargement ;
– NRU – Not Recently Used : ordre chronologique d'utilisation ;
– FINUFO - First In Not Used, First Out (algorithme de l'horloge ou
Clock) : approximation du LRU;
– LFU - Least Frequently Used ;
– Random : au hasard ;
– MIN : algorithme optimal.
• Performances : MIN, LRU, FINUFO, [FIFO, Random].
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
80
Gestion mémoire
Multiprogrammation et gestion mémoire
Mémoire virtuelle et segmentation
• Contrairement à la pagination, dans la segmentation, la mémoire a des
partitions variables. (partition= segment).
Segment
Segment = partition à taille variable.
variable
• Ensemble des segment est généré à la compilation,
• Taille segment peut varier (↑↓) au cours de l’exécution.
– des vides entre les partitions de la mémoire centrale !
• Différence segment et page:
–
–
–
Dans chaque segment les adresses démarrent à 0
Il n’y a aucun lien entre les segments logiques d’un programme,
contrairement aux pages qui, elles se suivent.
Segment = solution efficace, mais doit être gérée par le
programmeur.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
81
Gestion mémoire
Multiprogrammation et gestion
mémoire
0
1024
Segment 1
1000
2025
0
Segment 2
7000
Mémoire virtuelle et
segmentation
9000
1100
6000
0
Partition vide à
occuper si le
segment voisin
est trop petit
pour le
processus qui
l’occupe.
Segment 3
Segment
physique
3080
0..500
Segment 4
19000
0
Segment 5
23000
2050
…
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
• Conversion des adresses:
–
–
–
Adresse logique a la forme: (s,d) où s= n°segment et d= adresse dans le
segment.
Retrouver l’emplacement du segment en mémoire centrale grâce à une
table de segments,
Effectuer un déplacement de d au sein du segment s.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
83
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…
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
84
Gestion mémoire
À suivre…
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
85
• Exam intermédiaire le :
Mercredi 18 ou 25 mars ???
(salle TP-info 2)
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
86
GESTION
DES
PROCESSUS
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
112
PROCESSUS
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
.
PLAN
Rappels sur la multiprogrammation
Introduction aux processus
Description d’un processus
Interruption d’un processus
Structure de données pour la gestion des processus
Ordonnancement de processus
Synchronisation de processus (accès concurrents)
Interblocages
Communication interprocessus
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.
Processus créé par le
SE afin d’exécuter le
programme.
Programme
enregistré sur le
D.D.
Exécution du processus par
le processeur
Processeur
Programme
chargé en
mémoire centrale.
Un programme et son processus
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
115
Introduction aux processus
Rôle du SE concernant la gestion des processus
– Créer, supprimer et interrompre un processus
– Ordonnancer les processus (exécution équitable entre processus tout en
privilégiant les processus système)
– Synchroniser les processus:
• Choisir le processus à exécuter à un instant donné
• Choisir le moment où interrompre un processus
• Choisir le processus qu’il faut exécuter ensuite (le suivant)
• Spécifier les ressources dont a besoin (et qu’il faut affecter à) un
processus
– Gestion des conflits d’accès aux ressources partagées
– Protection des processus d’un utilisateur contre les actions d’un
autre utilisateur
– …
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
116
Description d’un processus (1/2)
•
Processus= suite d’instructions. On peut l’exécuter et l’interrompre.
Peut se retrouver dans plusieurs états (actif, suspendu, terminé,
en attente d’un événement…).
(1)
(4)
Actif
Prêt
(5)
(en exécution)
Terminé
(3)
(2)
(6)
(7)
Bloqué
(en attente d’E/S)
Différents états d’un processus
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
117
Description d’un processus (2/2)
Etats d’un processus
(1) Naissance du processus.
(2) Transition "actif bloqué" se produit quand le processus qui est en
exécution a besoin d’une ressource non disponible.
(3) Transition "actif prêt" se produit si le temps (quantum) alloué au
processus est épuisé ou si un processus plus prioritaire (proc. urgent ou
proc. système) arrive.
(4) Transition "prêt
"
actif"" se produit quand le SE sélectionne le
processus en question pour l’exécuter.
(5) Transition "actif terminé" se produit quand le processus a fini son
exécution.
(6) Transition "bloqué prêt" se produit quand l’événement qui bloque
le processus s’est produit.
(7) Transition "bloqué terminé" se produit quand l’événement attendu
par le processus ne peut se réaliser (ex. interbloquage).
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:
1.
2.
3.
4.
Segment de code
Segment de données
Pile
Tas
Pile
24 k
Données
16 k
0
Texte
(code)
Structure de l’espace d’adressage
d’un processus
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.
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
(jamais partagés)
Pile
24 k
Données
16 k
0
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
Texte
(code)
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
initialisées correspondent aux var. globales et
statiques initialisées d’un programme C par
exemple.
• Un seg. de données non initialisées: créé
dynamiquement. Les données non initialisées
correspondent aux var. globales et statiques
non initialisées
Pile
24 k
Données
16 k
0
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
Texte
(code)
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
d’adressage et croit vers le bas.
Ex. Appel d’une fonction :
•
•
•
•
Empiler le nom de la fonction, les paramètres à lui
passer et les différentes var locales de cette fct.
Exécuter la fonction,
Une fois la fonction terminée, le système dépile les
données utilisées par la fonction et retrouve les
données d’avant,
Poursuivre l’exécution du pgm.
Ali Larab, L2-info, CUFR, 08-09
Pile
24 k
Données
16 k
Systèmes d'Exploitation (2ème partie)
0
Texte
(code)
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
0
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
Texte
(code)
123
Interruption d’un processus
Interruption :
•
Dans le cas des transitions "actif bloqué" et "actif prêt" on parle d’interruption (IT).
D’où vient une IT ?
Quand :
– Le processus a atteint une inst d’E/S,
– Le tps (quantum) attribué au processus est écoulé,
– Un processus plus urgent doit être exécuté,
– Un processus nécessite une ressource (matérielle ou logicielle) ou
une donnée (un résultat calculé par un autre processus, ou un ensemble
d’instructions qui ne sont pas encore chargées en mémoire) détenue par
un autre processus (elle n’est pas disponible),
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
124
Interruption d’un processus
Traitement d’une IT :
1. Arrivée de l’IT le processus en cours est interrompu et un
gestionnaire d’IT est chargé dans les registres du processeur et
s’exécute pour traiter l’IT en question.
2. Une fois le signal de l’IT reconnu, le gestionnaire d’IT accède à la
table des vecteurs d’IT et y recherche l’adresse du programme
associé (« Routine d’IT ») et l’exécute.
3. Une fois l’IT traitée, le SE charge un autre processus à partir de la
file d’attente et l’exécute.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
125
Interruption d’un processus
Traitement d’une IT : exemple
Processus
en exécution
IT qui arrive.
Ex.
ctrl+Alt+Supp
ou
IT100
………
………..
……..
………
………..
……..
………
………..
……..
………
………..
……..
Ali Larab, L2-info, CUFR, 08-09
Gest-IT(100)
………..
N°
Code
…
…
100
----------.---
…………
…………
………..
Afficher la
fenêtre de
Ctrl+Alt+Supp
Systèmes d'Exploitation (2ème partie)
Routine
d’IT 100
Fermeture de la
fenêtre
126
Interruption d’un processus
Traitement d’une IT : exemple
Processus
en exécution
P1
…………
………..
……..
………
Exécution d’un
programme
Charger
quelconque puis
un autre
arrivée de l’IT
processus
« Ctrl+Alt+Supp ».
P2
………
On la symbolise
………
……..
ici par le numéro
……..
……..
IT100
Ali Larab, L2-info, CUFR, 08-09
Table des vect d’IT
Gestionnaire d’IT
N°
…
100
……
……
……
Code
…
---------.---
Routine
d’IT 100
IRQ100
Exécuter le pgme
associé à la routine
Afficher la fenêtre du
gestionnaire des tâches.
Systèmes d'Exploitation (2ème partie)
Fermeture de
la fenêtre
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 »….
• Deux (2) sortes d’IT: matérielles et logicielles
– IT Matérielles (IRQ): générées par les périphériques. Parviennent au
processeur par l’intermédiaire du Ctrleur d’IT.
– IT Logicielles: des IT internes. C’est le processus qui appelle cet IT (à
l’aide du N°de l’IT). Ex. pour appeler une IT DOS, appeler l’IT N°21H.
• Si plusieurs IT arrivent au même temps, c’est celle qui a le plus petit n°qui
est la plus prioritaire (ex. IRQ horloge sys = 0, IRQ port // = 7…).
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 :
1. Le bloc de contexte d’un processus et
2. La table des processus
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)
•
Plusieurs processus peuvent se retrouver dans un état "prêt" (ou "en
attente" ). Le SE les place alors dans une file d’attente ( Une file
d’attente pour chaque état.).
•
•
Le SE dispose d’un programme qui choisit le processus à exécuter.
Ce pgme s’appelle scheduler, dispatcher ou ordonnanceur.
P3
P1
P5
P2
P7
P8
Processeur
P9
Arrivée du processus P10 et son insertion
entre P5 et P2 selon l’algorithme
d’ordonnancement en vigueur
P3
P1
P5
P10
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)
•
•
•
Parmi les processus de la file, lequel choisir ?
« Algo d’ordonnancement ».
Plusieurs Algo existent
But: optimisation améliorer le temps de réponse (moyenne des
dates de fin d’exécution) du syst, le tps d’attente (moyenne des délais
d’attente pour commencer une exécution).
•
Quelques Algo d’ordonnancement:
–
–
–
–
–
Ordonnancement selon FIFO (First In First Out)
Ordonnancement circulaire (le tourniquet ou round Robin)
Ordonnancement avec priorité
Ordonnancement selon le plus court d’abord (SJF, Shortest Job First)
Ordonnancement selon le job le plus court qui reste…
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)
Conclusion sur les algorithmes d’ordonnancement
–
Pas d’algorithme idéal sur tous les plans
–
Les critères de choix dépendent des besoins et des attentes
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.
• Il y a principalement 2 (voire 4) solutions pour résoudre les pb des accès
concurrents :
– Les sémaphores
– Les moniteurs
– Communication entre processus : primitives send et receive.
– Solutions matérielles.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
140
Synchronisation de processus
(accès concurrents)
Sémaphores (1/3)
• Sémaphore = var (entière) qui compte le nbre de processus en attente
d’une section critique.
• Deux types de Sémaphores:
– Sémaphore binaire : peut prendre comme valeur 0 ou 1. Il est utilisé
pour réaliser de l’exclusion mutuelle
– Sémaphore n-aire : peut prendre n valeurs. Il sert à spécifier un
nombre d’accès maximal à une ressource (en lecture évidement).
•
• Primitives P et V : Les sémaphores utilisent 2 primitives, P et V, indivisibles
et non interruptibles
interruptibles.
– P(S): permet de prendre le sémaphore. Si (S<0) alors le processus
exécutant P(S) se bloque.
– V(S): permet de libérer le sémaphore et un processus bloqué s’il y en a.
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
• V(S) est équivalente à :
Si (un processus est bloqué sur S) alors le libérer
Sinon s=s+1
Finsi
– Le fait de vérifier s’il existe des processus en attente du sémaphore
avant d’incrémenter sa valeur permet de respecter l’ordre dans lequel
les processus se sont bloqués au niveau de l’accès à cette section
critique.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
142
Synchronisation de processus
(accès concurrents)
Sémaphores (3/3)
• Instructions typiques d’un processus :
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).
• Moniteur = ensemble de procédures, de variables et de structures de
données regroupées dans un module spécial et gérées par le
compilateur.
– Si un programme veut mettre en œuvre une Sec Critique, il la
reportera dans des procédures du moniteur, qui seront appelées par
les processus.
• 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
condition full, empty;
int cpt;
void insert(int objet)
{
if (cpt==N) wait(full);
insert_object(objet);
cpt++;
if (cpt==1) signal(empty);
}
void remove(int objet)
{
if (cpt==0) wait(empty);
remove_object(objet);
cpt--;
if (cpt==N-1) signal(full);
}
cpt=0;
endmonitor;
Ali Larab, L2-info, CUFR, 08-09
void producteur()
{
while(true)
{
objet=produce_object;
ProducteurConsommateur.insert(objet);
}
}
void consommateur()
{
while(true)
{
ProducteurConsommateur.remove(objet);
consum_objet(objet)
}
}
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)
{a=b; b=1;}
La section d’entrée devient: TS(test,verrou);
While test==1 do TS(test,verrou);
…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
•
On parle d’interblocage pour un ensemble de processus quand
chacun d’eux est dans l’attente d’un événement de la part d’un de ces
processus.
Camion 4
Camion 2
Camion 1
Camion 3
•
En cas d’interblocage, les ressources ne seront jamais libérées.
•
Interblocage rares dans un PC beaucoup de SE demandent alors
de redémarrer la machine si ce problème arrive politique de
l’autruche.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
147
Interblocages
Détection d’interblocage
•
On dit qu’il y a interblocage si les 3 conditions suivantes sont vérifiées
simultanément:
1. Un processus détenant une ressource est dans l’attente d’une
autre ressource.
2. Une ressource au moins est détenue en mode exclusif.
3. Il existe une attente circulaire entre les processus.
P1 demande la
ressource R1
R2
P1
P2
P1 détient la
ressource R3
Pi
Processus Pi
Rj Ressource Rj
Ali Larab, L2-info, CUFR, 08-09
R3
R1
P3
Systèmes d'Exploitation (2ème partie)
148
Interblocages
Modélisation d’un interblocage (modèle (graphe) de Holt)
R3
R1
P1
P2
R3*
R1*
P3
P1
P2
P3
R3 *
R1
P1
P2
R2*
R2*
R2*
R2*
R2*
R2*
(1) Pas d’interblocage
Ali Larab, L2-info, CUFR, 08-09
(2) Cycle + les 3
conditions satisfaites
interblocage
P3
(3) Cycle mais pas d’interblocage, car
pas d’attente circulaire; la libération
de P1 pour R2 met fin à l’interblocage
Systèmes d'Exploitation (2ème partie)
149
Interblocages
Solutions aux problème d’interblocage :
1.
2.
3.
Approche préventive: empêcher les interblocages d’avoir lieu.
Nécessite beaucoup d’efforts.
Approche de détection et de guérison: le syst laisse les
interblocages se produire, ensuite, il les détecte et il les corrige.
Politique de l’autruche: Les ignorer et redémarrer le système s’ils se
produisent.
Correction des interblocages
1.
2.
Dès détection d’un cycle, interrompre un (ou plusieurs) des processus
qui participent à ce cycle afin de mettre fin à l’attente circulaire
(avortement processus).
Réquisitionner quelques ressources sur lesquelles il y a conflit.
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.
•
Le programmeur doit utiliser une technique bien définie pour faire
communiquer 2 processus puisque ceux-là ne peuvent pas
s’échanger des variables (comme c’est le cas entre les procédures).
Chaque processus a son espace d’adressage
•
Différentes manières de communiquer :
– Communication par envoi de messages: primitives send et receive.
send(proc1,&message,…)
receive(bal,&message,…)
–
Communication par mémoire partagée
Les processus partagent une zone mémoire dans laquelle ils
placent les variables en commun.
Ali Larab, L2-info, CUFR, 08-09
Systèmes d'Exploitation (2ème partie)
151
Appels systèmes pour la gestion des
processus
•
Chaque SE met à la disposition des programmeur des
appels systèmes afin de créer et exécuter des processus.
•
Créer un processus, puis créer ses fils, l’exécuter, le
tuer…
–
•
•
•
•
Les processus fils peuvent hériter les caractéristiques de leurs
pères
pid=fork()
création de processus
s=execve(nom, arg,envp)
exécution d’un programme
exit(etat)
terminaison d’un processus
s=wait(pid,&etat,options) attente d’un 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
Téléchargement