Vous êtes sur la page 1sur 71

Gestion de la mmoire

SITE : http://www.sir.blois.univ-tours.fr/mirian/

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.1/71


Introduction

La mmoire est une ressource importante qui doit tre gre avec attention.
Mme si la quantit de mmoire dun ordinateur a beaucoup augmente, la taille
des programmes saccrot aussi.
La situation idale serait de donner chaque programmeur une mmoire
infiniment grande, infiniment rapide, non volatile et, de plus, bon march. La
technologie ne fournit pas de telles mmoires.
Hirarchisation de la mmoire: les ordinateurs ont une petite quantit de
mmoire trs rapide, chre et volatile (mmoire RAM) et beaucoup de gigabytes
de mmoire plus lente, bon march et non volatile.
Le SE a le rle de coordonner lutilisation des diffrentes mmoires.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.2/71


La mmoire et le gestionnaire de la mmoire

Mmoire: grand tableau de mots (octets), chacun possdant sa propre adresse.


La CPU extrait les instructions de la mmoire en fonction de la valeur dun
compteur dinstructions.
Systme de gestion de la mmoire (Memory manager ): partie du SE qui gre la
hirarchie de stockage
Suivre les parties de la mmoire qui sont utilises ou non utilises.
Allouer/librer espace mmoire aux processus.
Contrler le swapping entre la mmoire principale et le disque.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.3/71


Adresse logique et adresse physique

Adresse logique ou adresse virtuelle (virtual address)


Adresse gnre par la CPU.
Adresse physique
Adresse vue par lunit de mmoire.
MMU (Memory Management Unit): Dispositif matriel qui fait la conversion des
adresses virtuelles physiques

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.4/71


Schma de conversion

Registre de base = registre de translation (realocation register ).


La valeur du registre de translation est additionne chaque adresse gnre
par un processus utilisateur au moment o il est envoy la mmoire.
Le programme utilisateur naperoit jamais les adresses physiques; il traite les
adresses logiques.

The CPU sends virtual


CPU addresses to the MMU
package

CPU
Memory Disk
management Memory controller
unit

Bus

