Vous êtes sur la page 1sur 16

Cours- Systèmes d’exploitation 1 LFSI1

Système d’exploitation

Chapitre 3 : Gestion de la Mémoire Centrale

Asma NAJJAR

ISTIC-LFSI1
2018-2019
117

Plan du chapitre
I. Allocation Contiguë
1. Gestion par partitions fixes
1.1 Partitions Fixes de tailles inégales
1.2 Partitions Fixes de tailles égales
2. Gestion par partitions variables
2.1 Algorithmes de placement
– Best Fit, Worst Fit, Next Fit , First Fit
2.2 Gestion par table de bits
2.3 Gestion par liste chainées
II. Allocation NON Contiguë
1. La pagination
2. La segmentation

118

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Introduction
-- La mémoire centrale est une ressource importante et
limitée  Elle doit être gérer d’une façon optimale.

-Pour s’exécuter, un processus doit être placé en mémoire


centrale.

- Un gestionnaire efficace de la mémoire doit assurer les


fonctionnalités suivantes:
• Connaître les parties libres de la mémoire physique;
• Allouer la mémoire aux processus;
• Récupérer la mémoire libérée après la terminaison d’un
processus.
119

Gestion de la mémoire
• Système mono-tâche
– Dans ce cas un seul processus, à un instant donné, occupe
l’ensemble de la mémoire physique disponible.

Noyau du SE Processus 1 Libre


4MO 8MO 4MO
0

On ne peut pas alloué cet


espace à un autre processus.

• Problème: Programmes volumineux.

120

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Gestion de la mémoire
• Système multitâche
– Plusieurs processus, simultanément présents dans la
mémoire centrale

Noyau du SE Processus 1 Processus 2 Processus 3 Libre


4MO 8MO 7MO 9MO 4MO
0

• Problématique
1- Gérer le partage de la mémoire physique entre différents processus 
Comment organiser et allouer la mémoire.
2- Gérer les processus associés à des programmes trop volumineux.

121

Systèmes Multitâches
• Types d’allocation
– Allocation Contigüe
• Pour chaque processus, le gestionnaire de la mémoire
recherche une partition suffisamment grande pour
accueillir la totalité du processus.
– Allocation Non-Contigüe
• Diviser un processus en morceaux et permettre
l’allocation séparée de chaque morceau.

122

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Gestion de la mémoire
• Allocation Contigüe
• Gestion par partitions fixes
– Partitions Fixes de tailles inégales
– Partitions Fixes de tailles égales
• Gestion par partitions variables

• Allocation Non Contigüe


– Pagination
– Segmentation
– Segmentation paginée

123

Allocation Contigüe

124

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Partitions fixes
0 0

• 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 programme peut être


affecté à une partition qui soit
suffisamment grande.

Partitions de 125
Partitions de
tailles égales tailles inégales

Partitions fixes

• Ce partitionnement peut être faite une fois pour toute


au démarrage du système.

• Chaque nouveau processus est placé dans une partition


vide.

• Si la taille de partition est supérieure à l’espace utilisé


par un certain processus  Le reste de cette partition
restera vide ce qui cause une perte d’espace mémoire
126

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Partitions fixes
• Partitions fixes de taille inégales
– Dans ce cas la mémoire est subdivisée en
partitions fixes de tailles inégales.

• Partitions fixes de taille égales


– Dans ce cas , La mémoire est divisé en partitions
fixes de tailles égales.

127

Partitions fixes 0

• Exemple 1: A(8M)

– Processus A(8MO) B (5M)

– Processus B(5MO) 3MO


C (3M)
– Processus C(3MO) 5MO

Espace perdu à l’intérieur des partitions = 3MO+5MO


Problème de fragmentation Interne

Partitions de
tailles égales

128

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Partitions fixes 0

C (3M)
• Exemple 2: 1MO
B (5M)
– Processus A(8MO) 1MO
A(8M)
– Processus B(5MO)
– Processus C(3MO)

 Espace perdu à l’intérieur des partitions = 1MO+1MO


