Vous êtes sur la page 1sur 13

Gestion de la mmoire

Dfinitions ...........................................................................................................................................2
Mmoire centrale.............................................................................................................................2
Units de mesure :............................................................................................................................2
Catgories de mmoires...................................................................................................................2
Gestion de la mmoire ........................................................................................................................4
Registres de protection mmoire.....................................................................................................4
Gestion de la mmoire physique......................................................................................................4
Partitions de taille fixe................................................................................................................4
Partitions de tailles variables.......................................................................................................5
Stratgie de placement................................................................................................................6
Bilan provisoire...........................................................................................................................6
Mmoire virtuelle pagine....................................................................................................................7
Dfinitions .....................................................................................................................................7
Mmoire pagine- cadres de pages.............................................................................................7
Adresse virtuelle table des pages.............................................................................................7
Consquences de l'adressage virtuel................................................................................................8
Mmoire virtuelle............................................................................................................................9
Algorithmes de remplacement de pages.............................................................................................10
Algorithme de remplacement de la page non rcemment utilise.................................................10
Algorithme de remplacement de page premier entr, premier sorti..............................................11
L'algorithme de remplacement de page de la seconde chance.......................................................11
L'algorithme de remplacement de page de l'horloge.....................................................................12
L'algorithme de remplacement de la page la moins rcemment utilise.......................................13

Groupe esaip

317513634.doc

Dfinitions
Mmoire centrale
La mmoire centrale des ordinateurs est la mmoire accessible directement par le processeur.
Cette mmoire contient la fois les instructions de programmes et les donnes manipules par ces
programmes, que ces programmes soient des programmes utilisateurs ou des programmes systmes.
La quantit de mmoire installable sur un ordinateur dpend de plusieurs paramtres :
l'espace maximum de mmoire accessible par le processeur (20 bits d'adresse, 32 bits,
64bits ...)
la taille du bus systme, c'est dire le sous-ensemble de l'espace adressable effectivement
cbl sur la carte mre de l'ordinateur
les emplacements disponibles sur la carte mre pour l'insertion des "barrettes de mmoire"
le type de barrettes utilises: si 3 emplacements sont disponibles, il est peut-tre possible
d'installer 3x128 Mo ou 3x512 Mo

Units de mesure :
La mmoire des ordinateurs se mesure en multiples de l'octets:
1 ko (kilo)

2 10 octets

1024 octets

1 Mo (mga)

2 20 octets

1024 Ko

1 Go (giga)

2 30 octets

1024 Mo

1 To (tra)

2 40 octets

1024 Go

Une adresse mmoire est l'adresse d'un octet en mmoire centrale (ou du premier octet d'une srie
d'octets d'adresses successives). Chaque octet de la mmoire a une adresse.

Catgories de mmoires
La mmoire RAM (random access mmory) est ainsi nomme car le temps d'accs l'un
quelconque des octets (choisi alatoirement) est identique pour tous. Cette proprit n'est pas
vrifie pour les donnes sur disque.
La mmoire centrale peut aussi comporter une partie de mmoire ROM (read only memory) qui a
surtout l'intrt de ne pas tre efface lorsque l'ordinateur est mis hors tension. Un programme
d'amorage en mmoire ROM est ncessaire au dmarrage de l'ordinateur.
Les temps d'accs la mmoire ROM sont en gnral plus long que pour la mmoire RAM,
il sera donc assez frquent de recopier en mmoire RAM les informations de la mmoire
ROM pour amliorer les performances. Cette mmoire qui est comme "l'ombre de la
mmoire ROM" est quelquefois appele "mmoire shadow"

Pour amliorer le temps d'accs aux donnes et instructions de la mmoire RAM, les processeurs
disposent en gnral sur d'une mmoire plus rapide mais en quantit plus limite: la mmoire
cache. Cette mmoire contient les dernires informations utilises par le processeur, et se rvle
utile parce que les programmes utilisent en gnral plusieurs fois les mmes instructions et donnes
dans un brve priode de temps.
Pour tendre la quantit de mmoire RAM on utilisera une partie de la mmoire de masse (en
gnral le disque dur) pour stocker des informations de la mmoire qui ne seront pas utiles aux
programmes actifs dans un horizon de temps limit. Cette mmoire s'appelle la mmoire d'change
(en anglais swap). Ceci permettra de "rcuprer" l'espace RAM qu'utilisaient ces donnes ou
instructions pour y enregistrer d'autres informations ncessaires aux programmes actuellement
actifs.