The MMU sends physical Syst`emes dexploitation - Mrian Halfeld-Ferrari p.5/71


addresses to the memory
Types basic de gestion

Les systmes de gestion de la mmoire peuvent tre partags en deux groupes:

Ceux qui dplacent un processus entre le disque et la mmoire pendant sont


excution.
Ceux qui ne font pas cela (plus simple).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.6/71


Monoprogrammation

La manire la plus simple de gestion de mmoire: excuter un seul


programme la fois.
La mmoire est habituellement subdivise en deux partitions, une pour le SE
rsident (en gnral en mmoire basse) et lautre pour les processus utilisateur
(mmoire haute).
Utilis par certains (petits) MS-DOS. Dans les IBM-PC, la portion du systme
dans la ROM est appelle BIOS (Basic Input Output System).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.7/71


Multiprogrammation avec partitions fixes

La plupart des SE modernes autorisent lexcution de processus multiples en


mme temps:
Lorsquun processus est bloqu en attente dune E/S, un autre peut utiliser
la CPU.
La manire la plus simple de faire de la multiprogrammation consiste
subdiviser la mmoire en n partitions de taille fixe. Chaque partition peut
contenir exactement 1 processus.
Degr de multi programmation = nombre de partitions.
SE maintient une table indiquant les parties de la mmoire disponibles et celles
qui sont occupes.
Trou (hole): bloc de mmoire disponible.
Puisque les partitions sont fixes, chaque espace inutilis est perdu.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.8/71


Multiprogrammation avec partitions fixes

Multiple
input queues
800K
Partition 4 Partition 4
700K

Partition 3 Single Partition 3


input queue

400K

Partition 2 Partition 2

200K
Partition 1 Partition 1
100K
Operating Operating
system system
0
(a) (b)

Partition fixes avec des files dattente diffrentes


Partition fixes avec une seule file dattente diffrentes
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.9/71
Multiprogrammation: Une ou plusieurs files?

Inconvnient des diffrentes files: la file pour une grande partition est vide
tandis que celle pour une petite partition est pleine. Avec une seule file, cela peut
tre rsolu.
Comme il nest pas judicieux dattribuer une grande partition un petit travail,
autres stratgies existent:
Parcourir la file dattente pour chercher le plus gros travail qui peut tre
plac dans la partition. Cet algorithme pnalise les petits travaux.

Solutions:
Conserver au moins une petite partition afin que les petits travaux
puissent sexcuter sans quune grande partition leur soit affect.
Un travail ligible ne peut pas tre ignor plus de k fois.
Les SE dont les partitions de taille fixe sont mises en place manuellement
et restent inchanges par la suite a t utilis par le OS/360 de l IBM
(mainframes).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.10/71


Swapping

Avec les systme de temps partag, parfois la mmoire principale est


insuffisante pour maintenir tous les processus courant actifs: il faut
conserver les processus supplmentaires sur un disque.
Transfert temporaire dun processus de la mmoire principale une mmoire
auxiliaire - il sera ensuite ramen en mmoire pour continuer son excution.
Mmoire auxiliaire (backing store): disque rapide suffisamment grand pour
pouvoir ranger les copies de toutes les images mmoire de tous les utilisateurs.
La plupart du temps du swapping est constitu de temps de transfert. Le temps
total de transfert est directement proportionnel la quantit de mmoire
transfre.
Contraintes:
Processus transfrer doit tre inactif.
Si les E/S accdent dune manire asynchrone la mmoire utilisateur
pour utiliser les buffers E/S, le processus ne peut pas tre transfr.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.11/71


Exemple de swapping

????
?????
?????
Time

?
C C C C C
? B B B B
A

A A A
D D D

?
Operating
system
(a)
Operating
system
(b)
Operating
system
(c)
Operating
system
(d)
Operating
system
(e)
Operating
system
(f)
Operating
system
(g)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.12/71


Partitions variables

Diffrence principale par rapport aux partitions fixes: leur nombre, leur
localisation et leur taille varient dynamiquement au gr des allers retour
des processus.
La flexibilit ne dpend pas dun nombre fixe de partitions qui pourra tre
trop grand ou trop petit suivant lutilisation de la mmoire.
La libration et allocation de mmoire est plus complique.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.13/71


Fragmentation

Fragmentation externe: il existe un espace mmoire total suffisant pour


satisfaire une requte, mais il nest pas contigu.
Fragmentation interne: la mmoire alloue peut tre lgrement plus grande
que le mmoire requise. Cette diffrence est interne une partition mais nest
pas utilise.
Exemple: Trou: 18464 octets; Processus: 18462 octets
Diffrence: 2 octets

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.14/71


Compactage: une solution pour le problme
de la fragmentation externe

Objectif: Brasser les contenus de la mmoire afin de placer toute la mmoire


libre ensemble dans un seule bloc.
Le compactage nest pas toujours possible. Quand il est possible, nous
devons estimer son cot.
Lalgorithme de compactage le plus simple: dplacer tous les processus vers
une extrmit de la mmoire; tous les trous se dplacent dans lautre direction,
produisant ainsi un grand trou de mmoire disponible. Peut tre trs cher!
La slection dune stratgie de compactage optimale est trs difficile.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.15/71


Allocation de mmoire pour un processus

Si le processus sont crs avec une taille fixe, le SE alloue exactement la


mmoire ncessaire.
Si les segments de donnes des processus doivent crotre, par exemple par
allocation dynamique, un problme surgit toutes les fois quun programme
essaye de saccrotre:
Si un trou est adjacent au processus ce trou peu lui tre allou.
Si le processus est adjacent un autre processus, le processus
croissant devrait tre dplac dans un trou suffisamment grand pour lui.
Si le ne peut pas crotre en mmoire et que la zone de swapping est
pleine, le processus devra attendre ou tre tu.
Sil est prvoir que la plupart des processus sagrandiront lors de leur
excution, il est bon dallouer un peu de mmoire supplmentaire chaque
fois quun processus est charg ou dplac.
Lorsque lon transfre des processus sur le disque, seule la mmoire
vritablement utilise doit tre recopie.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.16/71


Allocation despace pour laccroissement

Allocation despace pour laccroissement dun segment de donnes.


Allocation despace pour laccroissement de la pile et dun segment de donnes.

B-Stack
Room for growth
Room for growth

B-Data
???
?
B Actually in use
B-Program

A-Stack
?
?
Room for growth
Room for growth

A-Data
A Actually in use
A-Program

Operating Operating
system system

(a) (b)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.17/71


Grer la mmoire avec des bit maps

Quand la mmoire est attribu dynamiquement, cest la SE qui doit la grer.


Deux manires de conserver une trace de lutilisation de la mmoire
1. Tables de bits (bit maps)
2. Listes

Bit maps

La mmoire est rpartie en units dallocation dont la taille peut varier de


quelques mots plusieurs Kbytes.
Chaque unit dallocation correspond un bit du tableau de bits, lequel est 0 si
lunit correspondante est vide et 1 si elle est occupe (ou vice-versa).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.18/71


Bit maps

???
???
A B C D E
8 16 24
?

?
(a)

11111000 P 0 5 H 5 3 P 8 6 P 14 4
11111111
11001111
H 18 2 P 20 6 P 26 3 H 29 3 X
11111000

Hole Starts Length Process


at 18 2
(b) (c)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.19/71


Bit maps - Taille de lunit dallocation

lment fondamental dans la configuration:

Plus lunit est petite, plus le tableau de bits est important


Lorsque lunit dallocation est plus grande, le tableau de bits est plus petit,
mais une quantit non ngligeable de mmoire peut tre gaspille dans la
dernire unit alloue un processus ayant une taille qui nest pas un multiple de
lunit dallocation.

Avantage du bit map: Moyen simple de garder une trace des mots mmoire dans une
quantit fixe de mmoire

Inconvnient du bit map: Lorsquun processus de k units est charg en mmoire, le


gestionnaire de mmoire doit parcourir le bit map pour trouver une suite de k bits
conscutifs dont la valeur est 0. Cette recherche peut tre lente.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.20/71


Grer la mmoire avec des listes chanes

Maintenir une liste chane des segments de mmoire alloues et libres.


Dans cette liste un lment est soit un processus, soit un trou entre deux
processus.

???
???
A B C D E
8 16 24
?

?
(a)

11111000 P 0 5 H 5 3 P 8 6 P 14 4
11111111
11001111
H 18 2 P 20 6 P 26 3 H 29 3 X
11111000

Hole Starts Length Process


at 18 2
(b) (c)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.21/71


Listes chanes

Si la liste des segments est trie par adresse, la mise jour est directe.

???
???
Before X terminates After X terminates
(a) A X B becomes A B

(b) A X becomes A

?

 (c) X B becomes B

(d) X becomes

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.22/71


Algorithmes pour allocation de mmoire -
liste chane

Quand es processus et les trous sont indiqus dans une liste trie par adresse,
plusieurs algorithmes peuvent tre utiliss:

1. First-fit: Alloue le premier trou suffisamment grand. Le trou est ensuite divis en
deux parties, lune destine au processus et lautre la mmoire non utilise,
sauf si le processus et le trou ont la mme taille.
2. Next-fit: Variation de First-fit. Dbute la recherche de espace libre dans la liste
partir de lendroit o il sest arrt la fois prcdente.
3. Best-fit: Alloue le trou le plus petit suffisamment grand. Plutt que de casser un
trou, il essaye de trouver un tour qui correspond la taille demande.
Il est ncessaire de parcourir la liste entire moins que la liste ne soit trie par
taille.
Cette stratgie fait rester le trou le plus petit.
4. Worst-fit: Alloue le trou le plus grand (parcours de toute la liste).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.23/71


Comparaison des algorithmes

Best-fit est plus lent que First-fit et il perd plus de place mmoire que First-fit et
Next-fit: il tend remplir la mmoire avec des minuscules trous inutiles.
La rapidit de algorithmes peut tre amliore si lon tablit des listes spares
pour les processus et les trous.
Contrepartie: complexit plus grande et ralentissement quand la mmoire est
libre: un segment qui est libr doit tre effac de la liste des processus et
insr dans la liste des trous.
Liste des trous doit tre trie par taille afin daugmenter la rapidit de lalgorithme
du Best-fit.
Dans le cas dune liste de trous trie par taille, le Best-fit et le First-fit sont aussi
rapides lun que lautre et le Next-fit est inutile.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.24/71


Mmoire virtuelle

Principe de la mmoire virtuelle: la taille de lensemble form par le


programme, les donnes et la pile peut dpasser la capacit disponible de
mmoire physique.
Le SE conserve les parties de programme en cours dutilisation dans la mmoire
principale et le reste sur le disque.
La mmoire virtuelle peut aussi fonctionner dans un systme multiprogramm.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.25/71


Mmoire virtuelle

Sparation entre la mmoire logique de lutilisateur et la mmoire physique.


Seulement une partie dun programme a besoin dtre dans la mmoire pour
lexcution.
Les programmes peuvent tre plus grands que la mmoire physique.
Rend plus facile la tche de programmation: le programmeur na pas besoin de
se proccuper de la quantit de mmoire physique disponible.

Implantation

Pagination la demande
Segmentation la demande

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.26/71


Pagination (Paging)

Lespace adresse logique dun processus nest pas contigu.


La mmoire physique est dcoupe en blocs de taille fixe appels cadres de
pages (frames).
Taille: puissance de 2 entre 512 bytes et 8192 bytes.
La mmoire logique est galement subdivise en blocs de la mme taille appels
pages.

Taille pages = Taille cadres

Pour excuter un programme de n pages, il faut trouver n cadres libres et


charger le programme.
Il faut savoir quels cadres sont allous, lesquels sont disponibles, etc.
Cette information est dans la table de cadre (Frame table)
Table de pages: traduit ladresse logique en adresse physique.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.27/71


Exemple

Adresses virtuelles: Un ordinateur peut produire des adresses sur 16 bits avec
des valeurs entre 0 et 64 KBytes.
Lordinateur a seulement 32 KBytes de mmoire physique.
La taille de page et de cadre est de 4 KBytes.
Nous avons donc 16 pages virtuelles et 8 cadres de pages.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.28/71


Exemple

Virtual
address
space
60K-64K X
56K-60K X Virtual page
52K-56K X
48K-52K X
44K-48K 7
40K-44K X
Physical
36K-40K 5 memory
32K-36K X address
28K-32K X 28K-32K
24K-28K X 24K-28K
20K-24K 3 20K-24K
16K-20K 4 16K-20K
12K-16K 0 12K-16K
8K-12K 6 8K-12K
4K-8K 1 4K-8K
0K-4K 2 0K-4K

Page frame
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.29/71
Pagination la demande

Processus rside dans la mmoire secondaire (disque).


1. Nous voulons lexcuter.
2. Swap in: processus dans la mmoire primaire.
3. Il nest pas ncessaire de faire swap du processus dans sa totalit (lazy
swapper ).
Transfert d une page en mmoire seulement quand il est ncessaire
Support matriel: possibilit de distinguer entre les pages qui sont en mmoire
et celles qui sont sur disque.
Bit prsence/absence
1 : page en mmoire
0: sur disque
Laccs une page marque invalide provoque un droutement de dfaut de
page (page fault)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.30/71


Dfaut de page

1. Sil y a une rfrence une page marque absente


alors droutement page fault (SE)
2. Trouver un cadre de page libre.
3. Swap la page dans le cadre.
4. Modifier la table interne et la table de pages afin dindiquer que la page est
maintenant en mmoire.
5. Redmarrer linstruction interrompue par le droutement dadresse illgale. Le
processus peut accder la page comme si elle avait toujours t en mmoire.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.31/71


Exemple

Que se passe-t-il si le programme essaye par exemple de faire appel une page non
prsente, avec linstruction
MOV REG, 32780
qui correspond loctet 12 de la page virtuelle 8 (qui commence 32768)?

La MMU remarque que la page est absente et fait une droutement de page.
SE dcide de dplacer le cadre de page 1, il doit charger la page virtuelle 8
ladresse physique 4K et faire deux changements de correspondance dans la
MMU.
1. Marquer lentre de la page virtuelle 1 comme non utilise.
2. Changer le bit prsence/absence de la page 8.
3. Quand linstruction droute sera r-excute, il mettra ladresse virtuelle
32780 en correspondance avec ladresse 4108.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.32/71


Exemple

Virtual
address
space
60K-64K X
56K-60K X Virtual page
52K-56K X
48K-52K X
44K-48K 7
40K-44K X
Physical
36K-40K 5 memory
32K-36K X address
28K-32K X 28K-32K
24K-28K X 24K-28K
20K-24K 3 20K-24K
16K-20K 4 16K-20K
12K-16K 0 12K-16K
8K-12K 6 8K-12K
4K-8K 1 4K-8K
0K-4K 2 0K-4K

Page frame
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.33/71
Exemple: adresse virtuelle

Ladresse virtuelle de 16 bits est divise en deux parties:

un numro de page sur 4 bits (donc nous pouvons avoir 16 pages)


un dcalage (offset) sur 12 bits

Outgoing
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 physical
address
(24580)

15 000 0
14 000 0
13 000 0
12 000 0
11 111 1
10 000 0
9 101 1
12-bit offset
Page 8 000 0
copied directly
table 7 000 0 from input
6 000 0 to output
5 011 1
4 100 1
3 000 1
2 110 1 110
1 001 1
Present/
0 010 1
absent bit
Virtual page = 2 is used
as an index into the
page table Incoming
virtual
address
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Syst`e(8196)
mes dexploitation - Mrian Halfeld-Ferrari p.34/71
Adresse virtuelle

