Vous êtes sur la page 1sur 7

Gestion de la Mémoire

•Segmentation pure
•Segments paginés

Segmentation

n La segmentation est un schéma de gestion de la mémoire basée


sur la vue qu’un utilisateur peut avoir d’un programme.
n Un programme est composé de segments. Un segment est une
unité logique représentant l’un des éléments suivants:
n programme principal,
n procédure,
n fonction,
n méthode,
n objet,
n variables locales, variables globales,
n pile,
n etc…
n La segmentation permet d’avoir deux dimensions dans l’espace
d’adressage (numéro de segment et une adresse à l’intérieur de celui-ci)
n Les données ou bien la pile peuvent changer de taille plus facilement sans que
cela affecte d’autres segments.

1
Comment un utilisateur voit un programme ?

Les segments comme unités d’alloc mémoire

0 3

2
3 1

espace usager mémoire 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)
4

2
Segmentation

Mémoire segment ée exploitée par les tables d’un compilateur et permettant à chaque table de croître ou
de diminuer indépendamment des autres.

Mécanisme pour la segmentation


n Un tableau contient l’adresse de début de tous les segments dans un processus
n Chaque adresse dans un segment est ajoutée à l ’adresse de début du segment par la
MMU
0

1
Adr de 3
segment courant Adr de 2
Adr de 1 2
Adr de 0

tableau de segments
mémoire physique
6

3
Détails

n L’adresse logique consiste en une paire:


n <No de segm, décalage>
n où décalage est l’adresse dans le segment (qui à son

tour est constitué d’un numéro de page et d’un mot


dans la page)

Implementation de la Segmentation pure

(a)-(d) Evolution de la fragmentation externe


(e) Compactage de la mémoire

4
A chaque référence mémoire l’algorithme
suivant est exécuté
Le num éro de segment
Récupérer descrip-
permet de retrouver le
teur de segment
descripteur de segment.

sinon
Vérifier si table des
? Pages du segment
Trap Si oui En mémoire.

Défaut de segment La localiser


Examiner l’entrée dans
sinon la table des pages, de la
page virtuelle demandée
? ( est-elle en mémoire ? )
Si oui
Trap
Défaut de page Extraire de la table des
pages, l’adresse de base
de la page
Le déplacement est
ajoutée à l’adresse de
base pour obtenir
Ajouter le l’adresse du mot en
déplacement mémoire.

Lire/écrire
9

Schéma du matériel de segmentation

Adresse logique comporte deux champs: <numsegment, déplacement>,

Table des Segments –


Chaque entrée de la table
comporte:
– base – pointe sur l’adresse
physique de début du
segment dans la mémoire
physique.
– limit – précise la longueur
du segment.

10

5
Architecture de la Segmentation
n Translation
n dynamique
n Basé sur la table des segments
n Protection
n read/write/execute privilèges
n Partage.
n Segments partagé
n Même numéro de segment
n Allocation.
n first fit/best fit, etc…
n fragmentation externe

11

Exemple de Segmentation

12

6
Partage de segments: le segment 0 est partagé

P.ex: DLL utilisé par plusieurs usagers


13

Comparaison entre la pagination et la segmentation

Considérations Pagination Segmentation


Le programme doit-il Non Oui
Connaître la technique utilisée ?
Combien y a-t-il d’espace 1 Plusieurs
d’adressage linéaires ?
L’espace total d’adressage peut - Oui Oui
il dépasser la taille de la
mémoire ?
Les proc édures et les données Non oui
peuvent-elles être séparées et
protégées séparément ?
Peut-on traiter facilement des Non Oui
tables dont la taille varient ?
Le partage de procédures entre Non Oui
utilisateur est-il simplifié ?
Pourquoi cette technique a-t-elle Pour obtenir un grand espace Pour permettre la séparation des
été inventée ? d’adressage linéaire sans avoir à programmes et des données dans des
acheter de la mémoire espaces d’adressage logiquement
indépendants et pour faciliter le
partage et la protection.
Avantages n Taille des pages constantes n Facilité de programmation
n Non-conservation en mémoire de n Modularité
l’intégralité d’un segment si seule n protection
une partie de celui -ci est utilisée. - partage
14