Vous êtes sur la page 1sur 91

Cours Systme dexploitation

Niveau : GL2 & IIA2


Enseignant : Mona LAROUSSI
Bureau : 4 A8-28
E-mail: mona.laroussi@insat.rnu.tn

Gestion de la mmoire
Chapitre 6

Dans ce chapitre nous verrons


que, pour optimiser lutilisation de
la mmoire, les programmes sont
parpills en mmoire selon des
mthodes diffrentes:
Pagination, segmentation

Gestion de mmoire: objectifs


Optimisation de l utilisation de la mmoire principale =
RAM
Les plus grand nombre possible de processus actifs
doit y tre gard, de faon optimiser le
fonctionnement du systme en multiprogrammation
garder le systme le plus occup possible, surtout lUCT
sadapter aux besoins de mmoire de l usager
allocation dynamique au besoin

Gestion de la mmoire: concepts dans ce


chapitre
Adresse physique et adresse logique
mmoire physique et mmoire logique

Remplacement
Allocation contigu
partitions fixes
variables

Pagination
Segmentation
Segmentation et pagination combines
Groupes de paires (buddy systems)

Mmoire/Adresses physiques et
logiques
Mmoire physique:
la mmoire principale RAM de la machine

Adresses physiques: les adresses de cette mmoire


Mmoire logique: lespace d`adressage dun programme
Adresses logiques: les adresses dans cet espace
Il faut sparer ces concepts car normalement, les programmes
sont chargs de fois en fois dans positions diffrentes de
mmoire
Donc adresse physique adresse logique

Traduction adresses logiques


physiques

adr.

MMU: unit de gestion de mmoire


unit de traduction adresses
(memory management unit)

Vue de lusager
Normalement, nous avons plusieurs types dadressages p.ex.
les adresses du programmeur (noms symboliques) sont traduites au
moment de la compilation dans des
adresses logiques
ces adresses sont traduites en adresses physiques par lunit de
traduction adresses (MMU)

Liaison (Binding) dadresses logiques et


physiques (instructions et donnes)
La liaison des adresses logiques aux adresses physiques peut
tre effectue en moments diffrents:
Compilation: quand ladresse physique est connue au moment de la
compilation (rare)
p.ex. parties du SE

Chargement: quand ladresse physique o le progr est charg est


connue, les adresses logiques peuvent tre traduites (rare
aujourdhui)
Excution: normalement, les adresses physiques ne sont connues
quau moment de l excution
p.ex. allocation dynamique

Deux concepts de base


Chargement = Loading. Le programme, ou une de ses parties,
est charg en mmoire physique, prt excuter.
Statique (avant lexcution)
Dynamique (pendant lexcution)

dition de liens = Liaison (enchanement) des diffrentes parties


dun programme pour en faire une entit excutable.
les rfrences entre modules diffrents doivent tre traduites
statique (avant l`excution)
dynamique (sur demande pendant excution)
N.B. parties du programme = modules = segments = sousprogrammes =
objets, etc.

10

dition de liens: adressage entre


modules
A
Progr.
Princ.

C
Donnes

JUMP(D, 100)

LOAD(C,250)

Donnes

D
Sousprogr.

Espace
dadressage
logique
LOAD(B,50)

Les adresses sont en deux parties :


(No de module, Dcalage dans le module)
doivent tre traduites pour permettre adressage par l UCT

11

Adressage indirecte
peut tre utilis dans cette mthode
mot adress

1: adresse indirecte
code op

adresse

le mot contient une adresse

instruction
12

Cette mthode supporte lallocation


dynamique
Si le module B na pas encore t charg, la rfrence B dans
le tableau des noms externes de A contiendra l information
ncessaire pour trouver et charger B.
Aprs avoir fait a, cette rfrence sera traduite dans une
adresse de mmoire physique.
Si B reste toujours au mme endroit, nous pouvons mettre dans
A directement ladresse finale (flche pointille), sinon nous
pouvons continuer de rejoindre B par adressage indirecte

13

Aspects du chargement
Trouver de la mmoire libre pour un module de
chargement: contigu ou non

Traduire les adresses du programme et effectuer les


liaisons par rapport aux adresses o le module est
charg

14

Chargement (pas contigu ici) et traduction


dadresses
0
Alloc. de mm.
JUMP 328

Autres
programmes

