0% ont trouvé ce document utile (0 vote)
2 vues42 pages

Chapter 5

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en soulignant son importance pour l'exécution des programmes. Il aborde les concepts de réallocation, partage, protection, ainsi que les techniques de gestion de mémoire comme la pagination et la segmentation. Enfin, il présente la mémoire virtuelle comme une solution permettant d'exécuter des processus plus grands que la mémoire physique disponible.

Transféré par

ouahabmohamed2006
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)
2 vues42 pages

Chapter 5

Le document traite de la gestion de la mémoire dans les systèmes d'exploitation, en soulignant son importance pour l'exécution des programmes. Il aborde les concepts de réallocation, partage, protection, ainsi que les techniques de gestion de mémoire comme la pagination et la segmentation. Enfin, il présente la mémoire virtuelle comme une solution permettant d'exécuter des processus plus grands que la mémoire physique disponible.

Transféré par

ouahabmohamed2006
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

Centre universitaire Naama

Gestion de la mémoire

Kaouan Moussa
introduction
 La mémoire est une ressource importante de stockage de
données et de programmes.

 Un programme ne peut s’exécuter que si ses instructions et


ses données (au moins partiellement) sont en mémoire
centrale.

 L’utilisation d’un ordinateur en multiprogrammation, pose


comme condition obligatoire que la mémoire centrale soit
utilisée et/ou partagée entre les différents processus.

Kaouan Mousssa le 12/05/2015 2/31


Rappels sur la compilation

Kaouan Mousssa le 12/05/2015 3/31


Rappels sur la compilation
Représentation des adresses mémoire :
. Code source : adresses symboliques. Par exemple : int
compteur
. Module objet : adresses traduites. Par exemple le 50ème
mot depuis, le début d'espace mémoire.
. Module exécutable, chargement : adresses absolues. Par
exemple l'emplacement mémoire situé à l'adresse FFF7

Kaouan Mousssa le 12/05/2015 4/31


Rappels sur la compilation

Kaouan Mousssa le 12/05/2015 5/31


objectif
Le gestionnaire de la mémoire est un module du système
d’exploitation dont le rôle est:

 la gestion de la mémoire principale (RAM).


(d’augmenter le rendement global du système):.

Le plus grand nombre possible de processus en exécution doit


être gardé en MC.

Kaouan Mousssa le 12/05/2015 6/31


objectif

1. La réallocation (Dynamic Relocation):


Chaque fois qu’un utilisateur demande le lancement d’un
programme, le système doit trouver une place dans la
mémoire pour le charger : il y a réorganisation des
programmes en mémoires.

Kaouan Mousssa le 12/05/2015 7/31


objectif

Kaouan Mousssa le 12/05/2015 8/31


objectif

2. Le partage (Sharing):
Parfois, il est utile de partager un espace mémoire entre
plusieurs processus. Ainsi, le sous-système de la gestion de la
mémoire doit autoriser des accès contrôlés sans
compromettre la protection.

Kaouan Mousssa le 12/05/2015 9/31


objectif

3. La protection (Protection) :
La coexistence de plusieurs processus en mémoire centrale
nécessite la protection de chaque espace mémoire vis-à-vis des
autres. Par conséquent, un processus P1 ne peut accéder à
l’espace d’un processus P2 que s’il est autorisé.

10/3
Kaouan Mousssa le 12/05/2015
objectif

4. Organisation logique :
Le gestionnaire de la mémoire divise l’espace mémoire en
zones logiques appelées partitions ou segments ou
pages. Cette organisation ne reflète pas
nécessairement l’organisation physique de la mémoire.

11/3
Kaouan Mousssa le 12/05/2015
Algorithme d’allocation

12/3
Kaouan Mousssa le 12/05/2015
translation

L'unité centrale manipule des adresses logiques (emplacement


relatif). Les programmes ne connaissent que des adresses
logiques. L'espace d'adressage logique est donc un ensemble
d'adresses pouvant être générées par un programme.

13/3
Kaouan Mousssa le 12/05/2015
translation

L'unité mémoire manipule des adresses physiques


(emplacement mémoire). L'espace d'adressage physique est un
ensemble d'adresses physiques correspondant à un espace
d'adresses logiques.

14/3
Kaouan Mousssa le 12/05/2015
translation

15/3
Kaouan Mousssa le 12/05/2015
Système monoprogrammé

Il s'agit d'un des schémas de gestion de mémoire les plus


simples. Ce schéma est utilisé en systèmes dédiés à des
tâches spécifiques d'une grande simplicité.

16/3
Kaouan Mousssa le 12/05/2015
Système monoprogrammé
Monobloc (Single Contiguous Store Allocation):

la mémoire est subdivisée en deux partitions contiguës, une


pour le système d’exploitation résident souvent placer en
mémoire basse avec le vecteur d’interruptions et l’autre pour le
processus utilisateur. Elle n'autorise qu'un seul processus actif
en mémoire à un instant donné dont tout l’espace mémoire
usager lui est alloué.

17/3
Kaouan Mousssa le 12/05/2015
Système monoprogrammé

18/3
Kaouan Mousssa le 12/05/2015
Système monoprogrammé

le système d'exploitation se trouve au niveau des premières


adresses de la zone mémoire de la RAM. Pour des systèmes
avec un SE embarqué (consoles de jeu, téléphones mobiles,
etc) le système se trouve souvent dans une partie non
modifiable (ROM).

19/3
Kaouan Mousssa le 12/05/2015
Système multiprogrammé
Cette technique nécessite la présence de plusieurs processus
en mémoire. La mémoire est donc partagée entre le système
d'exploitation et plusieurs processus. Il se pose cependant le
problème suivant : comment organiser la mémoire de
manière à faire cohabiter effacement plusieurs processus tout
en assurant la protection des processus ? Deux cas sont alors
à distinguer :

