Vous êtes sur la page 1sur 56

Chapitre 5

Gestion de la mmoire
La mmoire est le point central dans un systme d'exploitation, c'est travers elle que l'unit centrale communique avec l'extrieur. Idalement, on voudrait que la mmoire soit : grande, rapide, non volatile et bon march
Importance de la gestion de la mmoire

Cours SE

Mme Chraibi S.

Les objectifs de la gestion de la mmoire centrale


=> Rsoudre plusieurs types de problmes :
1) lorganisation ou la structuration matrielle de la mmoire physique : Il sagit donc de diviser lespace mmoire en zones (sous-ensemble de N mots ayant des adresses conscutifs) qui pourront tre de taille fixe ou variable en vue dy implanter des reprsentations physique de fichier. 2) Lallocation&libration de la mmoire : Le SE attribue certaines zones de lespace mmoire un ou plusieurs fichiers, suivant une stratgie dite dallocation. Lors de la suspension ou destruction dun processus, le SE doit suivre aussi une stratgie de libration.

Les solutions ces deux problmes sont diverses et sont troitement lies au matriel et aussi au type de systmes: mono- programmes ou multiprogrammes. Nous allons voir ces approches en fonction des types de SE .
Cours SE Mme Chraibi S. 2

Contraintes de la multiprogrammation respecter


La multiprogrammation soulvent deux problmes majeurs:

1- Les programmes doivent tre relogeables : Il peut tre excut dans nimporte
quelle zone ; pourvu quelle soit de taille suffisante. indpendance entre les adresses du programmes et les adresses physiques du chargement. 2- La protection et lintgrit :les accs non autoriss En cours de son excution, il faut garantir quun programme ne puisse pas

accder des zones rserves d autres programmes


Dans le cas de plusieurs utilisateurs, le contenu de certaines zones doit pouvoir tre partag pour viter la duplication des informations.

Cours SE

Mme Chraibi S.

Pour la suite de ce chapitre, on va dcrire quelques tactiques appliques par les SE pour grer la mmoire tout en donnant des solutions dorganisation en respectant les contraintes : 1. les partitionnement fixes et variables, 2. le tassage, 3. la pagination, 4. La segmentation Pour chacune on prsente l'ide, la mise en uvre, les avantages et les inconvnients.

Cours SE

Mme Chraibi S.

Rappels:

Hirarchie des mmoires

Registres de lUC

Temps daccs

Mmoire volatile

Mmoire cache Mmoire centrale

10-8 S 10-7 S 10-3 _ 10-2 S 10_ 102 S

Mmoire permanente
(secondaire ou auxiliaire)

Disque Bandes

- Cot par bit croissant - Vitesse daccs croissant - Capacit de stock dcroissante Cette hirarchie est gre par le gestionnaire de la mmoire L'importance de la gestion de la mmoire centrale vient de son cot et du cot relatif des autres formes de stockage,
Cours SE Mme Chraibi S. 5

IV) Gestion de la mmoire cache Rappels : dfinitionde la mmoire I-) Introduction (ou antmmoire) :

Cest une mmoire relativement petite mais trs rapide. Elle rattach au CPU dans le but daugmenter la performance de lordinateur. Elle est souvent constitue de Registres associatifs, on parle de mmoire associative ou contenu adressable . Au niveau matriel, toutes les cls sont compares simultanment la cls daccs. Si la cls est trouve Sortie la valeur correspondante est fournie en sortie. de
valeur Valeur Cls

V
.

Le cache contient les blocs les plus frquemment et rcemment rfrencs.

Cours SE

Mme Chraibi S.

Rappels: laccs mmoire