Problème de fragmentation Interne
 La fragmentation interne est moins importante
dans ce cas.
Partitions de
tailles inégales

129

Partitions fixes 0

A (3M)
• Exemple 3: 1MO

– Processus A(8MO)
A(8M)
– Processus B(7MO)
– Processus C(3MO) B (7M)

1MO

 Espace perdu à l’intérieur des partitions = 1MO+1MO


Problème de fragmentation Interne
 Partition entière non utilisée (Troue)
Problème de fragmentation Externe
Partitions de
tailles inégales

130

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Problème de fragmentation
• Fragmentation interne
– La partie d'une partition non utilisée par un processus.
• Fragmentation externe
– Les partitions qui ne sont pas utilisées.

131

Algorithme de placement pour partitions


fixes inégales
0

utilisation de plusieurs files


– Assigner chaque processus à la file
d’attente de la plus petite
partition pouvant le contenir.
Nouveau
– Une file par partition processus

132

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Algorithme de placement pour partitions fixes


inégales
• Exemple : utilisation de plusieurs files
0
- Processus P1(10MO)
- Processus P2(5MO)
P3
- Processus P3(3MO)
-Processus P4(9MO) P5 | P2

-Processus P5(6MO)

P5-P4-P3-P2- P1

• Minimisation de la fragmentation interne


P4 | P1
• Problème: certaines files seront vides s’il n’y a
pas de processus de cette taille 
fragmentation externe

Fragmentation Externe : 2+8+8+16=34MO


133

Algorithme de placement pour partitions


fixes inégales 0

utilisation d’une seule file


– On choisit la plus petite
partition libre pouvant Nouveau
contenir le processus. processus

134

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Algorithme de placement pour partitions


fixes inégales
• Exemple : utilisation d’une seule file d’attente
0
- Processus P1(10MO)
- Processus P2(5MO)
P3
- Processus P3(3MO)
P2
- Processus P4(9MO)
- Processus P5(6MO) P5

P5 | P4 | P3 | P2 | P1

• Minimisation de la fragmentation Externe


P1
• Problème: Fragmentation Interne

Fragmentation Externe : 2+8=10MO P4


Fragmentation Interne : 2+1+1+7+2=13MO 135

Partitions Fixes
• Exercice
– Soit une mémoire centrale utilisant la technique d’allocation
contiguë par partitionnement fixe.
– Cette mémoire est composée de 5 partitions P1, P2, P3, P4 et P5.
– Ces partitions ont pour tailles respectives 100, 500, 200, 300 et
600 KO.
– Soient 4 processus A, B, C et D de tailles respectives 212, 417, 112
et 426 KO.
– Donner les différents états de la mémoire centrale pour charger
les 4 processus A, B, C et D dans les deux cas suivants :
• Gestion par plusieurs files d’attente.
• Gestion par une seule file d’attente.

136

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Partitions fixes
• Simple, mais...

• Inefficacité de l’utilisation de la mémoire: tout


processus, si petit soit-il, doit occuper une
partition entière  Il y a fragmentation
interne.

• Les partitions à tailles inégales atténuent ces


problèmes mais ils y demeurent...
137

Partitions variables (dynamiques)


• Les partitions varient en nombre, en taille et en
position au fur et à mesure que les processus entrent
et sortent de la mémoire  Partitions dynamiques
ou partitions variables

• Au lancement du système, on crée une seule zone


libre de taille maximale.

• Lorsqu'on charge un processus, on le place dans une


zone libre suffisante, et on lui alloue exactement la
mémoire nécessaire.

• Le reste devient une nouvelle zone libre.


138

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Partitions variables (dynamiques)


• Lorsqu'un processus se termine, sa partition
redevient libre, et peut éventuellement s’ajouter à
une zone libre voisine.

