Professional Documents
Culture Documents
Monoprogrammation Multiprogrammation
Systmes dExploitation
Gestion de la mmoire Didier Verna
didier@lrde.epita.fr http://www.lrde.epita.fr/didier
Pagination Segmentation
1/25
Pagination Segmentation
2/25
Pagination Segmentation
4/25
Niveaux dadressage
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Adresse symbolique : manipule au niveau du programme Adresse logique : gnre par le CPU Adresse physique : emplacement mmoire rel M MU (Memory Management Unit) : dispositif de liaison dadresse
Pagination Segmentation
5/25
Liaison dadresse
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Problme
Adresses symboliques = adresses physiques quel moment fabriquer une adresse physique ?
Solutions
Compilation : Code absolu Adresse de chargement connue. Exemple : command.com. Chargement : Code translatable Adressage relatif. Excution : Code dynamique Lemplacement du programme peut varier dans le temps. Ncessite un matriel spcial.
Pagination Segmentation
6/25
Recouvrements : (overlays) charger un processus par tranches de code indpendantes. Niveau utilisateur. Chargement dynamique : charger le code ncessaire uniquement quand on en a besoin. Niveau utilisateur. dition de liens dynamique : bibliothques partages. Swapping : dplacement de processus entre mmoire et mmoire auxiliaire (disques). Coteux en commutation.
Pagination Segmentation
7/25
Monoprogrammation
Mainframes, Palm et systmes embarqus, MS-DOS
Systmes dExploitation Didier Verna E PITA Gnralits
0xFF..
Pagination Segmentation
9/25
Partition 4
Partition 4
Partition 3
Partition 3
Pagination Segmentation
Partition 2
Partition 2
10/25
Localisation et protection
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Modication du code : (OS/MFT, dition de liens) ncessite de connatre les mots modier. Ne rsoud pas le problme de protection. = Blocs de 2kB protgs par un code de 4 bits (PSW). Par M MU : (CDC 6600, Intel 8088)
registre limite registre de translation
adresse physique
Pagination Segmentation
adresse logique
UC
<
oui non
mmoire
droutement
Principe
Une partition mmoire par processus Allocation / libration de la mmoire en fonction de lordonnancement Idem pour le swapping
Implmentations
Bitmap : 1 bit par zone mmoire (kB) indiquant si la zone est libre ou occupe. Attention la taille des zones
Pagination Segmentation
Listes chanes : zone libre / occupe, adresse de dbut et longueur. Tri par adresse, taille, listes distinctes de processus, trous. Listes doublement chanes.
12/25
Politiques dallocations
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
First-Fit : premier trou sufsant. Rapide. Next-Fit : idem, mais recherche partir de lemplacement prcdent. Un peu moins bon. Best-Fit : trou le plus petit possible. Moins performant. Worst-Fit : trou le plus grand. Bof. Quick-Fit : maintient de listes par tailles frquentes. Rapide pour la recherche, lent pour la dsallocation. Remarque : attention aux politiques de tri des listes.
Pagination Segmentation
13/25
Fragmentation
Apparition de zones inoccupes dans la mmoire
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Types
Fragmentation externe : espace sufsant pour lallocation dun nouveau processus, mais non contigu Fragmentation interne : allocation volontaire de zones inoccupes pour diminuer le travail de gestion de la mmoire
Pagination Segmentation
Compactage
Dfragmentation de la mmoire par translation des processus (code dynamique) Stratgies de compactage difciles trouver, lenteur
14/25
Pagination
Allocation de zones de mmoire non contiges pour un mme processus
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Cadres de page : mmoire physique dcoupe en zones de taille xe Adresse logique : numro de page + dplacement dans la page Table de pages : liaison entre numro de page et cadre de page (une table par processus) Taille des pages : puissance de 2
Pagination Segmentation
16/25
M MU pour la pagination
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
adresse logique
adresse physique
UC
mmoire
Pagination Segmentation
table de pages
17/25
Caractristiques
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Pas de fragmentation externe, mais fragmentation interne Petites pages = moins de fragmentation Grandes pages = commutation moins coteuse Impossible par dnition daccder une page interdite Mcanismes de contrle : pages (in)valides, en lecture, criture, excution etc. Implmentation du partage de la mmoire plus facile Taille moyenne des pages : 2 4 Ko
Pagination Segmentation
18/25
Support matriel
La pagination doit tre rapide (ns)
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Registres ddis : possible seulement pour des petites tables (ex. DEC PDP-11 : adresse 16 bits, pages de 8ko = 8 entres). Mmoire principale : un unique registre PTBR (Page Table Base Register). Surcharge de commutation de contexte faible, mais temps daccs double. Registres associatifs : T LB (Translation Look-Aside Buffers). Fonctionne comme un cache de la table de pages (ex. Motorola 68030 : T LB 22 entres, i486 : 32 entres, taux de prsence de 98%).
Gestion logicielle des T LB : par le systme au lieu du M MU (Architectures RISC : Sparc, MIPS, Alpha). Acceptable pour des T LB assez grands (64 entres). Simplie le M MU.
Pagination Segmentation
19/25
Exemple (courant) : adressage sur 32 bits + pages de 4 Ko. Une table de page contient alors 1 million dentres, soit 4 Mo de mmoire ! ! viter
allouer autant despace en contigu charger lintgralit des tables de page en mmoire
Pagination Segmentation
Problme : trois ou quatre indirections chaque fois que lon doit rcuprer un octet.
20/25
Principe
Une unique table de pages pour tout le systme, indexe par les cadres de page Chaque entre contient un numro de processus et un numro de page virtuelle
Problmes
Liaison dadresse plus complique (parcours de la table). = T LB, tables de hash par adresse virtuelle. Partage de pages plus difcile implmenter au niveau systme.
Pagination Segmentation
21/25
Segmentation
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Pagination Segmentation
Principe
Segment = unit logique (niveau utilisateur) Taille variable, mais indpendante des autres segments Facilit de partage (ex. bibliothques partages) Facilit de protection (ex. lecture, criture. excution)
Implmentation
Table de segments : ide analogue la pagination Adresse logique : nom du segment + dplacement Segmentation et pagination combine
23/25
Segmentation et Pagination
Exemple : Intel Pentium
Systmes dExploitation Didier Verna E PITA Gnralits Allocation contige
Monoprogrammation Multiprogrammation
Slecteur de segment (16 bits) + offset (32 bits) = Adresse linaire (32 bits)
13 Index 1 G/L DT 2 Ring Descriptor Base Address Limit Other fields 32 Offset
Pagination Segmentation
10 Directory
10 Page
Userland
12 Offset
Pagination Segmentation
25/25