Mmoire = composant capable de stocker un grand nombre de bits (instructions , variables dun programme, image devant tre affiche lecture/criture lcran (mmoire video) un bit = une cellule mmoire qui doit pouvoir slection tre crite (au moins une fois) et lue Les cellules sont numrotes adresses

donne

Unit daccs
en gnral, pas une cellule mais plusieurs exemple : 8 cellules (1 octet)

adresse
0 1 2 3 4 5 6 7 8 9 10 11 12

Adresse code en binaire


mmoire de 16 octets adresse sur 4 bits mmoire de 1KO adresse sur 10 bits quelle taille de mmoire peut tre adresse avec 32 bits ? 232 = 22.210.210.210 = 4 GO
Cours SE Mme Chraibi S.

MEMOIRE
7

Rappels : excution des instructions


Cycle dexcution
PROCESSEUR MEMOIRE

@ de linstruction
chargement instruction
identification de lopration raliser

dcodage

@ de la donne donne excution @ de la donne donne

si cest un load

si cest un store

Accde la mmoire pour : lire les instructions excuter et lire ou crire certaines variables
Cours SE Mme Chraibi S. 8

Rappel : Codage des instructions


Exemple de jeu dinstruction: Instructions d'accs la mmoire load rd, @donne store rs, @donne Instructions de calcul add rd, rs1, rs2 add rd, rs1, valeur sub rd, rs1, rs2 compare rs1, rs2 set rd, valeur Instructions de contrle b @instruction bgt @instruction

lecture dune donne en mmoire criture dune donne en mmoire addition addition soustraction comparaison affectation branchement (PC @instruction) branchement si suprieur

Cours SE

Mme Chraibi S.

Rappel : Codage des instructions


main() { int i; int x = 4; int y = 3; int produit = 0 ; @x @y @produit @main int 4 int 3 int 0 load r1, @x load r2,@y load r3,@produit set r4, 1 compare r4,r2 bgt @fin add r3, r1, r3 add r4, r4, 1 b @boucle store r3, @produit
Cours SE Mme Chraibi S. 10

for (i=1 ; i<=y ; i++) produit = produit + x; }

@boucle

@fin

Rappel : Codage des instructions


4 octets

load rd, @donne store rs, @donne

0 0
0 1 1 0 1 1 1 2

@donne @donne # rs1 # rs1 # rs1 # rs1 0 0 # rs2

# rd # rs # rd

add rd, rs1, rs2


add rd, rs1, valeur sub rd, rs1, rs2 compare rs1, rs2 set rd, valeur b @instruction bgt @instruction

valeur # rd valeur # rd # rs2 0 0

1 3
1 4 2 0 2 1

valeur # rd 0 0 0 0

@instruction @instruction

1re passe : codage des instructions


@ instruct ion

instruction

@x @y @produit @main

@boucle

@fin

int 4 int 3 int 0 load r1, @x load r2, @y load r3, @produit set r4, 1 compare r4,r2 bgt @fin add r3, r1, r3 add r4, r4, 1 b @boucle store r3, @produit
Cours SE

0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030

00 00 00 00 00 00 14 13 21 10 11 20 01

00 00 00 XX XX XX 00 04 XX 01 04 XX XX

00 00 00 XX XX XX 01 02 XX 03 01 XX XX

04 03 00 01 02 03 04 00 00 03 04 00 03

@x @y @produit

@fin

@boucle @produit
12

Mme Chraibi S.

2nde passe : codage des adresses


@x @y @produit @main 0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030 00 00 00 00 00 00 14 13 21 10 11 20 01 00 00 00 XX XX XX 00 04 XX 01 04 XX XX 00 00 00 XX XX XX 01 02 XX 03 01 XX XX 04 03 00 01 02 03 04 00 00 03 04 00 03 0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030 00 00 00 00 00 00 14 13 21 10 11 20 01 00 00 00 00 00 00 00 04 00 01 04 00 00 00 00 00 00 04 08 01 02 30 03 01 1C 08 04 03 00 01 02 03 04 00 00 03 04 00 03

@x @y @produit

@boucle

@fin

@fin

@boucle @produit

Cours SE

Mme Chraibi S.

13

Pour assurer la multiprogrammation, les programmes doivent

tre relogeables : peuvent tre excuts dans nimporte


quelle zone de ma MC. indpendance entre les adresses du programmes et les adresses physiques du chargement.

Solution : Notion dadresses logiques ou relatives Translation dune adresse logique en une adresse physique
Cours SE Mme Chraibi S. 14

Notion dadresses logiques ou relatives


Toutes les adresses mentionnes dans un programme objet sont des adresses relatives ou logiques, qui commencent 0000 qui nont aucun lien avec les adresses dimplmentation Ces adresses sont des dplacements comptes par rapport au dbut du programme objet.
@ logiques

@ du dbut pg

@x @y @produit @main

@boucle

@fin

0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030

00 00 00 00 00 00 14 13 21 10 11 20 01

00 00 00 XX XX XX 00 04 XX 01 04 XX XX

00 00 00 XX XX XX 01 02 XX 03 01 XX XX
Cours SE

04 03 00 01 02 03 04 00 00 03 04 00 03

@x @y @produit

@fin

@boucle @produit
Mme Chraibi S.

0000 0004 0008 000C 0010 0014 0018 001C 0020 0024 0028 002C 0030

00 00 00 00 00 00 14 13 21 10 11 20 01

00 00 00 00 00 00 00 04 00 01 04 00 00

00 00 00 00 04 08 01 02 30 03 01 1C 08

04 03 00 01 02 03 04 00 00 03 04 00 03
15

Technique de la translation dune adresse logique en une adresse physique


Principe de translation :
La translation est la transformation dun agresse logique en une adresse physique. La partie adresse dune instruction qui reprsente un dplacement compt par rapport au dbut du programme, est convertie une adresse absolue ou physique; en lui rajoutant ladresse de chargement du programme en MC (contenu dans le registre de base).
Adresse de base du programme Adresse relative
Espace relatif dun processus @0 RL=@N +

Adresse physique

Mmoire physique

RB=@Base

@Base + N

Cours SE

Mme Chraibi S.

16

Technique de la translation
Exemple de la technique de la translation
Le mcanisme suivant est utile pour rsoudre le problme de dplacement des programmes en mmoire (relocation).

@ physique en MC A chaque utilisation d'une adresse logique du programme, on ajoute cette adresse la valeur du registre de base pour trouver l'adresse physique. L'utilisateur ne connat pas les adresses physiques. Il travaille uniquement avec des adresses logiques.
Cours SE Mme Chraibi S. 17

@logique(ou relative au pg)

Techniques de la translation
La translation peut avoir lieu deux instants :
Lors du chargement du programme : le chargeur fixe ladresse de base du programme et effectue une translation. On dit que le programme subit une implantation statique. Mais Ce type de translation ne rsout pas la problme de protection. Car par calcul on peut adresser une zone mmoire et y accder!! Lors de lexcution de chaque instruction Translation dynamique Le matriel assure cette conversion. Le programme subit donc une implantation dynamique.

Ce mode de conversion permet de dplacer le programme d une zone une autre en cours dexcution Solution pour la rimplantation dynamique
Cours SE Mme Chraibi S. 18

Technique de la translation
Problme de protection inter-processus !!
Solution : Deux registres Barrire Bas et Haut Si Adresse < Bas erreur d'adresse Si Adresse >= Haut erreur d'adresse Sinon adresse correcte.

Remarque: lalgorithme de conversion dune adresse est ralis par le matriel.


Cours SE Mme Chraibi S. 19

Organisation ou partitionnement de la mmoire Cas dallocation contigu


Pour augmenter le rendement de lUC =>plusieurs processus doivent rsider en MC.

Cas du partitionnement fixe :

Ide : Diviser arbitrairement la mmoire en partitions de dimensions fixes : partitions statiques. Toutes les partitions ne sont pas de mme taille. Mise en uvre : Les programmes sont implants dans chaque partition. Deux faons dorganiser:

Cours SE

Mme Chraibi S.

20

Le partitionnement de la mmoire
Cas dallocation contigu

Avantages du partitionnement fixe: Simplicit dorganisation


et du SWAP

1.

Limites du partitionnement fixe:


On perd beaucoup de place cause des fichiers qui sont plus petits que les plus petites partitions.

2.

En cas de fichier plus grand que la plus grande partition on ne peut le loger!

Cours SE

Mme Chraibi S.

21

Le partitionnement de la mmoire
Cas dallocation contigu
Cas du partitionnement variable :
Contrairement au partitionnement fixe, la MC nest pas partitionne mais au dbut une seule zone libre est disponible, et lallocation se fait suivant les besoins des utilisateurs.

L'allocation de la mmoire change au gr des processus qui viennent en mmoire et quittent la mmoire Les zones grises indiquent la mmoire non utilise
Cours SE Mme Chraibi S. 22

Partitionnement variable
Cas dallocation contigu
Nous devons rsoudre de nouveaux problmes : lorganisation de la mmoire et tablir un algorithme dallocation de la mmoire un processus.

1) Reprsentation des partitions


