Gestion de Le Mémoire Partie 1
Transcript of Gestion de Le Mémoire Partie 1
-
7/21/2019 Gestion de Le Mmoire Partie 1
1/9
Gestion de le mmoire
Partie 1: La fonction de
mmorisation
-
7/21/2019 Gestion de Le Mmoire Partie 1
2/9
Trois problmes rsoudre vis--vis de
la mmoire :
Dfinir un espace d'adressage indpendant
pour chaque processus
Protger les espaces d'adressages des
processus entre eux
Allouer de la mmoire physique chaque
espace d'adressage
-
7/21/2019 Gestion de Le Mmoire Partie 1
3/9
Le chargement dynamique
-
7/21/2019 Gestion de Le Mmoire Partie 1
4/9
Le chargement dynamique
-
7/21/2019 Gestion de Le Mmoire Partie 1
5/9
Le dcoupage de la mmoire
La mmoire centrale peut-tre dcoupe de troisfaons :
la segmentation : les programmes sont dcoups en
parcelles ayant des longueurs variables appeles
segments.
la pagination : elle consiste diviser la mmoire en
blocs, et les programmes en pages de longueur fixe.
une combinaison de segmentation et de pagination :
certaines parties de la mmoires sont segmentes, les
autres sont pagines.
-
7/21/2019 Gestion de Le Mmoire Partie 1
6/9
Organisation de la mmoire dun
processus
-
7/21/2019 Gestion de Le Mmoire Partie 1
7/9
Organisation de la mmoire dun
processus
Le segment de code
Le segment de code est obtenu en copiant directement enmmoire le segment de code du fichier excutable.
Au cours de l'excution du programme, la prochaine instruction excuter est repre par un pointeur d'instruction.
Le segment de donnes Au dessus du segment de code se trouve le segment de
donnes.
Ce segment est traditionnellement compos d'un segment dedonnes initialises (data), qui est directement copi partir de
l'excutable, et d'un segment de donnes non initialises (bsspour block storage segment) qui est cr dynamiquement.
-
7/21/2019 Gestion de Le Mmoire Partie 1
8/9
Organisation de la mmoire dun
processus
-
7/21/2019 Gestion de Le Mmoire Partie 1
9/9
Organisation de la mmoire dun processus
Les donnes initialises correspondent toutes les variables globales et statiques initialises des
programmes C. Les donnes non initialises correspondent aux variables globales et statiques non initialises.
Le segment de donnes est agrandi ou rduit au cours de l'excution pour permettre d'y placer
des donnes.
Nanmoins, il est habituel de considrer que ce segment est fixe et correspond celui obtenu
avant l'excution de la
premire instruction : le segment bss se rsume alors aux variables locales de la fonction main()
La pile et le tas sont des zones variables.
Les autres informations
D'autres informations sont places dans l'espace mmoire du processus, comme les paramtres passs
en ligne lors de l'excution du programme.
Suivant les systmes d'exploitation, le systme peut aussi stocker diffrents renseignements, comme par
exemple le mode dans lequel doit s'excuter le processus.
Ces renseignements se trouvent dans une structure qui se nomme souvent Process Control Bloc (PCB).
L'espace mmoire d'un processus est donc divis en deux morceaux variables situs chacun
une extrmit de l'espace. Ces morceaux sont eux-mmes diviss en plusieurs segments,
certains de taille fixe situs aux extrmits, d'autres de taille variable.
Suivant les systmes d'exploitation, le tas et la pile peuvent se trouver l'un en haut et l'autre en
bas, ou l'inverse.