Vous êtes sur la page 1sur 20

Systèmes

d’Exploitation

Didier Verna
E PITA

Généralités
Systèmes d’Exploitation
Allocation
contigüe
Monoprogrammation
Gestion de la mémoire
Multiprogrammation

Pagination

Segmentation Didier Verna

didier@lrde.epita.fr
http://www.lrde.epita.fr/˜didier

1/24
Table des matières

Systèmes
d’Exploitation

Didier Verna
E PITA 1 Généralités
Généralités

Allocation
contigüe 2 Allocation contigüe
Monoprogrammation
Multiprogrammation
Monoprogrammation
Pagination Multiprogrammation
Segmentation

3 Pagination

4 Segmentation

2/24
Niveaux d’adressage

Systèmes
d’Exploitation Adresse symbolique : manipulée au niveau du
Didier Verna
E PITA
programme
Adresse logique : générée par le CPU
Généralités

Allocation Adresse physique : emplacement mémoire réel


contigüe
Monoprogrammation M MU (Memory Management Unit) : dispositif de liaison
Multiprogrammation

Pagination
d’adresse
Segmentation

4/24
Liaison d’adresse

Systèmes
d’Exploitation Problème
Didier Verna I Adresses symboliques =⇒ adresses physiques
E PITA
I À quel moment fabriquer une adresse physique ?
Généralités
Solutions
Allocation
contigüe
I Compilation : « Code absolu »
Monoprogrammation
Multiprogrammation
Adresse de chargement connue.
Pagination
Exemple : command.com.
Segmentation
I Chargement : « Code translatable »
Adressage relatif.
I Exécution : « Code dynamique »
L’emplacement du programme peut varier dans le
temps. Nécessite un matériel spécial.

5/24
Techniques de haut niveau

Systèmes
d’Exploitation Recouvrements : (overlays) charger un processus par
Didier Verna
E PITA
tranches de code indépendantes. Niveau utilisateur.
Chargement dynamique : charger le code nécessaire
Généralités

Allocation
uniquement quand on en a besoin. Niveau utilisateur.
contigüe
Monoprogrammation
Édition de liens dynamique : bibliothèques
Multiprogrammation
partagées.
Pagination

Segmentation
Swapping : déplacement de processus entre mémoire
et mémoire auxiliaire (disques). Coûteux en
commutation.

6/24
Monoprogrammation
Mainframes, Palm et systèmes embarqués, MS-DOS

Systèmes 0xFF..
d’Exploitation RAM ROM ROM
User Program Operating System Device Drivers
Didier Verna (BIOS)
E PITA
RAM RAM
Généralités
User Program
Allocation
contigüe
Monoprogrammation
Multiprogrammation

Pagination

Segmentation
RAM RAM
Operating System Operating System

0x00

8/24
Multiprogrammation & partitions fixes
« OS/MFT » sur OS/360

Systèmes
d’Exploitation Partition 4 Partition 4

Didier Verna
E PITA

Généralités

Allocation
contigüe Partition 3 Partition 3
Monoprogrammation
Multiprogrammation

Pagination

Segmentation Partition 2 Partition 2

Partition 1 Partition 1

Operating System Operating System

9/24
Localisation et protection

Systèmes
d’Exploitation Modification du code : (OS/MFT, édition de liens)
Didier Verna
E PITA
nécessite de connaître les mots à modifier. Ne résoud
pas le problème de protection.
Généralités

Allocation =⇒ Blocs de 2kB protégés par un code de 4 bits (PSW).


contigüe
Monoprogrammation
Multiprogrammation
Par M MU : (CDC 6600, Intel 8088)
Pagination registre registre de
limite translation
Segmentation

adresse adresse
logique physique
oui + mémoire
UC <
non

déroutement

=⇒ Commutation de contexte plus coûteuse.

10/24
Multiprogrammation & partitions dynamiques