Le numro de page est utilis comme un index dans la table de pages


Si le bit de prsence/absence est 0 un droutement vers le SE est mis en place.
Si le bit de prsence/absence est 1, le numro de cadre de page trouv dans la
table de pages est copi dans le registre de sortie. On y ajoute les 12 bits de
dcalage ou dplacement (offset).
Ladresse physique est forme par ces deux parties ensembles.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.35/71


Table de page

Ladresse gnre par la CPU est divise en 2 parties:


1. Numro de page (Page number ) p:
Indice de la table de pages laquelle contient ladresse de base pour chaque
page.
2. Dplacement dans la page (Offset) d:
Combin avec ladresse de base dfinit ladresse physique qui est envoye
lunit de mmoire.
Le rle dune table de pages est de faire correspondre des pages virtuelles des
cadres de pages.
Mathmatiquement, une table des pages est une fonction, qui a comme
argument le numro de la page virtuelle et comme rsultat le numro du
cadre physique.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.36/71


Table de pages

Deux problmes majeurs doivent tre soulevs et reprsentent des contraintes


importantes dans la construction des ordinateurs:

La table des pages doit tre extrmement grande.


Ordinateur modernes utilisent des adresses virtuelles dau moins 32 bits.
Table de pages avec environ un million dentre!
Chaque processus a besoin de sa propre table de pages.
La correspondance doit tre rapide.
Pour chaque instruction il est ncessaire de faire rfrence la table des
pages 1 fois, 2 fois et parfois plus.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.37/71


