0% ont trouvé ce document utile (0 vote)
71 vues7 pages

Segmentation en Gestion de Mémoire

La segmentation est une technique de gestion de la mémoire qui divise la mémoire en segments logiques. Chaque segment représente une partie d'un programme comme une fonction ou une variable. La segmentation permet une meilleure protection et le partage de code entre processus.

Transféré par

bakic
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
71 vues7 pages

Segmentation en Gestion de Mémoire

La segmentation est une technique de gestion de la mémoire qui divise la mémoire en segments logiques. Chaque segment représente une partie d'un programme comme une fonction ou une variable. La segmentation permet une meilleure protection et le partage de code entre processus.

Transféré par

bakic
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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é

[Link]: 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

Vous aimerez peut-être aussi