Systèmes
d’Exploitation Principe
Didier Verna I Une partition mémoire par processus
E PITA
I Allocation / libération de la mémoire en fonction de
Généralités l’ordonnancement
Allocation I Idem pour le swapping
contigüe
Monoprogrammation Implémentations
Multiprogrammation
I Bitmap : 1 bit par zone mémoire (kB) indiquant si la
Pagination
zone est libre ou occupée. Attention à la taille des
Segmentation
zones
• Avantages : simple, taille du bitmap connue
• Inconvénients : lent
I Listes chaînées : zone libre / occupée, adresse de
début et longueur. Tri par adresse, taille, listes distinctes
de processus, trous. Listes doublement chaînées.

11/24
Politiques d’allocations

Systèmes
d’Exploitation First-Fit : premier trou suffisant. Rapide.
Didier Verna
E PITA Next-Fit : idem, mais recherche à partir de
l’emplacement précédent. Un peu moins bon.
Généralités

Allocation Best-Fit : trou le plus petit possible. Moins performant.


contigüe
Monoprogrammation Worst-Fit : trou le plus grand. Bof.
Multiprogrammation

Pagination Quick-Fit : maintient de listes par tailles fréquentes.


Segmentation Rapide pour la recherche, lent pour la désallocation.
Remarque : attention aux politiques de tri des listes.

12/24
Fragmentation
Apparition de zones inoccupées dans la mémoire

Systèmes
d’Exploitation Types
Didier Verna I Fragmentation externe : espace suffisant pour
E PITA
l’allocation d’un nouveau processus, mais non contigu
Généralités I Fragmentation interne : allocation volontaire de zones
Allocation inoccupées pour diminuer le travail de gestion de la
contigüe
Monoprogrammation
mémoire
Multiprogrammation
Compactage
Pagination

Segmentation
I Défragmentation de la mémoire par translation des
processus (code dynamique)
I Stratégies de compactage difficiles à trouver, lenteur

13/24
Pagination
Allocation de zones de mémoire non contigües pour un même processus

Systèmes
d’Exploitation Cadres de page : mémoire physique découpée en
Didier Verna
E PITA
zones de taille fixe
Adresse logique : numéro de page + déplacement
Généralités

Allocation
dans la page
contigüe
Monoprogrammation
Table de pages : liaison entre numéro de page et
Multiprogrammation
cadre de page (une table par processus)
Pagination

Segmentation
Taille des pages : puissance de 2

15/24
M MU pour la pagination

Systèmes
d’Exploitation
adresse adresse
Didier Verna logique physique
E PITA

Généralités UC p d f d mémoire
Allocation
contigüe
Monoprogrammation
Multiprogrammation
table de pages
Pagination

Segmentation

16/24
Caractéristiques

Systèmes
d’Exploitation Pas de fragmentation externe, mais fragmentation
Didier Verna
E PITA
interne
Petites pages =⇒ moins de fragmentation
Généralités

Allocation Grandes pages =⇒ commutation moins coûteuse


contigüe
Monoprogrammation Impossible par définition d’accéder à une page interdite
Multiprogrammation

Pagination Mécanismes de contrôle : pages (in)valides, en lecture,


Segmentation écriture, exécution etc.
Implémentation du partage de la mémoire plus facile
Taille moyenne des pages : 2 – 4 Ko

17/24
Support matériel
La pagination doit être rapide (ns)

Systèmes
d’Exploitation Registres dédiés : possible seulement pour des
Didier Verna
E PITA
petites tables (ex. DEC PDP-11 : adresse 16 bits,
pages de 8ko =⇒ 8 entrées).
Généralités