Avant la Fin du processus X Après la Fin du processus X

Exemple 1 

Exemple 2 

Exemple 3 

Exemple 4 
139

Partitions variables (dynamiques)

• Exemple

B B B
A A
C C
SE SE SE SE SE SE SE
0 0 0 0 0 0 0

Temps

• Des trous inutilisables se formeront dans la mémoire c’est


la fragmentation externe

140

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

0 0

Partitions variables :
Algorithmes de
Placement
• Pour décider de
l’emplacement du prochain
processus
• Choix possibles:
– Best fit: choisir le plus petit
trou (meilleur accès)
– Worst fit: le plus grand trou
(pire accès)
– First-fit: choisir 1er trou à partir
du début (premier accès)
– Next-fit: choisir 1er trou à
partir du dernier placement
(prochain accès)
141

Algorithmes de placement
• Quel est le meilleur?
– Critère principal: diminuer la probabilité de situations où un
processus ne peut pas être servi, même s ’il y a assez de
mémoire...

• Best-fit: cherche le plus petit bloc possible: le trou créé


est le plus petit possible
– la mémoire se remplit de trous trop petits pour contenir un
programme

• Worst-fit: les trous crées seront les plus grands possibles

• Next-fit: les allocations se feront souvent à la fin de la


mémoire
142

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Le va-et-vient
• Multiprogrammation sans va-et-vient.
– Dans ce cas, un processus chargé en mémoire y séjournera jusqu’à
ce qu’il se termine (pas de va-et vient entre la mémoire et le
disque).

• Multiprogrammation avec va-et-vient.


– Dans ce cas, un processus peut être déplacé temporairement sur le
disque (mémoire de réserve : swap area ou backing store) pour
permettre le chargement et donc l’exécution d’autres processus.
– Le processus déplacé sur le disque sera ultérieurement rechargé en
mémoire pour lui permettre de poursuivre son exécution.

143

Le va-et-vient
• La mémoire est une ressource ne pouvant pas contenir tous
les processus.

 Il est alors nécessaire de déplacer quelques processus inactifs


(soit bloqué, soit prêt) sur le disque et de le ramener en
mémoire centrale avant de les exécuter.

• Ce mouvement des processus entre le disque dure et la


mémoire centrale est appelé va-et-vient ou encore swapping.

144

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Exercice 2 : Partitions variables


• Algorithme: First Fit
– Soit une mémoire de taille 1024ko.
– Le noyau du SE occupe 128 ko.
– Donner l’état de la mémoire après les événements
suivants :
• 4 processus, qui arrivent , à t0, dans l’ordre
suivant :
– P1 (320 ko)
– P2 (224 ko)
– P3 (288 ko)
– P4 (128 ko)
• t1:P2 est prêt.
• t2: P1 se termine.
• t3:P2 est actif .
• t4 : Fin de P3.
• t5:Fin de P2 145
• T6: Fin de P4

Gestion de la mémoire
• Le gestionnaire de la mémoire doit mémoriser les parties
libres et occupées.
– Gestion par table de bits
- La mémoire est divisée en unités d’allocation dont la taille fixe
qui peut varier de quelques mots à plusieurs kilo-octets.
- Chaque unité sera représentée dans la table des bits par:
- 0 si l’unité est libre.
- 1 si l’unité est occupée.

Exemple: 00111100
00111111
A B 100000 …
0 8 16

Table des bits


146

Asma Najjar ISTIC


Cours- Systèmes d’exploitation 1 LFSI1

Gestion de la mémoire
– Gestion par liste chaînée
• Cette technique maintient une liste chaînée des
segments libres et occupées.
• Chaque nœud contient:
– un bit d’état(0L,1O)
– son adresse de début
– et sa taille.

Exemple:
L 0 2 L 6 4
A B
0 8 16 O 2 4 O 10 7

Liste chaînée L 17 4

147

Asma Najjar ISTIC

Vous aimerez peut-être aussi