On peut reprsenter la mmoire par deux listes distinctes (zones libres et occupes) une liste chane de structures dont les membres sont : le type (libre ou occup), l'adresse de dbut, la longueur, et un pointeur sur l'lment suivant. Exemple :
3
Dispo

occup

4 (libre)

5 (libre)

2 (libre)

Les deux listes sont organises en FIFO ou par ordre croissant des adresses ou par ordre croissant des tailles des zones libres. Rq : Lordre de chanage des zones influe directement sur la gestion des zones : les mthodes de placement et de libration.
Cours SE Mme Chraibi S. 23

Partitionnement variable Cas dallocation contigu


Autres reprsentations des partitions (vides ou alloues) de la MC:

Une partie de la mmoire avec 5 processus, 3 trous Les petites marques verticales indiquent les units d'allocation Les zones grises sont libres Le tableau de bits correspondant Mmes informations sous la forme d'une liste chane
Cours SE Mme Chraibi S. 24

Partitionnement variable
Cas dallocation contigu
2) Algorithmes d'allocation de la mmoire:
dcident de lendroit o insrer un nouveau fichier. La zone libre choisie doit tre de taille suffisante pour satisfaire la demande.

1.
2.

Premire zone libre (first fit) : choisir la premire zone libre ayant une taille suffisante.
Cette mthode vise optimiser la rapidit de choix.

