0% ont trouvé ce document utile (0 vote)
27 vues71 pages

Gestion Mémoire: Concepts et Techniques

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en décrivant les différents types de mémoire et le rôle du gestionnaire de mémoire. Il aborde également des techniques telles que le swapping, la pagination et la segmentation, ainsi que les exigences de gestion de la mémoire, y compris la protection, le partage et l'organisation logique/physique. Enfin, il présente les méthodes d'allocation de mémoire, notamment l'allocation contiguë et non contiguë.

Transféré par

ameuryoussef2004
Copyright
© © All Rights Reserved
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)
27 vues71 pages

Gestion Mémoire: Concepts et Techniques

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en décrivant les différents types de mémoire et le rôle du gestionnaire de mémoire. Il aborde également des techniques telles que le swapping, la pagination et la segmentation, ainsi que les exigences de gestion de la mémoire, y compris la protection, le partage et l'organisation logique/physique. Enfin, il présente les méthodes d'allocation de mémoire, notamment l'allocation contiguë et non contiguë.

Transféré par

ameuryoussef2004
Copyright
© © All Rights Reserved
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

Princess Nora University

Département Informatique

Système
d’exploitation 1

1 2023-2024
Chapitre-4
Gestion de la mémoire

Introduction
Chapitre 4: La Gestion de la mémoire

1. Introduction
2. La mémoire et le gestionnaire de la mémoire
3. Le Swapping
4. Exigence de gestion de la mémoire
5. Les techniques de gestion de la mémoire

3
OBJECTIFS:

➢ Fournir une description détaillée des différentes manières pour


organiser la mémoire

➢ Discuter de diverses techniques de gestion de la mémoire,


comme la pagination et la segmentation

4
Introduction

5 5
Introduction

La mémoire est une ressource importante qui doit être gérée avec
attention.
Même si la quantité de mémoire d’un ordinateur a beaucoup
augmentée, la taille des programmes s’accroît aussi.
La situation idéale serait de donner à chaque programmeur une
mémoire infiniment grande, infiniment rapide, non volatile et, de
plus, bon marché. La technologie ne fournit pas de telles
mémoires.
Le SE a le rôle de coordonner l’utilisation des différentes mémoires.

6
Introduction

 Une machine comporte différents types de mémoire, de la plus


rapide/coûteuse/petite à la plus lente/bon marché/grande.

7
La mémoire et le gestionnaire
de la mémoire

8 8
La mémoire et le gestionnaire de la mémoire

Mémoire: grand tableau de mots (octets), chacun possédant sa propre


adresse.
La CPU extrait les instructions de la mémoire en fonction de la valeur
d’un compteur d’instructions.
Système de gestion de la mémoire (Memory manager ): partie du SE qui
gère la hiérarchie de stockage
Suivre les parties de la mémoire qui sont utilisées ou non utilisées.
Allouer/libérer espace mémoire aux processus.
Contrôler le swapping entre la mémoire principale et le disque.

9
La mémoire et le gestionnaire de la mémoire

Mémoire principale: Emplacement où se trouvent les

programmes et les données quand le processeur les exécute.

On l'oppose au concept de mémoire secondaire,

représentée par les disques, de plus grande capacité, où les

processus peuvent séjourner avant d'être exécutés.

10
La mémoire et le gestionnaire de la mémoire
 La gestion efficace de la mémoire est indispensable dans un
système de multiprogrammation.
Termes de gestion de la mémoire

Cadre Un bloc de la mémoire principale de longueur fixe.

Un bloc de données de longueur fixe et qui réside dans la mémoire


secondaire (comme le disque). Une page de données peut
Page
temporairement être copié dans un cadre de mémoire principale.

Un bloc de données de longueur variable et qui réside dans la


mémoire secondaire. Un segment entier peut temporairement être
copié dans une région disponible de mémoire principale
Segment (segmentation).
Un segment peut être divisé en pages qui peuvent être copiés dans
la mémoire principale (segmentation combinée et pagination)
11
La mémoire et le gestionnaire de la mémoire
 Tous les processus ont besoin d'être ordonnancés de façon à ce que tous les
utilisateurs obtiennent l'illusion que leurs processus résident dans la mémoire RAM.
 La fonction du gestionnaire de la mémoire:

 Garder une trace des parties de la mémoire qui sont en cours


d'utilisation et les parties qui ne le sont pas.

 Allouer de la mémoire à des processus quand ils en ont besoin et la