Gestion de la mmoire
Registres de protection mmoire
La gestion de la mmoire centrale est ralise par le systme d'exploitation et vise fournir aux
applications l'espace de RAM ncessaire leur excution.
Un objectif supplmentaire mais tout aussi crucial est la protection des espaces mmoire des autres
applications, et du systme d'exploitation lui-mme, contre la lecture ou la modification des
donnes par un processus non autoris.
En gnral un processus se verra allouer une espace de mmoire correspondant des adresses
successives: il pourra ainsi utiliser toute adresse de mmoire entre une valeur minimale et une
valeur maximale; les autres adresses lui tant interdites.
Ce contrle d'accs la mmoire, pour tre efficace, devra tre ralis par le processeur lui-mme,
qui disposera de 2 registres dfinissant les limites des adresses mmoire autorises. Ces registres
seront initialiss par l'ordonnanceur au moment o celui-ci active le processus.

Gestion de la mmoire physique


Partitions de taille fixe
Une des premires mthode de gestion de la mmoire a t de dfinir des espaces mmoire de
tailles fixes dans lesquelles seront installs les programmes d'application. Chaque programme a t
compil avec des adresses absolues en mmoire (adresses des instructions ou adresses des
variables). Un programme ne peut donc tre charg que dans la partition pour laquelle il a t
compil. On dfinira en gnral autant de files d'attentes de programmes qu'il y a de partitions. Une
partition ne peut contenir qu'un seul programme. Si le programme d'une partition se bloque sur une
demande d'entre/sortie, le systme active le programme d'une autre partition.

Partitions de tailles variables


La mthode prcdente utilisait mal la mmoire car les programmes ne remplissaient pas en gnral
la partition qui leur tait alloue, sans que cet espace restant puisse tre utilis par un autre
programme.
Deux volutions majeures vont permettre de mieux grer la mmoire:
La

gnration de code relogeable par les compilateurs, associe des chargeurs de code relogeable
permettra de charger un programme une adresse quelconque en mmoire.
La

dfinition de partitions de taille variable permettra d'adapter la taille des partitions aux besoins
rels des programmes.