Meilleur ajustement (best fit): slectionner la plus petite zone de taille suffisante,

produisant ainsi un fragment minimal. L utilisation global est amlior mais on obtient un grand nombre de petits fragments. Cette mthode ncessite soit un examen complet de la liste soit un classement permanent de cette liste par taille .

3.

Plus grand rsidu (worst fit) : la zone la plus grande est choisie. Le fait que les

fragments produits soient en principe plus grands, peu permettre de satisfaire une demande future.

First-fit et best-fit sont meilleurs que worst-fit en termes de rapidit et utilisation de la mmoire

Cours SE

Mme Chraibi S.

25

Partitionnement variable
Cas dallocation contigu
Exemples dapplication des politiques d'allocation :
pour une demande de 1 bloc on a les situations suivantes: (a) : premire zone libre : on choisit la zone de 4 blocs => reste 3, 5 ,et 2 blocs libres (b) : meilleur ajustement : on choisit la zone de 2 blocs => reste 4, 5 et 1 blocs libres (c) : plus grand rsidu: on choisit la zone de 5 blocs => reste 4, 4 et 2 blocs libres

Figure 3:

4 (libre)

5 (libre)

2 (libre)

Dispo

(a)

(c)

(b)

Remarque : Des simulations ont montr que le premier ajustement tait meilleur que les autres. Paradoxalement, le meilleur ajustement , qui est plus coteux, n'est pas optimal car il produit une fragmentation importante.
Cours SE Mme Chraibi S. 26

Partitionnement variable
Cas dallocation contigu
Exemples de libration Fusion des partitions

Quatre combinaisons de voisinage pour un processus X qui se termine Dans ce cas lorganisation des listes pas adresse donne un fusion rapide.

Cours SE

Mme Chraibi S.

27

Partitionnement variable
Cas dallocation contigu
Limites du partitionnement variables : Problme de la fragmentation Certaines petites zones (ou fragment) restent inutilises. Deux types de fragmentation :
Fragmentation Externe somme des blocs peut satisfaire une requte, mais non contigus. Ex : Dans la figure 2, une demande de 6 blocs ne peut tre satisfaite alors quon dispose au total de 11 blocs libres. Fragmentation Interne mmoire alloue peut-tre lgrement plus large que la mmoire demande; cette diffrence de taille est une mmoire interne un bloc allou, mais non utilise. La taille dun fichier nest pas un multiple entier de la taille dun bloc ==> le dernier bloc de la zone allou nest pas utilis en entier. Rduire la fragmentation externe par du compactage
Cours SE Mme Chraibi S. 28

Partitionnement variable
Cas dallocation contigu
Solution de la fragmentation: Le compactage
Dfinition : Rorganiser la mmoire pour mettre les blocs ensemble pour en faire 1 grand bloc Compactage possible seulement si relocation est dynamique, et se fait lexcution
Plusieurs dplacements possibles:

Cours SE

Mme Chraibi S.

29

Partitionnement variable
Cas dallocation contigu

Inconvnients du compactage :
Il occupe lUC => diminution des performances globales du SE La frquence du compactage peut tre un obstacle surtout dans les systmes temps rels. Besoin de conserver des informations supplmentaires permettant de retrouver les lments ainsi dplacs.

Cours SE

Mme Chraibi S.

30

Lallocation non contigu


Principe:
Il sagit de fractionner les fichiers pour placer les diffrentes parties obtenues dans des blocs libres non ncessairement adjacents. Ce procd permet de satisfaire les requtes en supprimant la fragmentation externe et par consquent vite la rorganisation de la mmoire qui est coteuse. Deux mthodes dorganisation: Le chanage et lindexation

Cours SE

Mme Chraibi S.

31

Allocation non contigu par chanage


Lallocation chane :
Chaque fichier est constitu dune liste chane de blocs qui le composent . Les blocs sont numrots partir de 0 et pour chaque ensemble les numros du premier et du dernier bloc sont conservs dans une table. Pour des raisons de scurit on utilise parfois un double chanage : chaque bloc contient les numros du bloc suivant et du bloc prcdent.
0 Dbut 1 0 fin 3 13 8 12 9 13 10 14 11 15 4 5 6 7 1 2 3

Exemple :

Inconvnients de lallocation chane :


Il faut parcourir toute la liste partir du dbut, pour retrouver un bloc particulier La prsence de pointeurs lintrieur de chaque bloc rduit lespace consacr linformation elle mme , et occasionne dimportantes oprations de mises jour ; par exemple lorsque la taille de lensemble varie.
Cours SE Mme Chraibi S. 32

Cas dallocation non contigu par lindexation


Lindexation :
Principe : cela consiste conserver dans une table tous les numros des blocs utiliss pour un ensemble. Il est possible daccder directement un bloc recherch en consultant la table des index Exemple : Table: index 0 , 6, 9, 13