JUMP 10328

500K
Mmoire logique

Mm. physique
15

Liaison et chargement

Progr.
Source

Compilateur

Progr.
excutable

Autres
Mods
(librairie)

Modules
Objet

diteur
de liens

Chargeur

Modules
Lis

NB: on fait l`hypothse que tous les modules soient connus au dbut
Souvent, ce nest pas le cas chargement dynamique

16

Traduction dadresses logique


physique
Dans les premiers systmes, un programme tait toujours charg dans
la mme zone de mmoire
La multiprogrammation et lallocation dynamique ont engendr le besoin
de charger un programme dans positions diffrentes
Au dbut, ceci tait fait par le chargeur (loader) qui changeait les
adresses avant de lancer l excution
Aujourdhui, ceci est fait par le MMU au fur et mesure que le progr. est
excut
Ceci ne cause pas dhausse de temps d excution, car le MMU agit en
parallle avec autres fonctions d UCT
P.ex. l MMU peut prparer l adresse d une instruction en mme temps
que l UCT excute l instruction prcdente

17

Recouvrement ou overlay
Dans quelques systmes surtout dans le pass), la permutation de modules
(swapping) dun mme programme pouvait tre gre par l usager

Deux parties dun programme qui utilisent la mme zone de mmoire

18

Permutation de programmes (swapping)


Un programme, ou une partie de programme, peut tre
temporairement enlev de mmoire pour permettre
lexcution dautres programmes (chap. 4)
il est mis dans mmoire secondaire, normal. disque

19

Permutation de programmes (swapping)

20

Affectation contigu de mmoire


Nous avons plusieurs programmes excuter
Nous pouvons les charger en mmoire les uns aprs les autres
le lieu o un programme est lu nest connu quau moment du
chargement

Besoins de matriel: registres translation et registres bornes

Lallocation contigu nest plus utilise aujourdhui pour la mmoire centrale, mais les
concepts que nous verrons sont encore utiliss pour lallocation de fichiers sur disques

21

Affectation contigu de mmoire


SE
progr. 1
progr. 2
disponible
progr. 3
Nous avons ici 4 partitions pour des programmes chacun est charg dans une seule zone de mmoire

22

Registres bornes (ou limites) et translation


dans MMU
adresse limite de la
partition o le progr.
en xec. se trouve

adresse de base de
la partition o le
progr. en xec. se
trouve

23

Fragmentation: mmoire non utilise


Un problme majeur dans l`affectation contigu:
Il y a assez d espace pour excuter un programme, mais il
est fragment de faon non contigu
externe: l`espace inutilis est entre partitions
interne: l espace inutilis est dans les partitions

24

Partitions fixes
Mmoire principale
subdivise en rgions
distinctes: partitions
Les partitions sont soit de
mme taille ou de tailles
ingales
Nimporte quel progr. peut
tre affect une partition qui
soit suffisamment grande

(Stallings)

25

Algorithme de placement pour


partitions fixes

(Stallings)

Partitions de tailles ingales:


utilisation de plusieurs files
assigner chaque
processus la partition de
la plus petite taille pouvant
le contenir
1 file par taille de partition
tente de minimiser la
fragmentation interne
Problme: certaines files
seront vides sil ny a pas
de processus de cette
taille (fr. externe)

26

Algorithme de placement pour


partitions fixes
Partitions de tailles ingales:
utilisation dune seule file
On choisit la plus petite
partition libre pouvant
contenir le prochain
processus
le niveau de
multiprogrammation
augmente au profit de la
fragmentation interne

(Stallings)

27

Partitions fixes
Simple, mais...
Inefficacit de lutilisation de la mmoire: tout
programme, si petit soit-il, doit occuper une partition
entire. Il y a fragmentation interne.
Les partitions tailles ingales attnue ces problmes
mais ils y demeurent...

28

Partitions dynamiques
Partitions en nombre et tailles variables
Chaque processus est allou exactement la taille de
mmoire requise
Probablement des trous inutilisables se formeront dans
la mmoire: cest la fragmentation externe

29

Partitions dynamiques: exemple


(Stallings)

(d) Il y a un trou de 64K aprs avoir charg 3 processus: pas assez


despace pour autre processus
Si tous les proc se bloquent (p.ex. attente dun vnement), P2 peut tre
permut et P4=128K peut tre charg.
Swapped out

30

Partitions dynamiques: exemple (Stallings)

(e-f) Progr. 2 est suspendu, Progr. 4 est charg. Un trou de 224-128=96K est cr (fragmentation
externe)
(g-h) P1 se termine ou il est suspendu, P2 est repris sa place: produisant un autre trou de 320224=96K...
Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation externe
COMPRESSION pour en faire un seul trou de 256K
31

Algorithmes de Placement

pour dcider de lemplacement


du prochain processus
But: rduire lutilisation de la
compression (prend du temps...)
Choix possibles:
Best-fit: choisir le plus petit
trou
Worst fit: le plus grand
First-fit: choisir 1er trou
partir du dbut
Next-fit: choisir 1er trou
partir du dernier placement
(Stallings)
32

Algorithmes de placement: commentaires


Quel est le meilleur?
critre principal: diminuer la probabilit de situations o un processus ne
peut pas tre servi, mme s il y a assez de mmoire...

Best-fit: cherche le plus petit bloc possible: le trou cr est le plus petit
possible
la mmoire se remplit de trous trop petits pour contenir un programme

Worst-fit: le trous cres seront les plus grands possibles


Next-fit: les allocations se feront souvent la fin de la mmoire
La simulation montre qu` il ne vaut pas la peine d utiliser les algo les
plus complexes... donc first fit