Implantation de la table de pages

Manire la plus simple

Table de pages dans la mmoire principale.


Page Table Base Register (PTBR): indique la table de pages
Commutation de contexte: chaque processus possde sa table de pages
Pour modifier la table de pages (cad, changer la fonction de traduction) il suffit de
modifier PTBR.
Problme: temps requis pour charger la table des pages en totalit chaque
changement de contexte.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.38/71


Implantation de la table de pages

Solution standard

Utiliser les registres associatifs (ou translation look aside buffers: TLB): petite
mmoire cache matrielle spciale la consultation rapide.
Contiennent seulement quelques entres de la table
Recherche en parallle
Page number Frame number

Traduction de ladresse (A, A )


Si A est dans les registres associatifs
alors le numro de cadre est disponible immdiatement
sinon obtenir le numro de cadre partir de la table de pages en mmoire
Si le TLB est plein, le SE doit slectionner une entre devant tre remplace

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.39/71


Pagination multi niveaux (Multilevel
Paging)

La plupart des SE moderne supportent un espace logique trs grand (table de


pages excessivement grande)
Solution: Subdiviser les pages
1. Pagination 2 niveaux
2. Gnralisation: plusieurs niveaux
Performance: Chaque niveau est stock comme une table spare en mmoire.
Ainsi, la conversion dune adresse logique une adresse physique peut
demander 4 accs mmoire.
Mmoire cache permet une performance raisonnable.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.40/71