Inconvnients : lorsque de nombreux blocs sont utiliss la table devient trs grande, ce qui pose un problme de stockage.

Limites des deux mthodes :


-Pour trouver les informations le SE doit conserver beaucoup plus de renseignement que dans lallocation contigu o seules les adresses de dbut et de fin dune zone taient ncessaires. - Impossibilit de crer de trs gros processus: on garde l'ensemble du processus en mmoire centrale (Le seule support physique utilis dans ces mthodes) ce qui est un dfaut majeur.

Cours SE

Mme Chraibi S.

33

Cas dallocation non contigu: Mmoire virtuelle


Ide : Supprimer la contrainte de dimension de la mmoire. Mise en uvre : deux niveaux de mmoire : la mmoire centrale (performante et chre) et la mmoire de masse (le disque) moins performante mais de dimension pratiquement illimite.
Unit centrale

Mmoire centrale

Table de Mmoire Virtuelle

Transcodage

Dfinition: Mmoire virtuelle = support de l'ensemble des informations potentiellement accessibles. Avantages : Beaucoup de place ! Avec la mmoire virtuelle, la mmoire logique dun processus devient beaucoup plus grande que la mmoire physique Inconvnients : SWAP ou accs disque optimiser

mmoire virtuelle

Swapping

Disque

Pour la ralisation de la mmoire virtuelle on a recours aux mthodes de la pagination ou de la segmentation ou une combinaison des deux.
Cours SE Mme Chraibi S. 34

Notion du Swapping
Swapper, c'est changer le contenu de la mmoire centrale avec le contenu d'une mmoire secondaire. Par extension swapper devient l'action de dplacer une zone mmoire de la mmoire vers le support de swap (en gnral un disque) ou rciproquement du priphrique de swap vers la mmoire.

Le systme de swap a permis de raliser la mmoire virtuelle. En effet lorsque la mmoire de l'ordinateur arrive saturation, le systme crit sur une partition SWAP de faon librer de la mmoire.
Cours SE Mme Chraibi S. 35

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Ide gnrale
Lespace virtuel attribu un procesuss est divis en un ensemble de pages de taille fixe T.
0 1

Dun autre ct lespace physique (MC) est aussi divis en un ensemble de cases (ou cadres de page) de taille fixe T. Taille de page = taille de case = T
Lors de lexcution dun processus, les pages sont charges dans des cases disponibles (libres), non ncessairement adjacents de la MC. Rque : pour simplifier les calculs, la taille des pages T est habituellement dfinie comme une puissance de 2 (entre 512 octets et 16 Mo). Pour excuter un programme de n pages, lOS a besoin de trouver n cadres de page libres et charger le programme Grer une table des pages pour traduire les adresses logiques en adresses physiques Fragmentation interne
Cours SE Mme Chraibi S.

2 . . . . . . . . . . . N-1 0 1 2 . . n-1

Mmoire physique

Mmoire virtuelle dun processus 36

Cas dallocation non contigu

La mmoire virtuelle : la pagination

Translation dadresses virtuelles en adresses physiques


La table des pages, est une implmentation possible de la fonction topographique.
Chaque processus dispose dun espace logique (virtuel) constitu dun nombre entier de pages ainsi que dune table de pages. Les indices de cette table sont numros 0,1,2, attribus aux pages
EX de la mmoire logique et la Table des pages:
0 1 2 . 0 1 2 . .

.
. . . . . .

n-1

.
. . N-1

Mmoire physique

Mmoire virtuelle

Table des pages virtuelles

Cours SE

Mme Chraibi S.

37

La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques
Adresse gnre par la CPU est divise en : Numro de Page (p) utilis comme indice dans la table des pages qui contient dans chaque entre ladresse physique en mmoire de base de la page correspondante

Cas dallocation non contigu

Dplacement dans la Page (d) ou dans la case (puisque Taille pages = taille cases) combin avec ladresse de base pour dfinir ladresse physique complte envoye la mmoire
Adresse logique L P D D Adresse physique PH= C *T+D

Processus

0 1 p
C

Table des Pages Virtuelles TPV

Cours SE

Mme Chraibi S.

38

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques
Exemple: Soit un processeur avec un bus d'adresse sur 32 bits, il peut adresser 2^32 octets, soit 4 Go. L'ordinateur a une mmoire physique de 8 Mo. T = taille de la page ou de la case, par exemple 4096 octets, soit 2^12. NP = nombre de pages de la mmoire virtuelle, par exemple 1 Mga de pages, soit 2^20. NC = nombre de cases de la mmoire physique, par exemple 2048 cases, soit 2^11.

Numro de page

dplacement