33

Compression (compaction)
Une solution pour la fragmentation externe
Les programmes sont dplacs en mmoire de faon rduire
1 seul grand trou plusieurs petits trous disponibles
Effectue quand un programme qui demande dtre excut ne
trouve pas une partition assez grande, mais sa taille est plus
petite que la fragmentation externe existante
Dsavantages:
temps de transfert programmes
besoin de rtablir tous les liens entre adresses de diffrents
programmes

34

Allocation non contigu


A fin de rduire la fragmentation, tous les ordis daujourdhui utilisent
lallocation non contigu
diviser un programme en morceaux et permettre l`allocation spare de
chaque morceau
les morceaux sont beaucoup plus petits que le programme entier et donc
permettent une utilisation plus efficace de la mmoire
les petits trous peuvent tre utiliss plus facilement

Il y a deux techniques de base pour faire ceci: la pagination et la


segmentation
la segmentation utilise des parties de programme qui ont une valeur
logique (des modules)
la pagination utilise des parties de programme arbitraires (morcellement
du programmes en pages de longueur fixe).
elles peuvent tre combines

Je trouve que la segmentation est plus naturelle, donc je commence par


celle-ci

35

Les segments sont des parties logiques du


progr.

A
Progr.
Princ.

JUMP(D, 100)

LOAD(C,250)

Donnes

C
Donnes

4 segments: A, B, C, D

D
Sousprogr.

LOAD(B,50)

36

Les segments comme units dalloc


mmoire
0
3

0
1
2
3

1
2

espace usager

mmoire physique

tant donn que les segments sont plus petits que les programmes entiers, cette
technique implique moins de fragmentation (qui est externe dans ce cas)
37

Mcanisme pour la segmentation


Un tableau contient ladresse de dbut de tous les segments dans un processus
Chaque adresse dans un segment est ajoute l adresse de dbut du segment par la MMU

0
3

segment courant

Adr de 3
Adr de 2
Adr de 1
Adr de 0
Tableau de descripteurs
de segments

1
2

mmoire physique

38

Dtails
Ladresse logique consiste d une paire:
<No de segm, dcalage>
o dcalage est l adresse dans le segment

Le tableau des segments contient: descripteurs de segments


adresse de base
longueur du segment
Infos de protection, on verra

Dans le PBC du processus il y aura un pointeur l adresse en


mmoire du tableau des segments
Il y aura aussi l dedans le nombre de segments dans le
processus
Au moment de la commutation de contexte, ces infos seront
charges dans les registres appropris dUCT

39

1 seule copie en mmoire


du segm partag
40

Traduction d`adresses dans la segmentation

Aussi, si d > longueur: erreur!

41

Le mcanisme en dtail (implant dans le


matriel)
Dans le programme

Stallings

Adresse finale

42

valuation de la segmentation simple


Avantages: lunit dallocation de mmoire est
plus petite que le programme entier
une entit logique connue par le programmeur
les segments peuvent changer de place en mmoire
la protection et le partage de segments sont aiss (en principe)

