Vous êtes sur la page 1sur 50

Ch 4: Gestion de la mémoire

1
Ch4: Gestion de la mémoire

Introduction
1) Adresse physique et adresse logique
2) Gestion de la mémoire unifiorme
 Allocation contiguë
 partitions fixes
 Partition dynamiques (variables)
3) La mémoire virtuelle
 Pagination
 Segmentation
 Segmentation et pagination

2
Chap. 4
Ch4: Gestion de la mémoire

Introduction

 La mémoire centrale est le support de stockage à court terme:

Son contenu sera perdu à l’arrêt de l’ordinateur

 Le CPU fonctionne conjointement avec ce composant

 le processeur est, tout le temps, en train d’exécuter des


instructions

 Les instructions et les données doivent être présentes en


mémoire centrale
3
Chap. 4
Gestion de mémoire: objectifs
 Optimisation de l’utilisation de la mémoire principale (RAM)
 Le plus grand nombre possible de processus actifs doit y être
gardé, de façon à optimiser le fonctionnement du système en
multiprogrammation.
 Garder le système le plus occupé possible, surtout l’UCT
 S’adapter aux besoins de la mémoire de l ’usager, qui varient
dans le temps.

4
1) Adresses physiques et logiques


Mémoire physique: la mémoire principale RAM de la machine
 Adresses physiques: les adresses de cette mémoire

Mémoire logique: l’espace d`adressage d’un programme
 Adresses logiques: les adresses dans cet espace
 Il faut séparer ces concepts car normalement, les programmes
sont chargés de fois en fois dans des positions différentes de
mémoire
 Donc adresse physique ≠ adresse logique

5
Chap. 4
0

n b
Adresses logiques

n: adresse logique
n+b: adresse physique
n

Un programme chargé à la position de mémoire b doit ajouter b à tous ses adresses


internes (logiques) pour obtenir l’adresse réelle=physique

6
Chap. 4
Programme Données
0
b c

n : adresse logique
n+c n+c : adresse physique

Un programme qui fait référence à un segment de données chargé à la position c


7
Chap. 4
1.1) Traduction adresses logiques adr.physiques

instruction

MMU: unité de gestion de mémoire


unité de traduction adresses
(memory management unit)
8
Chap. 4
Differents types d’adresses


Noms symboliques donnés par le programmeur

Adresses logiques établies par le compilateur

Adresses physiques dans la mémoire de l’ordi
établies au moment où le programme est mis en
mémoire physique
 Le MMU en tient compte et fait la traduction au
moment de l’exécution

9
Chap. 4
1.3 ) Liaison d’adresses logiques et physiques (instructions et données)

 La liaison des adresses logiques aux adresses


physiques peut être effectuée en moments différents:
 Compilation: quand l’adresse physique est connue au
moment de la compilation (rare)
p.ex. parties du SE qui sont fixes en RAM
 Chargement: quand l’adresse physique où le programme
sera chargé est connue, les adresses logiques peuvent être
traduites
Allocation statique (rare aujourd’hui)
 Exécution: normalement, les adresses physiques ne sont
connues qu’au moment de l ’exécution
allocation dynamique

10
Chap. 4
Aspects du chargement


Trouver de la mémoire 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é

11
Chap. 4
2) Gestion de la mémoire unifiorme
 Quant la mémoire centrale est le seul support
d’information adressable, on dit qu’on a une
mémoire uniforme. Dans ce cas la taille d’un
programme ne peut être qu’inférieure ou égale à
celle de la dite mémoire.

Allocation contiguë
 Partitions fixes
 Partitions dynamiques
 Fragmentation interne, externe

12
2.4) Allocation contiguë de mémoire

Nous avons plusieurs programmes à exécuter

Nous pouvons les charger en mémoire les uns
après les autres
 le lieu où un programme est lu n’est connu qu’au
moment du chargement

Besoins de matériel: registres translation et
registres bornes

13
Chap. 4
2.4) Allocation contiguë de mémoire

SE

progr. 1

progr. 2

disponible

progr. 3

Nous avons ici 3 partitions pour autant de programmes -


chacun est chargé dans une seule zone de mémoire 14
Chap. 4
2.4.1) Fragmentation: mémoire non utilisée


Un problème majeur dans l`affectation
contiguë:
 Il y a assez d ’espace pour exécuter un