1. Multiprogrammation sans va-et-vient

2. Multiprogrammation avec va-et-vient


20/3
Kaouan Mousssa le 12/05/2015
Partitions multiples (Multiple-
Partition Allocation)
Cette stratégie constitue une technique simple pour la mise en
œuvre de la multiprogrammation. La mémoire
principale est divisée en régions séparées ou partitions
mémoires ; chaque partition dispose de son espace d’adressage.
Le partitionnement de la mémoire peut être statique (fixe)
ou dynamique (variable).

21/3
Kaouan Mousssa le 12/05/2015
Partitions multiples (Multiple-
Partition Allocation)

22/3
Kaouan Mousssa le 12/05/2015
Partitions multiples (Multiple-
Partition Allocation)

23/3
Kaouan Mousssa le 12/05/2015
fragmentation

Les partitions multiples entraînent une fragmentation de la


mémoire. Il y aurait suffisamment de mémoire libre pour
charger un processus, mais aucune partition n’est de taille
suffisante. La fragmentation peut être de deux types :

24/3
Kaouan Mousssa le 12/05/2015
fragmentation

Fragmentation interne (Internal Fragmentation) :


La mémoire allouée peut être légèrement plus grande que la
mémoire requise. Cette différence est appelée fragmentation
interne – de la mémoire qui est interne à une partition mais
n’est pas utilisée.

25/3
Kaouan Mousssa le 12/05/2015
fragmentation

Fragmentation externe (External Fragmentation)


La fragmentation externe se présente quand il existe un espace
mémoire total suffisant pour satisfaire une requête, mais il
n’est pas contigu ; la mémoire est fragmentée en un grand
nombre de petits trous (i.e. blocs libres) où un programme
ne peut être chargé dans aucun de ces trous.

26/3
Kaouan Mousssa le 12/05/2015
fragmentation
Fragmentation externe

27/3
Kaouan Mousssa le 12/05/2015
Comptage(compaction)

Le compactage est une solution pour la fragmentation externe


qui permet de regrouper les espaces inutilisés (i.e. les blocs
libres) dans une partie de la mémoire. Cette opération est
très coûteuse en temps CPU.

28/3
Kaouan Mousssa le 12/05/2015
Comptage(compaction)

29/3
Kaouan Mousssa le 12/05/2015
pagination

Dans le mécanisme de pagination, l’espace d’adressage du


programme est découpé en petits blocs de même taille appelés
pages. L’espace de la mémoire physique est lui-même découpé
en blocs de taille fixe appelés cases ou cadres de page (Frame
Page) ; ce qui facilitera la correspondance d’une page à un
frame.

La taille d’une case est égale à la taille d’une page.

30/3
Kaouan Mousssa le 12/05/2015
pagination

31/3
Kaouan Mousssa le 12/05/2015
segmentation
Dans une mémoire segmentée, chaque unité logique d’un
programme usager est stockée dans un bloc mémoire, appelé «
segment » à l’intérieur duquel les adresses sont relatives au
début du segment. Ces segments sont de tailles différentes.
Un programme sera donc constitué d’un ensemble de
segments de code et de données, pouvant être dispersés en
MC.

32/3
Kaouan Mousssa le 12/05/2015
segmentation

33/3
Kaouan Mousssa le 12/05/2015
Segmentation paginée

Les programmes sont divisés en segments et chaque segment


en pages. Cette technique a été inventée pour le système
Multics.

34/3
Kaouan Mousssa le 12/05/2015
Segmentation paginée

35/3
Kaouan Mousssa le 12/05/2015
Le va-et-vient
consiste à transférer les blocs mémoire de la mémoire
secondaire à la mémoire principale ou vice-versa (Swapping).
Le va-et-vient est mis en œuvre lorsque tous les processus ne
peuvent pas tenir simultanément en mémoire.

36/3
Kaouan Mousssa le 12/05/2015
Le va-et-vient
Un processus qui est inactif (soit bloqué, soit préempté) peut
donc être déplacé temporairement sur une partie réservée du
disque, appelée mémoire de réserve (Swap Area ou Backing
Store). Cette opération est connue sous le nom de Swap-Out.
Le processus déplacé sur le disque sera ultérieurement
rechargé en mémoire pour lui permettre de poursuivre son
exécution ; on parle dans ce cas d’une opération Swap-In.

37/3
Kaouan Mousssa le 12/05/2015
Le va-et-vient

38/3
Kaouan Mousssa le 12/05/2015
La mémoire virtuelle
 La mémoire virtuelle (Virtual Memory) est une technique
qui permet l’exécution de processus ne pouvant pas être
chargés dans leur totalité en MC.

 Afin qu’un programme soit exécuté, seulement les morceaux


qui sont en exécution ont besoin d’être en MC.

 Les autres morceaux peuvent être sur mémoire secondaire


(Ex. disque en général), prêts à être amenés en MC sur
demande.

39/3
Kaouan Mousssa le 12/05/2015
La mémoire virtuelle

40/3
Kaouan Mousssa le 12/05/2015
La mémoire virtuelle
avantage
 La taille d’un programme n’est plus limitée par la taille de la
mémoire physique.

 Comme chaque programme utilisateur pourrait occuper


moins de mémoire physique, il serait possible d’exécuter
plus de programmes en même temps.

41/3
Kaouan Mousssa le 12/05/2015
Merci de votre attention

Kaouan Mousssa le 12/05/2015

Vous aimerez peut-être aussi