Exemple

Second-level
page tables

Page
table for
the top
4M of
memory

Top-level
page table
1023

6
Bits 10 10 12
5
PT1 PT2 Offset 4
3
(a) 2
1
0

1023

6
5
4
3 To
pages
2
1
0

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.41/71


(b)
Exemple

Adresse virtuelle de 32 bits partitionne en deux champs de 10 bits (P T 1 et


P T 2) et un champs de 12 bits (offset).
offset de 12 bits, donc pages de 4KBytes
Total de 220 pages
Table de pages niveau 1, avec 1024 entres, correspondant au champs P T 1.
Lentre localise par lindexation de la table des pages de niveau 1 produit
ladresse ou le numro de cadre de page de la table de pages du niveau 2.
Lentre 0 de la table de page du niveau 1 pointe sur la table des pages du corps
du programme.
Lentre 1 de la table de page du niveau 1 pointe sur la table des pages des
donnes.
Lentre 1023 de la table de page du niveau 1 pointe sur la table des pages de la
pile.
Les autres (griss) ne sont pas utilises.
Le champs P T 2 est utilis comme index dans la table de page du niveau 2
slectionn pour trouver le numro de cadre de page de
Syst`emes la page
dexploitation elle-mme.
- M
rian Halfeld-Ferrari p.42/71
Structure dune entre de table des pages

Caching
disabled Modified Present/absent

?? Referenced Protection

La taille varie dune machine lautre.


Page frame number

Champ le plus important est le numro de cadre de page (le but est de le
trouver).
Bit de prsence/absence: quand il est 0 la page virtuelle laquelle lentre
appartient nest pas en mmoire.
Bits de protection prcisent quelle sorte daccs sont permis. Dans sa forme la
plus simple ce champ contient un seul bit (valeur 0 pour lecture/criture et 1 pour
lecture seulement). Un schma plus sophistiqu propose 3 bits (un pour la
lecture, un pour lcriture et un pour lexcution).

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.43/71


Structure dune entre de table des pages

Bits modifis et rfrencs conservent une trace de lutilisation de la page.


Dirty bit (modifi): Quand une page est accde en criture, le bit est mis 1.
Ce bit est ncessaire quand le SE dcide de rcuprer un cadre de page:
Si la page a t modifie, elle doit tre crite dans le disque.
Si elle nest pas modifie, on peut juste labandonner.
Bit rfrenc: Mis 1 chaque fois quun page est consulte, que se soit en
lecture ou en criture. Cette valeur aide le SE choisir la page vincer quand
un dfaut de page est gnr.
Les pages qui ne sont pas en cours dutilisation sont des meilleurs candidates
que les autres et ce bit joue un rle important dans plusieurs algorithmes de
remplacements de page.
Bit qui permet dinhiber le cache pour une page.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.44/71


Table de pages inverse

Une entre pour chaque page relle (cadre).


Chaque entre est constitue de ladresse virtuelle de la page stocke dans cet
emplacement de mmoire relle, avec de linformation propos du processus
auquel appartient cette page.
Une seule table de pages dans le systme: elle possde une seule entre pour
chaque page de mmoire physique.
Rduction de la quantit de mmoire requise pour stocker chaque table.
Augmentation de la quantit de temps ncessaire pour chercher la table quand il
se produit une rfrence une page.
Utilisation dune table de hashage (hash table) pour limiter la recherche une -
ou peu - dentres dans la table.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.45/71


Table de pages traditionnelle table de
pages inverse

Traditional page
table with an entry
for each of the 252
pages
52
2 -1

256-MB physical
memory has 216
4-KB page frames Hash table
16
2 -1 216 -1

0 0 0
Indexed Indexed
by virtual by hash on Virtual Page
page virtual page page frame

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.46/71


Remplacement de pages

Quand une page nest pas en mmoire...

1. Trouver lemplacement de la page dsire sur disque.


2. Trouver un cadre de page libre.
(a) Sil existe un cadre libre, lutiliser.
(b) Sinon, utiliser un algorithme de remplacement de pages pour
slectionner un cadre (victime).
(c) Enregistrer la page victime dans le disque, modifier les tables de pages et
de cadres.
3. Lire la page dsire dans le cadre libr, modifier les tables de pages et de
cadres.
4. Redmarrer le processus utilisateur.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.47/71


Algorithmes de remplacement des pages

Nous souhaitons lalgorithme avec le taux de dfaut de page le plus bas.


valuation: excuter lalgorithme sur une squence particulire (reference string)
de rfrences mmoire et calculer le nombre de dfauts de pages.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.48/71


Algorithme optimal

Remplacer la page qui mettra le plus de temps tre de nouveau utilise.


Impossible implanter: il requiert une connaissance future de la chane de
rfrences.
Utilis pour effectuer des tudes comparatives.

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.49/71


Algorithme FIFO

Associe chaque page le moment o lon a ramen cette page en mmoire.


Quand on doit remplacer une page, cest la plus ancienne que lon slectionne.
Sa performance nest pas toujours bonne.
Beladys anomaly
plus de cadre 6 moins de dfaut de pages

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.50/71


Algorithme LRU (least-recently used)

Remplacer la page que na pas t utilise pendant la plus longue priode de


temps.
Trs utilis.
Problme: savoir comment implanter, demande une forte assistance matrielle.
Implantation via compteurs:
Chaque page possde un compteur.
Chaque fois que lon effectue une rfrence une page les contenus de
lhorloge sont copis dans le compteur.
Nous remplaons la page avec le moment dutilisation le plus petit.
Implantation par pile:
Maintenir une pile de numro de pages.
Chaque fois que lon rfrence une page, on la supprime et on la met au
somment de la pile (sommet la pile rcemment utilise; base page
LRU)
Implantation comme une liste double chanage avec un pointeur sur la
tte et un autre sur la queue. Syst`emes dexploitation - Mrian Halfeld-Ferrari p.51/71
Algorithme de comptage