Dsavantage: le problme des partitions dynamiques:


La fragmentation externe nest pas limine:
trous en mmoire, compression?

Une autre solution est d`essayer simplifier le mcanisme en utilisant


units d`allocation mmoire de tailles gales
PAGINATION

43

Segmentation contre pagination

Le pb avec la segmentation est que lunit dallocation


de mmoire (le segment) est de longueur variable
La pagination utilise des units dallocation de
mmoire fixe, liminant donc ce pb

44

Pagination simple
La mmoire est partitionne en petits morceaux de mme taille:
les pages physiques ou cadres ou frames
Chaque processus est aussi partitionn en petits morceaux de
mme taille appels pages (logiques)
Les pages logiques dun processus peuvent donc tre assigns
aux cadres disponibles nimporte o en mmoire principale
Consquences:
un processus peut tre parpill nimporte o dans la mmoire physique.
la fragmentation externe est limine

45

Exemple de chargement de processus

Supposons que le processus B se termine ou est


suspendu

Stallings

46

Exemple de chargement de processus


Nous pouvons maintenant
transfrer en mmoire un progr.
D, qui demande 5 cadres
bien qu`il ny ait pas 5
cadres contigus disponibles
La fragmentation externe est
limite au cas que le nombre de
pages disponibles nest pas
suffisant pour excuter un
programme en attente
Seule la dernire page dun
progr peut souffrir de
fragmentation interne (moy. 1/2
cadre par proc)

47

Tableaux de pages

Les entres dans le tableau de


pages sont aussi appeles
descripteurs de pages
48

Tableaux de pages

Stallings

Le SE doit maintenir une table de pages pour chaque processus


Chaque descripteur de pages contient le numro de cadre o la page
correspondante est physiquement localise
Une table de pages est indexe par le numro de la page afin
dobtenir le numro du cadre
Une liste de cadres disponibles est galement maintenue (free frame
list)

49

Traduction dadresses
Ladresse logique est facilement traduite en
adresse physique
car la taille des pages est une puissance de
2
les pages dbutent toujours des adresses
qui sont puissances de 2
qui ont autant de 0s droite que la longueur
de loffset
donc ces 0s sont remplacs par loffset

Ex: si 16 bits sont utiliss pour les adresses et


que la taille dune page = 1K: on a besoins de
10 bits pour le dcalage, laissant ainsi 6 bits pour
le numro de page
Ladresse logique (n,m) est traduite l adresse
physique (k,m) en utilisant n comme index sur la
table des pages et en le remplaant par
l adresse k trouve
m ne change pas
50

Stallings

Mcanisme: matriel

51

Traduction dadresse (logique-physique) pour la pagination

Stallings
52

Trad. dadresses: segmentation et pagination


Tant dans le cas de la segmentation, que dans le cas de la
pagination, nous ajoutons le dcalage ladresse du segment ou
page.
Cependant, dans la pagination, laddition peut tre faite par
simple concatnation:

11010000+1010
=

1101 1010

53

Problmes defficacit
La traduction d`adresses, y compris la recherche des adresses
des pages et de segments, est excute par des mcanismes de
matriel
Cependant, si la table des pages est en mmoire principale,
chaque adresse logique occasionne au moins 2 rfrences la
mmoire
Une pour lire lentre de la table de pages
Lautre pour lire le mot rfrenc

Le temps d`accs mmoire est doubl...

54

Pour amliorer l`efficacit


O mettre les tables des pages (les mmes ides s appliquent aussi
aux tabl. de segm)

Solution 1: dans des registres de UCT.


avantage: vitesse
dsavantage: nombre limit de pages par proc., la taille de la mm.
logique est limite

Solution 2: en mmoire principale


avantage: taille de la mm. logique illimite
dsavantage: mentionn

Solution 3 (mixte): les tableaux de pages sont en mmoire