Stratgie de placement
Au bout d'un certain temps les programmes en cours se terminent: sur l'exemple de cette figure les
programmes A et C se sont termins.
Si le choix de l'emplacement des premiers programmes n'a pos aucun problme (il suffisait de
remplir la mmoire en rpondant aux besoins des programmes), la question se pose ds qu'un
programme se termine, en librant un espace mmoire, du choix du meilleur emplacement
disponible pour implanter en mmoire un nouveau programme.
On peut proposer 3 stratgies :
1.best-fit strategy : on choisit l'emplacement le plus petit parmi ceux qui sont assez grands pour les
besoins du programme
2.first-fit strategy : on choisit le premier emplacement que l'on trouve et qui est suffisant pour
satisfaire la demande (l'avantage est la rapidit de la dcision)
3.worst fit strategy : on choisit le plus grand des emplacements, mais on rcupre ce qui est au-del
des besoins du programme pour en faire un nouvel emplacement libre(alors que dsans les stratgies
prcdentes, si le bloc allou est plus grand que la demande, l'excdent reste indisponible et
inutilis)
Au del de ces stratgies de placement peut se poser le choix d'une restructuration des blocs
mmoire qui permettrait en dplaant les bloc allous de runir en un (ou plusieurs) blocs les
diffrents blocs libres. Si la runion de 2 blocs libres adjacents est quasi immdiate, la runion de
blocs libres qui imposerait d'en dplacer d'autres est une opration coteuse en terme de temps
processeur; on essaiera donc de la limiter le plus possible.

Bilan provisoire
Ces techniques de gestion de la mmoire n'ont plus qu'un intrt historique et ne correspondent plus
la plupart des systmes modernes. Elles gardent cependant leur actualit dans 2 contextes trs
actuels :
1.les systmes " objets" utilisent trs intensivement l'allocation dynamiques de variables;
ces variables ont souvent une dure de vie trs courte, ce qui gnre rapidement un espace
mmoire "rempli de trous". Le choix de l'emplacement mmoire pour une nouvelle variable,
ou le regroupement des espaces libres (garbage collection) gardent ici toute leur actualit
(mais au lieu de l'espace mmoire du systme, il s'agit de l'espace mmoire d'une
application). La machine virtuelle Java a ainsi son propre "garbage collector".
2.les systmes embarqus disposent souvent d'un espace mmoire trs restreint, qui oblige
simplifier certains algorithmes du systme; en contre partie, le nombre des applications
appeles s'excuter et leurs besoins en mmoire sont mieux prvisibles; dans ce contexte,
des algorithmes simplifis (voire simplistes) de gestion de la mmoire peuvent devenir
particulirement intressants.

Mmoire virtuelle pagine


Dfinitions
Mmoire pagine- cadres de pages
La pagination consiste dcouper la mmoire centrale en espaces de tailles fixes, par exemple une
page mmoire fera 1Ko. L'allocation de mmoire aux processus se fait alors page par page: la page
est l'unit d'allocation de mmoire aux processus.
Tout espace mmoire appartient donc dsormais une page, indpendamment de son contenu: ce
"lieu de stockage" s'appelle un "cadre de page" ou "page frame" en anglais

Adresse virtuelle table des pages


Un processus dispose dsormais d'une mthode d'adressage de la mmoire dtermine par cette
organisation: une adresse en mmoire est un couple (Nde page, N d'octet dans la page)
Il devient alors possible de dterminer un espace d'adressage virtuelle pour un processus: toutes
les adresses mmoire rfrences dans le programme de ce processus sont dtermine par un couple
(Nde page, N d'octet dans la page), avec un numro de page commenant toujours zro.
Une table des pages est donc ncessaire pour dterminer quelle numro de page relle (en
mmoire physique) correspond tel numro de page virtuelle:
Indice
de la table des pages
= N de la page virtuelle

N de la page relle
contenant cette page
virtuelle

102

250

205

46

32

310

A chaque instruction machine rfrenant une variable ou une instruction, il est donc ncessaire de
convertir
(N de page virtuelle, N d'octet dans la page)
en
(N de page relle, N d'octet dans la page)
Remarquons que dans cette conversion d'adresses, le numro d'octet dans la page n'est pas chang.
Il reste une dernire conversion raliser pour passer en adresse physique :
adresse physique =

(N de page relle) * taille de la page


+ N d'octet dans la page

Ces mcanismes de conversion pour tre efficaces seront implants dans le processeur
Ce qui veut dire aussi qu'une telle gestion de la mmoire ncessite un processeur adapt: une "unit
de gestion de la mmoire" n'existe sur les processeurs Intel qu' partir du 80386.

Consquences de l'adressage virtuel


L'adressage virtuel offre de nombreux avantages :
1.Il n'y a plus de stratgie de placement: toute page disponible peut tre alloue un processus, et
toutes les pages sont quivalentes en terme de performance.
2.Il n'y a plus besoin d'algorithme de "rcupration des espaces libres", "garbage collector", car
toutes les pages sont toujours utilisables
3.L'espace allou un processus peut tre adapt sa demande ( la taille d'une page prs) et mme
varier au cours de la vie du processus de manire trs simple.
4.L'espace mmoire d'un processus, en termes d'adresse virtuelles est toujours constitu d'adresses
successives, ce qui simplifie les mcanismes de protection mmoire (adresse virtuelle de base, ici
toujours zro, et taille de l'espace allou)
5.Une mme page de mmoire relle peut trs facilement tre partage par 2 processus (ou plus) par
l'intermdiaire de la table des pages

Mmoire virtuelle
L'adressage virtuel permettra aussi de grer de manire efficace la mmoire d'change: extension
sur le disque de la mmoire centrale.
En effet dans la table des pages, il suffira d'indiquer
si

la page virtuelle est actuellement en mmoire centrale,


dans un cadre de page qui lui aura t assign par le systme
ou

si le contenu de cette page virtuelle est au contraire sur disque, dans l'espace de "swap"

Si le programme en cours d'excution fait rfrence une adresse de page virtuelle sur disque, la
processeur qui ralise la conversion des adresses virtuelles en adresse physiques gnrera une
"exception pour dfaut de page": une interruption matrielle, qui aura les consquences
suivantes :
1.Blocage du processus en cours, pour une opration d'entres/sortie particulire qui
consistera recharger la page absente en mmoire principale.
2.Dmarrage d'un processus systme de remplacement de page qui devra slectionner pour la
page manquante un cadre de page disponible, ou librer un des cadres de pages occups, en
recopiant son contenu dans la mmoire d'change. Quelle page slectionner sera la question
des algorithmes de remplacement de page dcrits dans le chapitre suivant.
3. Allocation du processeur un autre processus prt
Lorsque la page absente sera de nouveau disponible en mmoire, le processus bloqu redeviendra
prt.

Algorithmes de remplacement de pages1


Algorithme de remplacement de la page non rcemment utilise
Afin de permettre au systme d'exploitation de collecter des statistiques utiles sur le nombre de
pages utilises et le nombre de pages inutilises, la plupart des ordinateurs avec de la mmoire
virtuelle possdent 2 bits d'tat associs chaque page. Le bit R est mis 1 chaque fois que la
page est rfrence (lue ou crite) et le bit M est mis 1 quand la page est r-crite (c'est--dire
modifie). Ces bits sont contenus dans chaque entre de la table des pages.
Il

est important de raliser que ces bits doivent tre mis jour chaque rfrence mmoire, et qu'il
est donc essentiel que cette mise jour soit matrielle.
Lorsqu'un bit a t mis 1, il reste 1 jusqu' ce que le systme d'exploitation le remette 0 de
manire logicielle.
Si le matriel ne dispose pas de ces bits, ils peuvent tre simuls de la manire suivante. Quand un
processus dmarre, toutes les entres de ses pages sont marques comme non prsentes en mmoire.
Ds qu'une page est rfrence, un dfaut de page est gnr. Le systme d'exploitation met 1 le
bit R (dans ses tables internes), change l'entre de la table des pages pour pointer sur la bonne page,
avec un mode lecture seule, et recommence l'instruction. Si la page est rcrite par la suite, un autre
dfaut de page est gnr, autorisant le systme d'exploitation mettre 1 le bit M et changer le
mode d'accs la page en lecture/criture.
Les bits R et M peuvent servir construire un algorithme simple de pagination comme dcrit ciaprs. Quand un processus dmarre, les 2 bits de page pour toutes ses pages sont mis 0 par le
systme d'exploitation. Priodiquement (par exemple chaque interruption d'horloge), le bit R est
effac, afin de distinguer les pages qui n'ont pas t rcemment rfrences de celles qui l'ont t.
Quand un dfaut est gnr, le systme d'exploitation examine toutes les pages et les spare en deux
catgories bases sur les valeurs courantes des bits R et M:
[ 0 0 ] Classe 0. Non rfrence, non modifie.
[ 0 1 ] Classe 1. Non rfrence, modifie.
[ 1 0 ] Classe 2. Rfrence, non modifie.
[ 1 1 ] Classe 3. Rfrence, modifie.
Bien que l'existence de pages de classe 1 semble impossible elles apparaissent dans cet tat lorsque
le bit R d'une page de classe 3 est effac par une interruption d'horloge. Les interruptions d'horloge
n'effacent pas le bit M parce que cette information est ncessaire pour savoir si la page a t rcrite
sur le disque ou pas. Si le bit R est effac mais pas le bit M, cela aboutit une page de classe 1.
L'algorithme de la page non rcemment utilise ou NRU (Not Recently Used) enlve une page au
hasard dans la classe la plus basse non vide. Avec cet algorithme, il est implicite qu'il vaut mieux
enlever une page modifie qui n'a pas t rfrence au moins dans un top (typiquement 20 ms)
plutt qu'une page bonne (clean) qui est beaucoup utilise. L'attrait principal de l'algorithme NRU
est qu'il est facile comprendre, relativement simple implanter, et qu'il donne des performances
qui, sans tre optimales, sont suffisantes.

Cf Andrew Tanenbaum "Systmes d'exploitation" ed Pearson Education

Algorithme de remplacement de page premier entr, premier sorti


Un autre algorithme de pagination est l'algorithme premier entr, premier servi ou FIFO (First-In,
First-Out, premier entr, premier sorti).
Le systme d'exploitation maintient une liste de toutes les pages actuellement en mmoire, la page
la plus ancienne tant en tte de liste et la page la plus rcente en queue. Dans le cas d'un dfaut de
page, la page en tte de liste est efface et la nouvelle page ajoute en queue de liste.
Quels inconvnients peut avoir cette politique ?

L'algorithme de remplacement de page de la seconde chance


On peut apporter une modification simple l'algorithme FIFO afin d'viter la suppression d'une
page laquelle on a couramment recours : il s'agit d'inspecter le bit R de la page la plus ancienne.
S'il est 0, la page est la fois ancienne et inutilise, elle est donc remplace immdiatement. Si le
bit R est 1, le bit est effac, la page est place la fin de la liste des pages, et son temps de
chargement est mis jour comme si elle venait d'arriver en mmoire. La recherche continue alors.
L'opration de cet algorithme, appele seconde chance, est illustre ci-dessous nous voyons que les
pages de A H se trouvent dans une liste chane, tries par leur temps d'arrive en mmoire.
Supposons qu'un dfaut de page se produise l'instant 20. La page la plus ancienne est A, qui est
arrive l'instant 0, quand le processus a dmarr. Si le bit R de la page A est 0, elle est vince
de la mmoire: elle est soit crite sur le disque (si elle est modifie), soit simplement abandonne (si
elle est reste identique la page sur disque). D'un autre ct, si le bit R est 1, A est place la fin
de la liste et son temps de chargement est mis jour avec le temps courant (20). Le bit R est aussi
mis 0. La recherche d'une page convenable continue alors avec B.

Opration de la seconde chance.


(a) Pages tries dans un ordre FIFO.
(b) Liste de pages lorsqu'un dfaut de page se produit l'instant 20 et que le bit R de A est 1. Les
nombres au-dessus des pages correspondent l'instant de leur chargement.

Le travail de l'algorithme de la seconde chance consiste chercher une ancienne page qui n'a pas t
rfrence dans le prcdent intervalle d'horloge. Si toutes les pages ont t rfrences,
l'algorithme de la seconde chance dgnre en pur algorithme FIFO. Pour tre concrets, imaginons
que toutes les pages de la figure 4.16(a) ont leur bit R 1. Le systme d'exploitation dplace une par
une les pages la fin de la liste, effaant le bit R chaque fois qu'il ajoute une page la fin de la liste.
Finalement, il revient la page A, dont le bit R est maintenant 0. ce moment-l, A est vince.
Ainsi, cet algorithme se termine toujours.

L'algorithme de remplacement de page de l'horloge


Bien que l'algorithme de la seconde chance soit un algorithme satisfaisant, il manque d'efficacit
parce qu'il dplace constamment des pages dans sa liste. Une meilleure approche consiste garder
tous les cadres de pages dans une liste circulaire formant une horloge, comme l'illustre la figure cidessous. Un pointeur se trouve sur la page la plus ancienne.

Quand un dfaut de page survient, la page pointe est examine. Si son bit R est 0, la page est
vince, la nouvelle page est insre dans l'horloge sa place, et le pointeur est avanc d'une
position. Si le bit R est 1, il est effac et le pointeur est avanc sur la prochaine page. Ce
processus est rpt jusqu' ce qu'une page R = 0 soit trouve. Cet algorithme de l'horloge diffre
de l'algorithme de la seconde chance uniquement dans son implantation.

L'algorithme de remplacement de la page la moins rcemment utilise


Pour s'approcher au mieux de l'algorithme optimal, il faut se fonder sur l'observation suivante : les
pages les plus rfrences lors des dernires instructions seront probablement trs utilises dans les
prochaines instructions. l'inverse, des pages qui n'ont pas t employes depuis longtemps ne
seront pas demandes avant un long moment. On peut en dduire l'algorithme suivant: quand un
dfaut de page se produit, c'est la page qui n'a pas t utilise pendant le plus de temps qui est
retire.
Cette mthode est appele pagination LRU (Least Recently Used, la moins rcemment utilise).
Cet algorithme LRU est ralisable mais reste coteux. Pour l'implanter totalement, il est ncessaire
de grer une liste chane de toutes les pages en mmoire, avec la page la plus rcemment utilise
en tte et la moins utilise en queue. La difficult est que cette liste doit tre mise jour chaque
rfrence mmoire. La recherche d'une page dans la liste, sa destruction et son dplacement en
dbut de liste sont des oprations coteuses en temps, mme si elles sont ralises de manire
matrielle (en supposant qu'un tel matriel existe)
Cependant, il existe d'autres manires d'implanter cet algorithme avec des composants matriels
particuliers. Considrons la plus simple d'entre elle. Cette mthode ncessite d'quiper le matriel
avec un compteur 64 bits, c, qui s'incrmente automatiquement aprs chaque instruction. Par
ailleurs, chaque entre de la table des pages doit avoir un champ assez grand pour contenir ce
compteur. Aprs chaque rfrence mmoire, la valeur courante de c est enregistre dans l'entre de
la table des pages pour l'entre qui vient d'tre rfrence. Quand un dfaut de page se produit, le
Systme d'exploitation examine tous les compteurs dans la table des pages afin de trouver le plus
petit d'entre eux. Celui-ci correspond la page la moins rcemment utilise.
Examinons prsent une deuxime solution matrielle. Pour une machine n cadres de pages, le
matriel doit grer une matrice de n x n bits, initialement tous nuls. Quart une page k est
rfrence, le matriel commence par mettre 1 tous les bits de la range k et tous les bits de la
colonne k 0. chaque instant, la range dont la valeur binaire est la plus petite indique la page la
moins rcemment utilise.