L:@virtuelle

31.12 11..0 Numro de case dplacement PH: physique

2212 11..0

Cours SE

Mme Chraibi S.

39

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques Calcul de ladresse logique
L: P = L div T (le quotient) (T:la taille dune page) et D = L mod T (le reste) L= P .T + D Exemple : Nous considrons des pages de taille T=4 et une mmoire physique de 32 mots (donc 8 cases). Ladresse logique L=9 est reprsente par 1001. les deux bits de poids faible 01 reprsentent donc le dplacement D=1 et les deux bits de poids fort restant, 10 , reprsentent le numro de page P=2. Nous retrouvons : P=9 div 4 ; D=9 mod 4 et L= 2*4+1. Si la table des page indique que la page 2 est dans la case C=3 alors ladresse physique PH=3*4+1 =13. Exercice: calculer le nombre de pages et leur taille, en supposant quon a une mmoire de 16 Bits dont 10 Bits pour le dplacement et 6 pour le numro de page.
Cours SE Mme Chraibi S. 40

Cas dallocation non contigu La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques
Description de la table des pages virtuelles TPV:
Cest une table adresse par les numros des pages. A chaque entre de la table on trouve des informations concernant la page en question. Gnralement elle contient: un bit de prsence de la page en mmoire centrale : si la page virtuelle n'est pas prsente en mmoire physique, il se produit un dfaut de page. le numro de la case correspondant en MC si la page est prsente en MC lemplacement de la page sur disque un bit indiquant si la page a t modifie pendant lexcution des bits de protection : chaque bit est associ un type daccs (les pages partageables sont en accs lecture seulement Rq: chaque rfrence implique deux accs de la MC : pour obtenir le numro de case et ladresse physique une fois calcule. Ce qui ralentit lexcution dun facteur de deux.

La protection de la mmoire pagine


Se fait au niveau de la table des pages globale. C'est le systme qui alloue les pages un processus, qui par construction ne peut pas crire en dehors de ses propres pages. De plus, dans la table des pages d'un processus, des drapeaux indiquent le type de page (droits d'accs en lecture/criture/excution).
Cours SE Mme Chraibi S. 41

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques
Acclration de la conversion @virtuelles - @physique
On utilise des mmoires associatives qui recensent les dernires pages utilises :

Processus

Adresse logique

Num P

D Page case

Registre de base

chec succs Pr M D 0 1 Num P 1 Pr=1 Case Dep Case

Pr=0
Table des pages TPV Dfaut de page

Adresse physique

Cours SE

Mme Chraibi S.

42

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Translation dadresses virtuelles en adresses physiques

1) 2) 3) 4) 5) 6) 7)

Algorithme de conversion dune adresse (mapping laide dune mmoire associative)

8) 9) 10) 11) 12)