principale, mais les adresses les plus utilises sont aussi dans
des registres d`UCT.

55

Tableaux de pages deux niveaux


(quand les tableaux de pages sont trs grands, ils peuvent tre eux mmes pagins)

tableau de pages du
tableau de pages

56

Tableaux de pages deux niveaux


La partie de l adresse qui appartient au numro de page est ellemme divise en 2

57

Partage de pages:
3 proc. partageant un diteur, sur des donnes prives chaque proc

1 seule copie de lditeur


en mmoire au lieu de 3
58

Segmentation simple vs Pagination


simple
La pagination se proccupe seulement du problme du chargement, tandis que
La segmentation vise aussi le problme de la liaison
La segmentation est visible au programmeur mais la pagination ne lest pas
Le segment est une unit logique de protection et partage, tandis que la page ne
lest pas
Donc la protection et le partage sont plus aiss dans la segmentation

La segmentation requiert un matriel plus complexe pour la traduction dadresses


(addition au lieu d`enchanement)
La segmentation souffre de fragmentation externe (partitions dynamiques)
La pagination produit de fragmentation interne, mais pas beaucoup (1/2 cadre par
programme)
Heureusement, la segmentation et la pagination peuvent tre combines

59

Conclusions sur Gestion Mmoire


Problmes de:
fragmentation (interne et externe)
complexit et efficacit des algorithmes

Mthodes
Allocation contigu
Partitions fixes
Partitions variables
Groupes de paires

Pagination
Segmentation

Problmes en pagination et segmentation:


taille des tableaux de segments et pages
pagination de ces tableaux
efficacit fournie par Translation Lookaside Buffer

Les diffrentes mthodes dcrites dans ce chapitre, et dans le chapitre suivant,


sont souvent utilises conjointement, donnant lieu a des systmes complexes

60

Chapitre 6
Mmoire virtuelle

61

La mmoire virtuelle
fin quun programme soit excut, il ne doit pas
ncessairement tre tout en mmoire centrale!
Seulement les parties qui sont en excution ont besoin dtre en
mmoire centrale
Les autres parties peuvent tre sur mm secondaire (p.ex.
disque), prtes tre amenes en mmoire centrale sur
demande
Mcanisme de va-et-vient ou swapping

Ceci rend possible lexcution de programmes beaucoup plus


grands que la mmoire physique
Ralisant une mmoire virtuelle qui est plus grande que la mmoire
physique

62

De la pagination et segmentation la mmoire


virtuelle
Un processus est constitu de morceaux (pages ou segments) ne ncessitant pas
doccuper une rgion contigu de la mmoire principale
Rfrences la mmoire sont traduites en adresses physiques au moment
dexcution
Un processus peut tre dplac diffrentes rgions de la mmoire, aussi mmoire
secondaire!

Donc: tous les morceaux dun processus ne ncessitent pas dtre en mmoire
principale durant lexcution
Lexcution peut continuer condition que la prochaine instruction (ou donne) est
dans un morceau se trouvant en mmoire principale

La somme des mmoires logiques des procs en excution peut donc


excder la mmoire physique disponible
Le concept de base de la mmoire virtuelle

Une image de tout lespace dadressage du processus est garde en mmoire


secondaire (normal. disque) do les pages manquantes pourront tre prises au
besoin
Mcanisme de va-et-vien ou swapping
63

Mmoire virtuelle:

rsultat dun mcanisme qui combine


la mmoire principale et les mmoires secondaires

Tableau de pages

64

Pages en RAM ou sur disque


Page A en RAM et sur
disque

Page E seulement sur


disque

65

Nouveau format du tableau des pages (la mme ide


peut tre applique aux tableaux de segments)

Si la page est en mm. princ.,


ceci est une adr. de
mm. Principale

Bit
Adresse de la
prsent
page

bit prsent
1 si en mm. princ.,
0 si en mm second.

sinon elle est une adresse de


mmoire secondaire

Au dbut, bit prsent = 0 pour toutes les pages

66

Mmoire Virtuelle: Pourrait tre norme!


Ex: 16 bits sont ncessaires pour adresser une mmoire physique de 64KB
En utilisant des pages de 1KB, 10 bits sont requis pour le dcalage
Pour le numro de page de ladresse logique nous pouvons utiliser un
nombre de bits qui excde 6, car toutes les pages ne doivent pas tre en
mmoire simultanment
Donc la limite de la mmoire virtuelle est le nombre de bits qui peuvent tre
rservs pour l adresse
Dans quelques architectures, ces bits peuvent tre inclus dans des registres
La mmoire logique est donc appele mmoire virtuelle
Est maintenue en mmoire secondaire
Les pices sont amenes en mmoire principale seulement quand ncessaire, sur
demande

67