Compteur avec le nombre de rfrences chaque page


LFU (least frequently used)
MFU (most frequently used)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.52/71


Allocation de cadres de pages

Nombre de cadres de pages (frames): dfini par larchitecture.


Nombre maximum: dtermin par la quantit de mmoire physique disponible.

Allocation quitable

m cadres
n processus
m/n cadres pour chaque processus

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.53/71


Allocation de cadres de pages

Allocation proportionnelle

Allouer la mmoire disponible chaque processus selon sa taille.


si : taille de la mmoire virtuelle pour pi .
S=
P
si .
m: nombre total de cadres.
ai : cadre allous pi .
ai = si /S m.
Nous devons arrondir chaque ai pour que ce soit un entier suprieur au nombre
minimal de cadres requis par le jeu dinstructions. La somme des ai ne doit pas
dpasser m.

Allocation prioritaire
Utiliser un schma dallocation proportionnelle o la quantit de cadres dpend non de
la taille des processus mais de leurs priorits.
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.54/71
Allocation globale et allocation locale

Remplacement global: un processus slectionne un cadre de page de


remplacement partir de lensemble de tous les cadres de pages
Un processus ne peut pas contrler son propre taux de dfaut de pages
Lensemble de pages en mmoire pour un processus ne dpend pas
seulement du comportement de la pagination pour ce processus, mais
aussi du comportement de la pagination pour les autres processus
Remplacement local: un processus slectionne un cadre de page de
remplacement partir de son propre ensemble des cadres de pages
Le nombre de cadres allous un processus ne change pas