adresse virtuelle= ( p , d) si numro de page p est dans les registres associatives /*consultation de mmoire associative alors adresse physique = ( c(Reg-asso) , d) sinon /* consultation de la table des pages si prsent(p) = 1 alors - mettre jour la mmoire associative, - adresse physique = ( c(p) , d) sinon /*page fait dfaut Si la mmoire physique est pleine faire un remplacement de pages - choisir une page "victime", - si elle a t modifie, la rcrire sur disque, - modifier les indicateurs de prsence en TPV ; fsi charger la page rfrence en mmoire physique (placement) ; modifier les indicateurs de prsence en TPV. aller 5) fsi fsi
Cours SE Mme Chraibi S. 43

Cas dallocation non contigu

La mmoire virtuelle : la pagination

Translation dadresses virtuelles en adresses physiques

Cas o la page fait dfaut


On peut faire dmarrer un processus sans aucune page en mmoire. La premire Page Fault aurait lieu la lecture de la premire instruction (l'instruction n'tant pas en mmoire).

Une erreur de page ncessite de raliser au moins 3 actions : grer l'interruption (commutation de contexte et .) swapper la page demande relancer le processus

Cours SE

Mme Chraibi S.

44

Cas dallocation non contigu La mmoire virtuelle : la pagination


Efficacit et performances de demande de page
Ce qui cote le plus cher est la recherche de la page sur le disque et son transfert en mmoire, ce qui prend de l'ordre de 1 10 millisecondes. Une erreur de page toutes les mille pages nous donne un temps effectif onze fois plus long que l'accs standard. Il faut rduire moins d'une erreur de page tout les 100 000 accs pour obtenir une dgradation infrieure 10

Le systme d'exploitation doit slectionner une victime, c'est--dire, une des pages de la mmoire centrale qui sera swappe sur disque et remplace par la page demande.=> Remplacement Le choix faire sur des pages qu'il faut swaper sont donc trs importants.

Cours SE

Mme Chraibi S.

45

Cas dallocation non contigu La mmoire virtuelle : la pagination

Algorithmes de remplacement :

Un algorithme de remplacement de page doit minimiser le nombre de dfauts de pages. On recherche l'algorithme qui rduit au mieux la probabilit d'occurrence d'une erreur de page. Un algorithme est valu en prenant une chane de numros de page et en comptant le nombre de fautes de page qui ont lieu au cours de cette suite d'accs, et cela en fonction du nombre de pages de mmoire centrale dont il dispose.
Deux sortes dalgorithmes : Ceux qui ne tiennent pas compte de lutilisation des cases : RAND : slection au hasard. On peut virer une page dont on a besoin tout de suite. FIFO : ordre chronologique de chargement ; Ceux qui tiennent compte de lutilisation des cases : LFU (least frequently used) : on remplace la page la moins frquemment rfrence LRU (least recently used) : ordre chronologique d'utilisation. On sintresse aux dates dutilisation mais pas la frquence. OPT : on remplace celle qui sera utilise au bout du temps la plus long .

Remarque: le temps de transfert est doubl: il faut la fois lire une page et sauvegarder une page sur disque
Cours SE Mme Chraibi S. 46

Cas dallocation non contigu La mmoire virtuelle : la pagination


Les algorithmes de remplacement de page : exemple
Pour illustrer les algorithmes de remplacement, nous utiliserons la suite de pages suivante : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 et 3 pages en mmoire centrale.
Le remplacement optimal : Utiliser comme victime la page qui ne sera pas utilise pendant le plus longtemps. Soit pour notre suite : 7xx 70x 701 201 - 203 - 243 - -203 - - 201 - - - 701 - - soit seulement 9 fautes de page. Mais cet "algorithme" n'est valable que dans un cas o l'on connat l'avance les besoins, ce qui n'est gnralement pas le cas. Le remplacement peps (FIFO) L'algorithme le plus simple Quand une victime doit tre slectionne c'est la page la plus ancienne qui est slectionne. Soit pour la liste 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 et trois page de mmoire centrale : 7XX/70X/701/201-201/231/230/430/420/423/ 023-023-023/013/012-012-012/712/702/701 soit Quinze Page Faults.

Cours SE

Mme Chraibi S.

47

Cas dallocation non contigu La mmoire virtuelle : la pagination


L'algorithme de la deuxime chance
Un bit associ chaque page est positionn 1 chaque fois qu'une page est utilise par un processus. Avant de retirer une page de la mmoire, on va essayer de lui donner une deuxime chance. On utilise un algorithme FIFO plus la deuxime chance : Si le bit d'utilisation est 0, la page est swappe hors mmoire (elle n'a pas t utilise depuis la dernire demande de page). Si le bit est 1, il est positionn a zro et l'on cherche une autre victime. Ainsi cette page ne sera swappe hors mmoire que si toutes les autres pages ont t utilises, et utilisent aussi leur deuxime chance. On peut voir ceci comme une queue circulaire, o l'on avance sur les pages qui ont le bit 1 (en le positionnant zro) jusqu' ce que l'on trouve une page avec le bit d'utilisation zro.

Cours SE

Mme Chraibi S.

48

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Bonne et mauvaise utilisation des pages
Un exemple: (rappel les compilateurs c allouent les tableaux sur des plages d'adresse croissante contiges int m[A][B] est un tableau de A tableaux de B entiers) /* bonne initialisation */ int m[2048][2048]; main() {int i,j; for(i=0;i<2048;i++) for(j=0;j<2048;j++) m[i][j] = 1; } ce processus accde a une nouvelle page toute les 2048 affectation.
/* mauvaise initialisation */ int m[2048][2048]; main() {int i,j; for(i=0;i<2048;i++) for(j=0;j<2048;j++) m[j][i] = 1; } ce processus accde a une nouvelle page toute les affectations ! Attention : En fortran l'allocation des tableaux se fait dans l'autre sens par colones ... Si la mmoire est libre et assez grande, les deux processus sont grossirement aussi rapides, par contre si on lance dix exemplaires du premier, le temps d'attente est juste multipli par 10. Pour le deuxime, le temps d'attente est au moins multipli par 100 (je n'ai pas attendu la fin de l'excution).

Cours SE

Mme Chraibi S.

49

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Remarques :
le matriel dadressage effectue toutes les oprations de mapping sauf le remplacement de pages qui est fait par le logiciel. On a une table de page par processus. Le pointeur vers cette table doit faire partie du contexte du processus . La table des pages virtuelles est une implmentation particulire d'une fonction de pagination (il en existe d'autres). En gnral, c'est un bit dans le PSW (Program Status Word) qui indique si l'on utilise ou non la mmoire virtuelle.