Mmoire Virtuelle
Pour une meilleure performance, la mmoire virtuelle se trouve
souvent dans une rgion du disque qui est nest pas gre par le
systme de fichiers
Mmoire va-et-vient, swap memory

La mmoire physique est celle qui est rfrence par une


adresse physique
Se trouve dans le RAM et cache

La traduction de ladresse logique en adresse physique est


effectue en utilisant les mcanismes tudis dans le chapitre
prcdent.

68

Mmoire virtuelle: le mcanisme de va-etvient

Tableau de pages

69

Temps moyen daccs la mmoire


Supposons que:
accs en mmoire: 100 nanosecs
temps de traitement de dfaut de page: 25 millisecs = 25,000,000 nanosecs

lecture-criture disque)

(inclut le temps de

p: probabilit de trouver une page en mmoire (dfaut) (quantit entre 0 et 1)


Temps moyen daccs mmoire:
p x 100 + (1-p) x 25,000,000

(pas de dfaut + dfaut)

En utilisant la mme formule, nous pouvons dterminer quel est le nombre de dfauts que
nous pouvons tolrer, si un certain niveau de performance est dsir (v. manuel).
P.ex. avec ces params, si le ralentissement cause de pagination ne peut pas excder 10%,
1 seul dfaut de pagination peut tre tolr pour chaque 2,500,000 accs de mmoire.
(Temps daccs disque raliste
aujourdhui= autour de 10ms)

70

Quand la RAM est pleine mais nous


avons besoin d`une page pas en RAM

71

La page victime...

72

Remplacement de pages
Quoi faire si un processus demande une nouvelle page et il ny a
pas de cadres libres en RAM?
Il faudra choisir une page dj en mmoire principale,
appartenant au mme ou un autre processus, quil est possible
d enlever de la mmoire principale
la victime!

Un cadre de mmoire sera donc rendu disponible


videmment, plusieurs cadres de mmoire ne peuvent pas tre
`victimiss`:
p.ex. cadres contenant le noyau du SE, tampons d E/S...

73

Bit de modification , dirty bit


La victime doit-elle tre rcrite en mmoire
secondaire?
Seulement si elle a t change depuis qu`elle a t
amene en mmoire principale
sinon, sa copie sur disque est encore fidle

Bit de modif sur chaque descripteur de page indique


si la page a t change
Donc pour calculer le cot en temps dune rfrence
la mmoire il faut aussi considrer la probabilit
quune page soit sale et le temps de rcriture dans ce
cas

74

Algorithmes de remplacement pages


Choisir la victime de faon minimiser le taux de
dfaut de pages
pas vident!!!

Page dont nous n`aurons pas besoin dans le futur?


impossible savoir!
Page pas souvent utilise?
Page qui a t dj longtemps en mmoire??
etc. nous verrons...

75

Critres dvaluation des algorithmes


Les algorithmes de choix de pages remplacer
doivent tre conus de faon minimiser le taux de
dfaut de pages long terme
Mais ils ne peuvent pas impliquer des inefficacits
Ni lutilisation de matriel dispendieux

76

Critres defficacit
Il est intolrable dexcuter un algorithme complexe
chaque fois quune opration de mmoire est
excute
Ceci impliquerait des accs additionnels de mmoire

Cependant ceci peut se faire chaque fois quil y a une


faute de pagination
Les oprations qui doivent tre faites chaque accs
de mmoire doivent tre cbles dans le matriel

77

Explication et valuation des algorithmes


Nous allons expliquer et valuer les algorithmes en utilisant la
chane de rfrence pages suivante (prise du livre de Stallings):

2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2
Attention: les squences dutilisation pages ne sont pas
alatoires...
Localit de rfrence

Ces rfrences proviendront de plusieurs processus


Lvaluation sera faite sur la base de cet exemple, videmment
pas suffisant pour en tirer des conclusions gnrales

78

Algorithmes pour la politique de


remplacement
Lalgorithme optimal (OPT) choisit pour page
remplacer celle qui sera rfrence le plus
tardivement
produit le + petit nombre de dfauts de page
impossible raliser (car il faut connatre le futur) mais sert
de norme de comparaison pour les autres algorithmes:
Ordre chronologique dutilisation (LRU)
Ordre chronologique de chargement (FIFO)
Deuxime chance ou Horloge (Clock)

79

Algorithmes pour la politique de


remplacement
Ordre chronologique dutilisation (LRU)
Remplace la page dont la dernire rfrence remonte
au temps le plus lointain (le pass utilis pour prdire
le futur)
En raison de la localit des rfrences, il sagit de la
page qui a le moins de chance dtre rfrence
performance presque aussi bonne que lalgo. OPT

80

Comparaison OPT-LRU
Exemple: Un processus de 5 pages sl n`y a que 3 pages physiques
disponibles.
Dans cet exemple, OPT occasionne 3+3 dfauts, LRU 3+4.

81

Note sur le comptage des dfauts de page


Lorsque la mmoire principale est vide, chaque
nouvelle page que nous ajoutons est le rsultat dun
dfaut de page
Mais pour mieux comparer les algorithmes, il est utile
de garder spars ces dfauts initiaux
car leur nombre est le mme pour tous les algorithmes

82

Implmentation problmatique de LRU


Chaque page peut tre marque (dans le descripteur dans la
table de pages) du temps de la dernire rfrence:
besoin de matriel supplmentaire.

La page LRU est celle avec la + petite valeur de temps


(ncessit dune recherche chaque dfaut de page)
On pourrait penser utiliser une liste de pages dans lordre
d utilisation: perte de temps maintenir et consulter cette liste
(elle change chaque rfrence de mmoire!)

Dautres algorithmes sont utiliss:


LRU approximations

83

Premier arriv, premier sorti (FIFO)


Logique: une page qui a t longtemps en mmoire a
eu sa chance d excuter
Lorsque la mmoire est pleine, la plus vieille page est
remplace. Donc: first-in, first-out
Simple mettre en application
Mais: Une page frquemment utilise est souvent la
plus vielle, elle sera remplace par FIFO!

84

Comparaison de FIFO avec LRU

Contrairement FIFO, LRU reconnat que les pages 2 and 5 sont


utilises frquemment
Dans ce cas, la performance de FIFO est moins bonne:
LRU = 3+4, FIFO = 3+6

85

Implantation de FIFO
Facilement implantable en utilisant un tampon
circulaire de cadres de mmoire
Qui ne doit tre mis jour que chaque dfaut de page
Exercice: concevoir limplantation de ce tampon (v. exemple
prcdent)

86

Lalgorithme de lhorloge (deuxime chance)


Semblable FIFO, mais il tient compte de lutilisation rcente de
pages
La structure liste circulaire est celle de FIFO

Mais les cadres qui viennent dtre utiliss (bit=1) ne sont pas
remplaces (deuxime chance)
Les cadres forment conceptuellement un tampon circulaire
Lorsquune page est charge dans un cadre, un pointeur pointe sur le
prochain cadre du tampon

Pour chaque cadre du tampon, un bit utilis est mis 1 (par le matriel)
lorsque:
une page y est nouvellement charge
sa page est utilise

Le prochain cadre du tampon tre remplac sera le premier rencontr qui


aura son bit utilis = 0.
Durant cette recherche, tout bit utilis = 1 rencontr sera mis 0
87

Algorithme de lhorloge: un exemple

La page 727 est charge dans le cadre 4.


La proch. victime est 5, puis 8.

88

Comparaison: Horloge, FIFO et LRU

Astrisque indique que le bit utilis est 1


Lhorloge protge du remplacement les pages frquemment
utilises en mettant 1 le bit utilis chaque rfrence
LRU = 3+4, FIFO = 3+6, Horloge = 3+5
89

Rsum des algorithmes le plus


importants
OPTIMAL

Le meilleur en principe mais pas implantable, utilis


comme rfrence

LRU

Excellent en principe, mais demande du matriel


dispendieux

FIFO

Facile implanter, mais peut carter des pages


trs utilises

Horloge

Modification de FIFO vers LRU:


vite dcarter des pages rcemment utilises

Les algorithmes utiliss en pratique sont des variations et


combinaisons de ces concepts
90

Algorithmes compteurs
Garder un compteur pour les rfrences chaque page
LFU: Least Frequently Used: remplacer la pages avec le plus
petit compteur
MFU: Most Frequently Used: remplacer les pages bien uses
pour donner une chance aux nouvelles
Ces algorithmes sont dimplantation dispendieuse et ne sont pas
beaucoup utiliss
Mise jour de compteurs chaque opration de mmoire!

91