désallouer quand ils achèvent leurs traitements.

 Gérer le swapping entre la mémoire principale et le disque lorsque la


mémoire principale n’a pas assez d’espace pour contenir tous les
processus.

12
Swapping

13 13
Le swapping (le va-et-vient)

 Recopier (swap out) sur une “mémoire de réserve” (un espace sur le
disque) les processus non actifs ;

 Ramener (swap in) en mémoire centrale les processus réactivés.

14
Exigence de gestion de la
mémoire

15 15
Exigence de gestion de la mémoire

 Divers mécanismes et politiques sont nécessaires à la gestion


efficace de la mémoire:

1. Réallocation

2. Protection

3. Partage

4. Organisation logique

5. Organisation physique

16
Exigence de gestion de la mémoire
1. Relocation
 Dans un système multiprogrammation, la mémoire principale disponible est
généralement partagée entre un certain nombre de processus.

 Généralement, un programmeur, au moment de l’exécution de son programme, ne


peut pas connaitre en avance quels autres programmes qui sont résidents dans
la mémoire principale.

 Une fois qu'un programme est chargé sur le disque (enregistrer), il serait impossible
de savoir si au cours de son prochain chargement dans la mémoire principale
(exécution) d'être placé dans la même zone de mémoire principale comme
précédemment ou non.

 Nous ne pouvons pas savoir à l'avance où le programme sera placé dans la


mémoire.
17
Exigence de gestion de la mémoire
1. Relocation

 Le système d'exploitation devra connaître l'emplacement des


processus:

18
Exigence de gestion de la mémoire
2. Protection

 Chaque processus doit être protégé contre les interférences


indésirables causées par d'autres processus, même accidentelle ou
intentionnelle.

 Les programmes dans d'autres processus n’ont pas le droit de se


référencer à des emplacements mémoires occupés par un autre
processus à des fins de lecture ou d'écriture sans autorisation de ce
dernier.

La satisfaction de l'exigence de réallocation augmente la difficulté


de satisfaire à l'exigence de protection.

19
Exigence de gestion de la mémoire
2. Protection

 Puisque l'emplacement d'un programme dans la mémoire principale est

imprévisible, il est impossible de vérifier lors de la compilation les

adresses absolues pour assurer sa protection.

 Toutes les références de mémoire générées par un processus doivent

être vérifiées au moment de l'exécution pour s’assurer qu'ils ne

portent que sur l'espace mémoire alloué à ce processus.

20
Exigence de gestion de la mémoire
2. Protection

 un processus utilisateur ne peut pas accéder à aucune partie du


système d'exploitation, ni programme, ni données.

 Sans des procédures spéciaux (autorisation), un processus ne


peut pas accéder à la zone de données d'un autre processus.

➢ Le processeur doit être en mesure d'interrompre de telles


instructions au point d'exécution.

21
Exigence de gestion de la mémoire
2. Protection

 l'exigence de protection de la mémoire doit être assurée par le


processeur (matériel) et non pas par le système d'exploitation
(logiciel).

 Ceci est parce que le système d'exploitation ne peut pas anticiper


toutes les adresses mémoire qu'un programme l’occupe.

 Même si une telle anticipation était possible, il serait extrêmement


laborieuse pour surveiller chaque programme à l'avance pour les
éventuelles violations des adresses mémoire.

22
Exigence de gestion de la mémoire
2. Protection

 Protection fondamentale : en général, chaque processeur


dispose de 2 registres
 REGISTRE DE BASE : contient l’adresse début de la zone de
processus

 REGISTRE LIMITE : indique la taille de la zone de processus.


➢ Permet de contrôler que les accès sont limités à la zone
allouée au processus en cours!

23
Exigence de gestion de la mémoire
2. Protection

 Si le registre de base contient la valeur


300,040 et le registre limite est
120,900; le programme peut légalement
accéder à toutes les adresses de
300,040 à 420,939 (inclus).
 La protection de cette espace mémoire
est accomplie par le processeur qui
compare chaque adresse générée en
mode utilisateur avec les registres.

24
Exigence de gestion de la mémoire
2. Protection

 Toute tentative par le programme qui s’exécute en mode utilisateur pour accéder à
un espace mémoire du système d'exploitation ou espaces mémoires des autres
utilisateurs provoque une erreur fatale.

25
Exigence de gestion de la mémoire
3. Partage

 Tout mécanisme de protection doit offrir une souplesse nécessaire pour


permettre à plusieurs processus d’accéder à une même zone de la mémoire
principale.
 Exemple:
 Si un certain nombre de processus sont en cours d'exécuter le même