Cours SE

Mme Chraibi S.

50

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Optimisation : Le pr chargement - La localit Optimisation du systme : tenir compte de la localit en prchargeant des pages avant d'en avoir besoin. essayer d' anticiper la demande Localit dans le temps : un instant donn, les rfrences observes dans un pass rcent sont (en gnral) une bonne estimation des prochaines rfrences. En moyenne, 75% des rfrences intressent moins de 20% des pages. Ex : boucle, procdure La localit dans lespace : sur un intervalle de temps moyen, les rfrences portent sur des adresses voisines. Ex : parcours dun tableau.

Cours SE

Mme Chraibi S.

51

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Pagination deux niveaux
Le problme de la taille de la TPV
Pour tre utilise, la TPV doit tre place en mmoire physique. Par exemple, si on a 2^20 pages virtuelles, la TPV aura une taille d' peu prs 2^20 * taille d'une entre = 10 Mo si une entre tient sur 10 octets. C'est dire plus que la taille de la mmoire physique !!!! Solution : on va paginer la TPV Pagination deux niveaux La mmoire virtuelle est divise en Hyperpages qui sont elles-mmes divises en pages. Une adresse virtuelle = numro d'hyperpage ; numro de page ; dplacement. Attention ! L'accs la mmoire est plus lent d'une indirection (utilisation de mmoires associatives).

Cours SE

Mme Chraibi S.

52

Cas dallocation non contigu

La mmoire virtuelle : la pagination


Avantages / Inconvnients de la pagination
Avantages : Ce type de gestion est trs efficace car utilise au maximum la mmoire et vite le tassage de mmoire. Possibilit de ne charger des pages que lorsqu'elles sont rfrences (chargement la demande). Indpendance de l'espace virtuel et de la mmoire physique (mmoire virtuelle gnralement plus grande). Possibilit de ne vider sur disque que des pages modifies. Une plus grande simplicit du partage de la mmoire entre diffrents processus. En particulier quand plusieurs processus partagent le mme code. La page qui contient du code utilis par les processus sera partageable et protge en criture. Sous Unix le compilateur produit automatiquement des programmes dont la partie code est partageable. Inconvnients : Fragmentation interne (toutes les pages ne sont pas remplies). on reste toujours limit la taille effective de la mmoire.
Cours SE Mme Chraibi S. 53

Cas dallocation non contigu la mmoire virtuelle :

La segmentation
Principe :
La mmoire virtuelle = ensemble de segments. L espace logique dun processus est aussi un ensemble de segments En gnral, les segments correspondent un dcoupage logique d'un programme (segment de pile, de donnes, de code, ...). Un segment = suite d'emplacements conscutifs caractris par un numro de segment s et une longueur m appele limite. Ladresse logique = (s, d) o (s : numro de segment; d : dplacement lintrieur de segment s)

une table de segments pour calculer une adresse physique o chaque entre de la table contient ladresse physique du dbut du segment appel base b et la longueur m du segment. Ladresse physique =b+d 0<= d <= m

RQ : lorganisation segmente peut reflter la vision logique de lutilisateur contrairement lorganisation pagine. Cest une organisation de la mmoire qui respecte le comportement usuel des programmeurs, qui gnralement voient la mmoire comme un ensemble de tableaux distincts contenant des informations de types diffrents. Un segment pour chaque type : donnes, code, table des symboles, librairies etc. Ces diffrentes zones ayant des tailles varies, et parfois variables au cours du temps (le tas par exemple).
Cours SE Mme Chraibi S. 54

Cas dallocation non contigu la mmoire virtuelle :

La segmentation
Conversion des adresses :
Table des segments

b
Mmoire physique

Processus

Adresse logique

d Adresse physique

<
Non interruption

b +d

Avantage: lutilisation de segments disperss de petites tailles rduit la fragmentation externe mais ne llimine pas compltement. Remarque : lutilisation des registres associatifs pour tout ou une partie de la table des segments conduit une amlioration des performances de conversion.

La mmoire segmente pose des problmes de compactage (dfragmentation). La stratgie idale est : la mmoire en segments pagins.
Cours SE Mme Chraibi S. 55

Cas dallocation non contigu la mmoire virtuelle :

La segmentation pagine
Problme de la segmentation : La croissance de la taille des mmoires virtuelle problme de lencombrement de la mmoire principale par la table des segments dont la taille augmente, surtout si la plupart des entres sont vides.

Ide : Paginer les segments : on a une TPV par segment segmentation pagine
Une adresse logique =(numro segment , numro page, dplacement dans la page)
Conversion des adresses:
Adresse logique

Seg

page

dplacement

TPV du segment Mmoire physique

Table des segments dun processus Cours SE Mme Chraibi S.

TPV du segment
56