programme, mais il est fragmenté de façon non
contiguë
 La fragmentation peut être:
externe: l`espace inutilisé est entre partitions
interne: l ’espace inutilisé est dans les partitions

15
Partitions fixes

 Mémoire principale
subdivisée en régions
distinctes: partitions
 Les partitions sont soit
de même taille ou de
tailles inégales

N’importe quel progr.
peut être affecté à une
partition qui soit
suffisamment grande

16
Chap. 4
Placement pour partitions fixes

Partitions de tailles
inégales: utilisation de
plusieurs files
 assigner chaque processus à la
partition de la plus petite taille
pouvant le contenir
 1 file par taille de partition
8M
 tente de minimiser la
fragmentation interne
 Problème: certaines files seront 12M
vides s’il n’y a pas de
processus de cette taille (fr.
externe)
17
Chap. 4
Placement pour partitions fixes

Partitions de tailles
inégales: utilisation
d’une seule file
 On choisit la plus
grande partition libre
pouvant contenir le
prochain processus 8M

12M

18
Chap. 4
Partitions fixes

Simple, mais...

Inefficacité de l’utilisation de la mémoire:
tout programme, si petit soit-il, doit
occuper une partition entière. Il y a
fragmentation interne.

Les partitions à tailles inégales atténue ces
problèmes mais ils y demeurent...

19
Chap. 4
Partitions dynamiques


Partitions en nombre et tailles variables

Chaque processus est alloué exactement la
taille de mémoire requise

Probablement des trous inutilisables se
formeront dans la mémoire: c’est la
fragmentation externe

20
Chap. 4
Partitions dynamiques: exemple


(d) Il y a un trou de 64K après avoir chargé 3 processus: pas
assez d’espace pour autre processus
 Si tous les proc se bloquent (p.ex. attente d’un événement), P2 peut
être permuté et P4=128K peut être chargé.
21
Chap. 4
Partitions dynamiques: exemple

 (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 320-224=96K...

Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation
externe
22
Chap. 4COMPACTAGE pour en faire un seul trou de 256K

Stratégies d’allocation des partitions

Comment satisfaire une requête de taille n à partir d’une liste de


blocs.

1. First-fit: Alloue la première partition suffisamment grande pour


loger le processus.
2. Best-fit: Alloue la partition la plus petite suffisamment grand.
Il est nécessaire de parcourir la liste entière à moins que la liste ne
soit triée par taille.
4. Worst-fit: Alloue la partition la plus grande (parcours de toute la
liste).

23
Chap. 4
Compactage

Une solution pour la fragmentation externe

Les programmes sont déplacés en mémoire de façon
à combiner en un seul plusieurs petits trous
disponibles
 Effectuée quand un programme qui demande d’être
exécuté ne trouve pas une partition assez grande,
mais sa taille est plus petite que la fragmentation
externe existante

Désavantages:
 temps de transfert programmes
 besoin de rétablir tous les liens entre adresses de
différents programmes
24
Chap. 4
3) La mémoire virtuelle

• Les ordinateurs d’autrefois étaient équipés d’une


mémoire centrale de capacité très limités (quelques ko).
• Les programmeurs passaient leur temps alors à
optimiser les programmes pour pouvoir les exécuter
avec un minimum d’espace mémoire.
• Pour palier à ce problème les programmeurs ont recours
à la solution des segment de recouvrement.

25
Chap. 4
3) La mémoire virtuelle
Solution : la mémoire virtuelle.

Rendre la taille de la mémoire physique infinie vis-à-vis des


demandes des utilisateurs.

• Principe : la taille du programme (données, code, pile…) peut


dépasser celle de la mémoire disponible.
• Le système stocke alors en mémoire centrale la partie utile et garde
le reste du programme sur la mémoire auxiliaire (le disque).

• Pour mettre en œuvre le mécanisme de la mémoire virtuelle,


plusieurs techniques sont utilisées ; la pagination, la segmentation
et pagination +segmentation.
26
Chap. 4
3) La mémoire virtuelle
1) La pagination

• Diviser l’espace d’adressage virtuel supporté par la mémoire


auxiliaire en pages de mêmes tailles.
• La mémoire centrale pour sa part est elle même divisée en pages
(pages réelles ou physiques) qui ont la même dimension que
celles existantes dans l’espace virtuel.
• Avoir en mémoire centrale que certaines pages (réputées utiles),
les autres pages résident en mémoire auxiliaire et doivent êtres
amenées en mémoire centrale lorsqu’on y fait référence.

27
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• Les adresses utilisées par le programme sont des adresses


virtuelles. Le problème alors, consiste à trouver un moyen de
transformer ces adresses en adresses réelles dans la mémoire
centrale.
Exemple
• Soit un processeur de bus d’adresse de 16 bits.
L’espace d’adressage est de 216 mots.
Quand le programme référence une donnée (lecture, écriture), il
engendre une adresse sur 16 bits (entre 0 et 65535).

28
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• Prenons 4 bits pour coder le numéro de page et 12 bits


pour sélectionner un mot à l’intérieur d’une page
(déplacement). La mémoire virtuelle contient 16 pages
de 4 Ko chacune.
• Supposons qu’on dispose d’une mémoire physique d e
32 Ko (2 15) de 0 à 32768.
• Le déplacement étant toujours de 12 bits. Il reste 3 bits
pour coder les numéros de pages physiques. Il en
résulte alors 8 pages de 4 Ko chacune.

29
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• Supposons qu’on dispose d’une mémoire physique d e 32 Ko (2


15
) de 0 à 32768.
• Le déplacement étant toujours de 12 bits. Il reste 3 bits pour
coder les numéros de pages physiques. Il en résulte alors 8
pages de 4 Ko chacune.

30
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• La correspondance entre les pages virtuelles et les pages


physiques se fait à travers une table appelée table de pages.

31
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• La correspondance entre les pages virtuelles et les pages


physiques se fait à travers une table appelée table de pages.

P= : Page virtuelle présente en mémoire physique


M : Page modifiée
D : Droit d’accès
Page physique : désigne le numéro de la page réelle en mémoire physique
32
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

• Le numéro de la page virtuelle sera utilisé comme index d’entrée


dans la table de pages pour localiser la page physique.
Le déplacement est le même (les pages physique et virtuelle on la
même taille)
• Si la page virtuelle n’est pas présente en mémoire physique, il se
produit un défaut de page.
 

33
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses

34
Chap. 4
3) La mémoire virtuelle
1) La pagination: Le défaut de page
Lorsque l’adresse virtuelle référence une page qui n’est pas présente
en mémoire physique, le mécanisme d’adressage génère alors un
défaut de page.
Si la mémoire physique est pleine :
• Virer de la mémoire physique une page (remplacement) :
• Choisir une page "victime",
• Si elle a été modifiée, la réécrire sur disque,
• Modifier les indicateurs de présence en TP (table de pages)

Puis, dans tous les cas :

Charger la page référencée en mémoire physique (placement) ;


Modifier les indicateurs de présence en TP.
 le choix de la page « victime » se fait selon une stratégie de
remplacement.
 
35
Chap. 4
3) La mémoire virtuelle
1) La pagination: Stratégies de remplacement

• FIFO  (Firt In First Out): ordre chronologique de chargement.


On remplace la page la plus anciennement chargée, ce qui implique
une datation lors du chargement de chaque page virtuelle.

• LRU (Least Recently Used): on remplace la page la moins


récemment utilisée ce qui impose, encore, de dater les pages.

• LFU (Least Frequently Used) : on remplace la page la moins


fréquemment utilisée. Pour cela, on a besoin d’un compteur de
fréquence d’utilisation de chaque page.

• RNDOM : il s’agit de choisir au hasard la page à remplacer. Ce qui


ne nécessite pas d’informations supplémentaires
 

36
Chap. 4
3) La mémoire virtuelle
1) La pagination

Exemple

Soit un programme composé de 7 pages virtuelles.


On lui réserve 4 pages physiques pour s‘exécuter.
La chaîne de référence est présentée comme suit :
1,2,3,3,2,1,2,4,5,3,6,2,1,7,4
Selon les algorithmes FIFO, LRU, LFU, on obtient les résultats
suivants.
 

37
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
FIFO

38
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
LRU

39
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
LFU

40
Chap. 4
Exercices
Exercice 1

Donner le comportement de la mémoire selon les stratégies


d’allocation suivantes : Firt Fit, Best fit et worst Fit.
Si aucun espace mémoire n'est suffisant pour contenir le bloc,
l’allocation est refusée.
 

41
Chap. 4
Exercices
Exercice 2

Soit une architecture proposant des adresses virtuelles sur 32 bits et


des adresses physiques sur 16 bits et la taille d’une page est de 4 Ko.
1. Quel est le nombre des pages physiques 
2. Quel est le nombre de bits pour coder le numéro des pages
virtuelles
3. En déduire le nombre maximal des pages virtuelles.

Exercice 3
Soit la liste des pages virtuelles référencées comme suit :
010 2 3 3 5 4 4 6 4 6
La mémoire centrale est composée de trois pages initialement vides.
Représentez l'évolution de la mémoire centrale au fur et à mesure des
accès pour chacune des deux politiques de remplacement de pages
LFU et LRU. Notez les défauts de pages éventuels et les pages
victimes. Quelle est la politique optimale ?
42
Chap. 4
3) La mémoire virtuelle
2) La segmentation

• La segmentation consiste à diviser un programme en modules ou


segments.

• Chaque segment correspond à une entité logique telle que : une


procédure ou un bloc de données.

• Les segments n’ont pas toujours la même taille. De plus un segment


ne peut contenir qu’un seul type d’information (contrairement
aux pages qui contiennent un mélange).

• Un segment virtuel est de même taille qu’un segment en mémoire


physique.

43
Chap. 4
3) La mémoire virtuelle
2) La segmentation
• Un espace adresse logique est un ensemble de segments.
• Chaque segment possède un nom (les segments sont numérotés)
et une longueur.
Adresse logique: ( numéro de segment, déplacement)

44
Chap. 4
3) La mémoire virtuelle
2) La segmentation Mécanisme de transformation d’adresses

La fonction de « mapping » d’adresses (virtuelle à physique) consiste en les


opérations suivantes :
- Extraire l’adresse virtuelle du programme qui est sous la forme de <S, A>
Avec : S est le numéro de segment et A est une adresse dans le segment
- Utiliser S comme index d’entrée dans la table des segments

45
Chap. 4
3) La mémoire virtuelle
2) La segmentation Mécanisme de transformation d’adresses

46
Chap. 4
3) La mémoire virtuelle
2) La segmentation Le défaut de segment
• Le traitement de défaut de segment se fait comme dans le cas de la
pagination, Ce qu’il faut préciser concerne les points suivants :

- S’il s’agit d’un accès en lecture, le processus fautif peut être


abandonné sans aucune autre forme de procès.

- S’il s’agit d’un accès en écriture et si l’adresse virtuelle provoquant le


déroutement est voisine de la fin du segment, le problème peut
être considéré par le système comme une demande implicite
d’extension du segment et de l’allonger.

47
Chap. 4
3) La mémoire virtuelle
2) La segmentation: Partage de segment

• Le partage de segment signifie qu’un segment référencé sous le


même nom symbolique par plusieurs processus peut être
présent en un seul exemplaire en mémoire centrale.

• Ce segment partagé peut être un segment de code ou segment de


données globales à plusieurs processus soit en lecture, soit en
lecture/écriture.

• L’intérêt essentiel du partage de segment réside dans la diminution


du taux de déroutement et le gain en espace.

48
Chap. 4
3) La mémoire virtuelle
3) La segmentation + pagination:
• Un système à mémoire segmentée-paginée regroupe les avantages
de segmentation et de la pagination.
• Pour réaliser ça il faut mettre en place :
- Une table des segments
- Une table des pages pour chaque segment
Le mécanisme d’adressage utilise des adresses virtuelles définies
comme suit :
< N° segment, N° de page dans le segment, Déplacement dans la
page >
• Le calcul de l’adresse physique passe alors par trois étapes :

-Une recherche dans la table des segments du segment physique,


-Une recherche dans la table des pages associées à ce segment
-Un déplacement dans cette page physique.

49
Chap. 4
3) La mémoire virtuelle
4) Comparaison segmentation et pagination

Pagination Segmentation
Le programmeur a -t-il besoin de savoir Non Oui
que cette technique est utilisée ?
Combien y-a-t-il d’espace d’adressage ? Un seul Plusieurs

Peut-on distinguer entre données et Non Oui


procédures et les protéger séparément ?
Partage de données et des procédures Non Oui

Oui Non
En cas de modification en recompile tout.
Séparer logiquement
Pourquoi l’a-t-on inventée ? Grand espace d’adressage certains espaces
d’adressage.

50
Chap. 4

Vous aimerez peut-être aussi