programme, il est avantageux de permettre à chaque processus d’accéder à la
même copie du programme plutôt que d'avoir sa propre copie distincte.

 Le système de gestion de la mémoire doit donc permettre un accès


contrôlé aux zones de mémoire partagées sans compromettre la protection
essentielle!
26
Exigence de gestion de la mémoire
4. Organisation Logique/physique

 Une adresse mémoire physique : une « case » dans la mémoire


centrale ;

 Une adresse mémoire logique : une adresse utilisée par un


programme et est calculée lors de la compilation.
 Les adresses de l'espace d'adressage du processus ne sont pas les
adresses physiques.
⇒ Nécessite de faire la correspondance entre adresse physique et
adresse logique ➔ Adresse physique ≠ Adresse logique

27
Exigence de gestion de la mémoire
4. Organisation Logique/physique

 Le CPU manipule des adresses logiques (emplacement relatif).

 Les programmes ne connaissent que des adresses logiques, ou virtuelles.

 L'espace d'adressage logique (virtuel) est donc un ensemble d'adresses pouvant


être générées par un programme.

 L'unité mémoire manipule des adresses physiques (emplacement mémoire).

 Elles ne sont jamais vues par les programmes utilisateurs.

 L'espace d'adressage physique est un ensemble d'adresses physiques


correspondant à un espace d'adresses logiques.

28
Exigence de gestion de la mémoire
4. Organisation Logique/physique

 Au moment de l’exécution, il est nécessaire de convertir les adresses logiques en


adresses physiques!
▪ Imaginons un système où une adresse physique est obtenue en ajoutant à
chaque adresse logique (manipulée par le CPU) l’adresse de base contenue
dans un registre.

29
Schéma de conversion
 Adresse physique= adresse logique + registre
de transition

❑ registrede transition
contient 14000
o si l’adresse logique =0 alors
l’adresse physique= 0+14000
=14000
o si l’adresse logique =346
adresse physique=
346+14000=14346

30
Exigence de gestion de la mémoire
4. Organisation Logique/physique

300,040 420,939

420,440
406,440

31
Les techniques de gestion de
la mémoire

32 32
Les techniques de la gestion de Mémoire

Les méthodes d’allocation

Méthodes d’allocation Pagination


Segmentation
contiguë

Partitionnement Partitionnement
statique dynamique.
(Fixed-partition (Variable size method)
allocation)

33
Les techniques de gestion de la mémoire

 Durant la phase de chargement du processus, l’OS doit connaître le


mode d’allocation à utiliser.

 Pour un espace donné on peut choisir deux modes d’allocation :

 Allocation contiguë : consiste à placer la totalité d’un programme à


des adresses consécutives.

➢ Espace d’adressage linéaire.

 Allocation non contiguë : consiste à fractionner le programme et à


placer les différents fragments à des adresses dispersées.

34
Les techniques de gestion de la mémoire

 Allocation contiguë:
 Partitionnement statique.
 Partitions fixes.
 Partitionnement dynamique.
 Partitions variable.

 Allocation non contiguë

 Segmentation.
 Pagination simple.
 Pagination à la demande.
Les systèmes récents utilisent la mémoire virtuelle

35
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë

❑ La Méthode la plus simple :


 Mémoire principale subdivisée en régions distinctes:
partitions.

 Les partitions sont soit de même taille ou de tailles inégales.


 Chaque partition peut contenir un processus:

 Limiter du nombre de processus au nombre de partitions.

 Quand une partition est libérée, un autre processus est choisi

36
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.1 Partition fixe
 tout processus dont la taille est
inférieure ou égale à la taille de la
partition peut être chargé dans
n’importe quelle partition disponible.
 Si toutes les partitions sont pleines, le
système d'exploitation peut décharger
(swapper out) les processus qui ne
sont ni à l’état prêt ni à l’état
exécution et charger (swap in) d’autres
processus.
37
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.1 Partition fixe

 Un programme peut être trop


volumineux pour être allouer dans
une partition.
 Dans ce cas, le programmeur doit
concevoir un programme de sorte
qu’une seule partie du programme
doit être chargée dans la mémoire
principale à un instant donné
(module).
38
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.1 Partition fixe
 Etant donnée la taille d’une partition et la taille d’un processus, 3 cas se présentent:
 Cas 1: taille de la partition = taille de processus ➔ Aucune perte de mémoire
 Cas 2: taille de la partition > taille de processus ➔ fragmentation interne --