Mthode courante: Remplacement global

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.55/71


Exemple: Allocation globale et allocation
locale

Age
A0 10 A0 A0
A1 7 A1 A1
A2 5 A2 A2
A3 4 A3 A3
A4 6 A4 A4
A5 3 A6 A5
B0 9 B0 B0
B1 4 B1 B1
B2 6 B2 B2
B3 2 B3 A6
B4 5 B4 B4
B5 6 B5 B5
B6 12 B6 B6
C1 3 C1 C1
C2 5 C2 C2
C3 6 C3 C3
(a) (b) (c)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.56/71


Page Fault Frequency

Si un algorithme global est employ, il est possible de dmarrer chaque


processus avec un nombre de pages proportionnel la taille du processus,
mais lallocation devra tre rajuste dynamiquement pendant lexcution
du processus.
Pour grer cette allocation: algorithme Page Fault Frequency
Le PFF indique quand augmenter ou dimunuer lallocation de page pour un
processus. Contrle ta taille de lensemble de lallocation.
Pour la plupart des algorithmes de remplacements de page le nombre de dfauts
de pages diminue lorsque le nombre de pages alloues augmente.
Pour mesurer le taux de dfauts de page: compter le nombre de dfauts de
pages par seconde.
Limite suprieure: taux excessivement lev de dfauts de pages.
Limite infrieure: taux de dfauts de pages si base que nous pouvons dduire
que le processus a trop de mmoire.
PFF essaie de maintenir un taux de pagination dans les limites acceptables.
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.57/71
Page Fault Frequency

Page faults/sec
A

Number of page frames assigned

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.58/71


croulement (Trashing)

Haute activit de pagination: un processus passe plus de temps paginer qu