Allocation
Mémoire principale : un unique registre « PTBR »
contigüe
Monoprogrammation
(Page Table Base Register). Surcharge de
Multiprogrammation commutation de contexte faible, mais temps d’accès
Pagination double.
Segmentation
Registres associatifs : « T LB » (Translation
Look-Aside Buffers). Fonctionne comme un cache de la
table de pages (ex. Motorola 68030 : T LB à 22 entrées,
i486 : 32 entrées, taux de présence de 98%).
I Gestion logicielle des T LB : par le système au lieu du
M MU (Architectures RISC : Sparc, MIPS, Alpha).
Acceptable pour des T LB assez grands (64 entrées).
Simplifie le M MU.
18/24
Pagination à plusieurs niveaux

Systèmes
d’Exploitation Exemple (courant) : adressage sur 32 bits + pages de 4 Ko.
Didier Verna
E PITA
Une table de page contient alors 1 million d’entrées, soit 4
Mo de mémoire ! !
Généralités

Allocation
À éviter
contigüe
Monoprogrammation
I allouer autant d’espace en contigu
Multiprogrammation I charger l’intégralité des tables de page en mémoire
Pagination
Pagination de la table de page
Segmentation
I SPARC : pagination 32 bits à trois niveaux
I Motorola 68030 : pagination à quatre niveaux
Problème : trois ou quatre indirections à chaque fois
que l’on doit récupérer un octet.

19/24
Table de pages inversée
Autre solution au problème de la taille des tables de pages

Systèmes
d’Exploitation Principe
Didier Verna I Une unique table de pages pour tout le système,
E PITA
indexée par les cadres de page
Généralités I Chaque entrée contient un numéro de processus et un
Allocation numéro de page virtuelle
contigüe
Monoprogrammation Problèmes
Multiprogrammation

Pagination
I Liaison d’adresse plus compliquée (parcours de la
Segmentation
table). =⇒ T LB, tables de hash par adresse virtuelle.
I Partage de pages plus difficile à implémenter au niveau
système.
Utilisation actuelle : IBM, HP, de plus en plus
d’architectures 64 bits.

20/24
Segmentation

Systèmes
d’Exploitation Segmentation vs. Pagination
Didier Verna I Pagination : obtenir un espace d’adresse linéaire aussi
E PITA
grand que souhaité. =⇒ Dimension 1
Généralités I Segmentation : obtenir plusieurs espaces d’adressage
Allocation distincts (segments). =⇒ Dimension 2 (ex. compilateur
contigüe
Monoprogrammation
+ pile, source, table de symboles, ASTetc.)
Multiprogrammation
Principe
Pagination

Segmentation
I Segment = unité logique (niveau utilisateur)
I Taille variable, mais indépendante des autres segments
I Facilité de partage (ex. bibliothèques partagées)
I Facilité de protection (ex. lecture, écriture. exécution)
Implémentation
I Table de segments : idée analogue à la pagination
I Adresse logique : nom du segment + déplacement
I Segmentation et pagination combinée

22/24
Segmentation et Pagination
Exemple : Intel Pentium

Systèmes
d’Exploitation 16K segments de 4 Go par processus, dont :
Didier Verna I 8K segments privés (une table de descripteurs locale
E PITA
« LDT » par processus)
Généralités I 8K segments partageables (une table de descripteurs
Allocation globale « GDT)
contigüe
Monoprogrammation Sélecteur de segment (16 bits) + offset (32 bits) =⇒
Multiprogrammation
« Adresse linéaire » (32 bits)
Pagination

Segmentation 13 1 2 32
Index G/L DT Ring Offset

Descriptor
Base Address
Limit +
Other fields

32 bits linear address


23/24
Intel Pentium (suite)

Systèmes
d’Exploitation Pagination :
10 10 12
Didier Verna Pagination à 2 niveaux.
E PITA Directory Page Offset
Pages de 4Ko.
Généralités
Userland
Allocation
contigüe DLLs
Monoprogrammation Protection :
Multiprogrammation Syscalls
Pagination
4 anneaux différents.
Kernel
Segmentation Progression en
0
profondeur par portes /
1
guichets.
2

24/24

Vous aimerez peut-être aussi