perte de mémoire
 Cas 3 : taille de la partition < taille de processus ➔ fragmentation externe

P4

P3
5Ko

P2
2Ko

P1
1Ko
SE

39
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable

 Pour surmonter certaines difficultés avec partitionnement statique,


une approche connue sous le partitionnement dynamique a été
développée.

 Avec le partitionnement dynamique, les partitions varient en tailles


et en nombre.

 Quand un processus est mis en mémoire principale, il est affecté


exactement autant de mémoire qu’elle a besoin et pas plus!

40
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable

41
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable
 Au cours de temps, la mémoire devient de plus en plus fragmentée, et
l'utilisation de la mémoire diminue.

 Ce phénomène est connu sous le nom de fragmentation externe, indiquant


que la mémoire externe à l'ensemble des partitions est de plus en plus
fragmentée.

 Une technique pour surmonter la fragmentation externe est le compactage:

 De temps en temps, le système d'exploitation déplace les processus de sorte


qu'ils deviennent contigus et la totalité de la mémoire libre deviennent
ensemble dans un seul bloc.

Le compactage de la mémoire consomme de temps!


42
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable

 La mémoire est formée d’un ensemble de zones libres et de zones


occupées (allouées).

 Allouer un programme P de taille « Taille(P) » :

 Trouver une zone libre telle que Taille(zone libre) >= Taille(P)

 3 stratégies principales :
 La première zone qui convient (le premier ajustement) --
First Fit

 Le meilleur ajustement -- Best Fit

 Le pire ajustement -- Worst Fit


43
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable

 First Fit
Trouver la première zone libre suffisamment grande pour pouvoir y placer le
programme.
n-1 n-1

150K 150K

P6 P6
80K
100K 100K

P5 P5
Programme P7 40K
120K P7

P3 P3

60K 60K
Système Système
0 0

☺ Solution simple, peu coûteuse et la recherche est accélérée.


 Concentration des résidus en tête de la liste chaînée des zones libres!
44
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable
 Best Fit
Chercher dans toute la liste des zones libre, et choisir la plus petite zone libre qui puisse
contenir le programme à allouer.
n-1
 Produire le plus petit trou résiduel.
n-1 150K
150K
P6
P6 20K P7
100K 80K P5
P5 120K

120K Programme P7 P3
P3 60K
60K Système
0
Système
0
 Parcourir toute la liste chaînée de zones libre → pas assez efficace
 Trier (ordre croissant) la liste selon les tailles des zones libres
 Génération de fragments qui risquent d’être inutilisables!
45
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.2 Partition variable
 Worst Fit
Politique du plus grand résidu.

Chercher à placer un programme dans la plus grande zone libre.

n-1 n-1
70K
150K
P7

P6 P6

100K 80K 100K

P5 P5
120K
120K Programme P7

P3 P3

60K 60K
Système Système
0 0

46
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.3 Fragmentation

 Fragmentation interne : certains processus peuvent ne pas utiliser


toutes la mémoire qui leur est allouée.

Exemple – Méthode de partition fixe

 Fragmentation externe : il se peut qu’il n’y ait pas de segment


continue de mémoire pouvant accueillir un processus alors que la
somme de l’espace dans les zones libres serait suffisant

Exemple – Méthode de partition variable

47
Les techniques de gestion de la mémoire
1. Les méthodes d’allocation contiguë
1.3 Fragmentation

Solutions du problème de la fragmentation


1- Le compactage

Objectif: Brasser les contenus de la mémoire afin de placer toute la mémoire


libre ensemble dans un seule bloc.
Le compactage n’est pas toujours possible. Quand il est possible, nous
devons estimer son coût. . Peut être très cher!

2- Les méthodes d’allocation non-contiguë


L’utilisation du techniques pagination et segmentation

48
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë

Adresse logique ou adresse virtuelle (virtual address)


Adresse générée par la CPU.
Adresse physique
Adresse vue par l’unité de mémoire.
MMU (Memory Management Unit ): Dispositif matériel
qui fait la conversion des adresses virtuelles à physiques

49
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

Pagination : découpage arbitraire d’un programme en plusieurs pages de


même taille ;

 Méthode permettant de fractionner la mémoire en petits blocs égaux


(frames);

 On va fractionner les programmes en petits blocs (pages) de même


dimension que les partitions de la mémoire.

 Le terme frames ou cadre en français est utilisé car un cadre va tenir une
page d’information.

 Taille de frame=taille du page

50
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