excuter.
Problme de performance:
Diminution de lutilisation de la CPU.
SE pense quil doit augmenter le niveau de multiprogrammation.
Un nouveau processus est ajout au systme.
Pour prvenir lcroulement, nous devons fournir un processus autant de
cadres quil en aura besoin.
Plusieurs moyens pour savoir combien de cadres un processus a besoin.
La stratgie de lensemble de travail commence par la dfinition du modle
de localisation de lexcution dun processus.
Modle de localisation: Lorsquun processus sexcute, il se dplace de
localisation en localisation
Localisation: Ensemble de pages utilises activement ensemble
Un programme est gnralement constitu de plusieurs localisations qui
peuvent se chevaucher. Syst`emes dexploitation - Mrian Halfeld-Ferrari p.59/71
Modle de lensemble de travail

Le modle de lensemble de travail est fond sur lhypothse de la localisation.


Paramtre : fentre de lensemble de travail (working-set window)
Il sagit dexaminer les rfrences aux pages les plus rcentes.
Ensemble de travail: ensemble de pages dans les rfrences aux pages les
plus rcentes.
Lexactitude de lensemble de travail dpend de :
1. trop petit
il ne renfermera pas toute la localisation
2. trop grand
il peut chevaucher plusieurs localisations
3. =
lensemble de travail est la totalit de pages rfrences pendant
lexcution du programme

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.60/71


wssi (Working-set size of process Pi ): taille de lensemble de travail (nombre de
pages).
La demande totale de cadres est
P
D= (wssi )

Si D > m alors Trashing (m : nombre de cadres disponibles).


Lemploi du modle Working-set
SE surveille le Working-set de chaque processus et alloue cet
Working-set les cadre suffisants (correspondant wssi ).
Si D > m alors le SE slectionne un processus arrter.
Cette stratgie de lensemble de travail vite lcroulement tout en gardant le
degr de multiprogrammation le plus haut possible.
Difficult: surveillance

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.61/71


Autres considrations

Le choix dun algorithme de remplacement et la politique dallocation sont les dcisions


principales effectuer pour un systme de pagination. Il existe galement beaucoup
dautres considrations

Pr-pagination
Taille de la page
Structure des programmes
Verrouillage des E/S

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.62/71


Segmentation

Lutilisateur prfre voir la mmoire comme un ensemble de segments de taille


variable, sans quil ait ncessairement un ordre entre les segments.
La segmentation est un schma de gestion de la mmoire qui supporte cette
vision.
Un espace adresse logique est un ensemble de segments.
Chaque segment possde un nom (les segments sont numrots) et une
longueur.
Adresse logique:
h numro de segment, dplacementi

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.63/71


Segmentation

20K

16K 16K

12K 12K 12K 12K


Symbol
table
8K 8K 8K Parse 8K
tree
Source Call
text stack
4K 4K 4K 4K

Constants
0K 0K 0K 0K 0K
Segment Segment Segment Segment Segment
0 1 2 3 4

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.64/71


Table de segments (Segment Table)

Transforme des adresses deux dimensions (dfinies par lutilisateur) en


adresse une dimension.
Chaque adresse possde:
1. Base: Contient ladresse physique de dbut o le segment rside en
mmoire
2. Limite: spcifie la longueur du segment

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.65/71


Implmentation: segmentation pure

????
????
??
(3K) (3K)
Segment 4 Segment 4
(7K) (7K) Segment 5 Segment 5 (10K)
(4K) (4K)
(4K)
Segment 3 Segment 3 Segment 3
Segment 5
(8K) (8K) (8K) Segment 6 (4K)
(4K)
Segment 6
Segment 2 Segment 2 Segment 2 Segment 2 (4K)
? (5K)

Segment 1
(8K)

Segment 0
(4K)
(5K)
(3K)

Segment 7
(5K)
Segment 0
(4K)
(5K)
(3K)

Segment 7
(5K)
Segment 0
(4K)
(5K)
(3K)

Segment 7
(5K)
Segment 0
(4K)
Segment 2
(5K)
Segment 7
(5K)
Segment 0
(4K)
(a) (b) (c) (d) (e)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.66/71


Implmentation

Segment table base register (STBR): pointe vers la table de segments


Segment table length register (STLR): indique la longueur de la table de
segments
Adresse logique (s, d):
s est lgale si s < ST LR
Si s est lgale alors calculer ladresse physique en utilisant ST BR
Ralentissement solution: registre associatifs

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.67/71


Protection et partage

Protection

Association de la protection avec le segment


Le matriel de conversion de la mmoire vrifie les bits de protection associs
chaque entre de la table de segments pour empcher des accs illgaux la
mmoire

Partage

Les segments sont partags quand les entres dans les tables de segments de 2
processus diffrents pointent vers les mmes emplacement
Chaque processus possde une table de segments

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.68/71


Segmentation Pagination

Consideration Paging Segmentation

Need the programmer be aware No Yes


that this technique is being used?

How many linear address 1 Many


spaces are there?

Can the total address space Yes Yes


exceed the size of physical
memory?

Can procedures and data be No Yes


distinguished and separately
protected?

Can tables whose size fluctuates No Yes


be accommodated easily?
Is sharing of procedures No Yes
between users facilitated?

Why was this technique To get a large To allow programs


invented? linear address and data to be broken
space without up into logically
having to buy independent address
more physical spaces and to aid
memory sharing and
protection
Syst`emes dexploitation - Mrian Halfeld-Ferrari p.69/71
Segmentation avec pagination

Microprocesseurs:
1. Ligne Motorola: 68000
2. Intel 80X86
Modle de mmoire fusionn (mlange de pagination et segmentation)
Cette combinaison est mieux illustre par 2 architectures diffrentes
1. MULTICS
2. OS/2 (version 32 bits)

Syst`emes dexploitation - Mrian Halfeld-Ferrari p.70/71


Syst`emes dexploitation - Mrian Halfeld-Ferrari p.71/71