Nous aurons cependant besoin d’une table pour pouvoir retrouver les adresses de
chaque partie de notre programme.
La Figure ci-dessous illustre la table des pages au temps (F). On peut y voir aussi une
liste des frames qui sont disponibles.

51
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
objectif
 Éliminer fragmentation en raison de larges segments.
 Ne pas allouer de la mémoire qui ne sera pas utilisé.
 Activez le partage fine.
 Pagination: mémoire est divisée en pages de taille fixes
 Pour l’ensemble la mémoire virtuelle et physique.

Autre terminologie
 Une page virtuelle: la page
 Une page physique: cadre

52
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
 Bits d’adresse = numéro de page + offset de page
 Traduire le numéro d’une page virtuel (VPN) vers une numéro de
page physique (cadre) (PPN / PFN) à l'aide table de page.c

53
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
 Chaque adresse générée par la CPU est divisée en deux parties: un
numéro de page (p) et un décalage de page ou offset (d).
 Le numéro de page est utilisé comme index dans une table de pages.
 La taille d'une page est une puissance de 2, variant entre
512 octets et 1 Go par page, selon l'architecture de
l'ordinateur.
 La table de page contient l'adresse de base de chaque page en
mémoire physique.
 Cette adresse de base est combinée avec le décalage de page (d) pour
définir l'adresse de mémoire physique qui est envoyée à l'unité de
mémoire.

54
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

m= nombre de bits de l’adresse logique


n= nombre de bits de l’offset
m-n= nombre de bits du numéro de page

Comment convertir de l’addresse logique a


l’adresse physique en pagination???

l’adresse physique= address de base + offset


= (frame # * taille du frame) + offset

55
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

Exemple:
Soit:
n=2 bits
m=4 bits
Taille du page=4 B
Taille du mémoire physique=32 B
>>Convertir l’adresse logique (13) à une adresse physique.

Address logique= 13 (in décimal) = (1101) binaire


Page # = (11) (binaire) = 3 (décimal)
Offset= (01) (binaire) = 1 (décimal)
En utilisant la table de pages>>> frame # = 2
>>> l’adresse Physique du (13) =(2* 4) + 1=9

56
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
Table des Pages avec Quelques Pages sur Disque

57
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

• m-bits d’adresse virtuelles ou logiques,


• x-bits d’adresse physique,
• n-bits de l’offset
• L’espace des addresses logique = 2m
• L’espace des addresses physique = 2x
• L’espace des addresses logique (/size ou taille) = # of pages × page size
• L’espace des addresses physique (/size ou taille) = # of frames × frame size
• Taille du Page= taille du frame = 2n
• # of pages= 2m-n
• Nombre de pages pour un processus = taille process / taille du page (Rounded
up)

58
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
 Nous avons une adresse virtuelle sur 8-bits, adresse physique sur 10
bits, chaque page est de 64 octets.
1. Combien nous pouvons avoir de pages virtuelles?
▪ 28/64 = 4 pages virtuelles
2. Combien nous pouvons avoir des pages physique?
▪ 210/64 = 16 pages physiques
3. Combien nous pouvons avoir dans la table des pages?
▪ La table de pages contient 4 entrées
4. Étant donnée la table de page suivante = [2,5,1,8], quelle est
l’adresse physique pour l’adresse virtuelle 241?
241 = 11110001b
Taille de page = 3 = 11b
offset = 49 = 110001b
Page_table[3] = 8
Adresse physique = 8 * 64 +49 = 561 = 1000110001b
59
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination
 Processeur 32bits, page de 4Ko → nombre de pages = 232/ 212
= 220 pages: une table de pages de plus que un million d’entrées!
Pagination n’a pas de fragmentation externe mais elle souffre de la fragmentation
interne (toujours dans la dernière page)
Exemple:
>> Un processus (p1) taille= 1030 octet , taille du page= 512 octet: Combien de
pages nécessaire pour P1??
# de pages= 1030/512≈ 2.01➔ 3 pages
La dernière pqge est Presque toujours vide…. (allouée mais non utilisée / Internal
fragmentation )

>> La fragmentation s’apparaît dans P1?


L’espace alloué dans les 2 première pages=2*512=1024B
L’espace alloué dans la dernière page (page#3) = 1030-1024= 6B
L’espace non utilisé dans la dernière page= total du fragmentation = 512-6=506 B
60
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

 Pagination supporte le partage en mémoire (possibilité de partager le


même code).
Exemple : considérons un système prenant en charge 40 utilisateurs,
chacun d'entre eux exécutant un éditeur de texte. Si l'éditeur de texte
comprend 150 Ko de code et que la taille moyenne des données
utilisateur est de 50 Ko.
 Pas de partage→ l’espace alloué de mémoire = 8,000 KB
 Si le code est partagé→ l’espace alloué de mémoire = 2,150 KB
Avantages du partage de mémoire :
 Efficacité de l'espace (moins d'espace mémoire sera alloué)
 Efficacité du temps (moins de temps de chargement)

61
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.1 Pagination

Partage de code dans un environnement de pagination


62
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation

Segmentation : découpage d’un programme en fonction de sa


structure en plusieurs segments de tailles différentes.

63
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation

La segmentation: dans cette solution l’espace d’adressage d’un processus est divisé
en segments, générés à la compilation. Chaque segment est repéré par son numéro S
et sa longueur variable L.
Un segment est un ensemble d’adresses virtuelles contiguës.
Une adresse n’est plus donnée de façon absolue, par rapport à l’adressage virtuel.
l’adresse est représentée par le couple (S,d), où S est le numéro de segment et d le
déplacement dans le segment ➔d є [0,L[.
Chaque segment peut croître indépendamment ;
Les segments peuvent être partagés entre plusieurs programmes ;
Une adresse est spécifiée par un numéro de segment et une adresse dans le segment
(offset).

64
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation
Encore une fois, on sépare le programme en petites parties appelées chacune segment.
Ces segments n’ont pas à être de la même taille, il existe cependant une taille maximum
à la longueur d’un segment.
Comme pour la pagination, une adresse est constituée de deux parties : un numéro de
segment et un déplacement (offset)
Étant donné que les segments ne sont pas nécessairement de même longueur, la
segmentation est semblable au partitionnement dynamique.

L’addresse logique < numéro de segment, offset >

65
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation

 Table de segments: utilisé pour convertir des adresses logiques en adresses


physiques
Entrée de la table des segments = (segment de base, limite du segment)
 Chaque processus a une table de segments.
❖ Base = adresse physique de début du segment en mémoire
❖ Limite = taille du segment

 L’addresse logique est composée de:


❖ Numéro du segment (s) -- utilisé comme index dans la table de segments.
❖ offset du segment (d)- est ajouté à l'adresse de base pour définir l'adresse
de la mémoire physique
❖ L’offset de l'adresse logique doit être compris entre 0 et la limite du
segment. Si ce n'est pas le cas, on retourne vers l'OS (tentative d'adressage
logique au-delà de la fin du segment).
66
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation

Segmentation hardware

Comment convertir une adresse logique en adresse physique en segmentation?


IF (offset < limit) then
Physical address= base address+ offset
Else
Trap (address error)

67
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation
 Exemple: Consider le système de segmentation suivant. Convertissez les
adresses logiques suivantes (données en décimal) en adresses physiques.

cas(1): L.A.= 2,53


Segment # =2 , Offset= 53
Base= 4300, Limit= 400
53<400 →TRUE
P.A. = 4300+53=4353

cas(2): L.A.= 0, 1222

Segment # =0 , Offset= 1222


Base= 1400, Limit=1000
1222 < 1000 →FALSE
So, it is illegal address, trap to OS (Adresse non valide)

68
Les techniques de gestion de la mémoire
2. Les méthodes d’allocation non-contiguë
2.2 Segmentation

• La segmentation souffre d’une fragmentation externe.

• Prise en charge de la partage en mémoire.

• Protection de la mémoire implémentée dans la segmentation


en comparant l’offset avec la limite [IF (offset < limit)].

69
Summary
Method Pros (++) Cons (- - )
CMA (Fixed-partition • Simple • Internal fragmentation.
method) • Does NOT Support sharing in memory
(i.e. NO space & time efficiency)
• The degree of multiprogramming is
bound by the number of partition (low
CPU utilization ).
• Amount of fragmentation is high
CMA (Variable- • Simple • External fragmentation.
partition method) • The degree of multiprogramming • Does NOT Support sharing in memory
is NOT bound (high CPU (i.e. NO space & time efficiency)
utilization ). • Amount of fragmentation is high
PAGING • Efficient method • Internal fragmentation.
• Support sharing in memory (i.e. • page table size
space & time efficiency) • Required HW support

SEGMENTATION • Efficient method • External fragmentation.


• Support sharing in memory (i.e. • Segment table size
space & time efficiency)

70
Merci
Fin du Chapitre 4

71

Vous aimerez peut-être aussi