Académique Documents
Professionnel Documents
Culture Documents
Olivier Zendra
Chargé de Recherche
INRIA-Lorraine / LORIA
olivier.zendra@loria.fr
http://www.loria.fr/~zendra
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Plan du cours
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
1- Bases de la gestion mémoire
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Mémoire: des puces (matériel)
• Vue par le système (OS/application) via
des adresses (logiciel)
MMU
0 4 8 12
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation des adresses à la main
(ASM):
MOV 47,#0xFBBFC
MOV 74,#0xFBFBC
ADD 3,#0xFBFBC
INC #0xFBBFC
SUB #0XFBBFC,#0xFBFBC
– Peu clair...
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation des adresses à la main
(ASM)
– Permet de mettre des données en un lieu
précis de la mémoire
– Compliqué si on veut faire cohabiter plusieurs
applications
– Lisibilité et maintenabilité pitoyables
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique explicite des
adresses: variables et pointeurs
int *a = 0xFBBFC
int *b = 0xFBFBC
*a = 47
*b = 74
*b = *b+3
*a = *a+1
*b = *b-*a
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique implicite des
adresses: variables et références
int a = 47
int b = 74
b += 3
a++
b -= a
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique implicite des
adresses: variables et références
– Encore plus haut niveau, plus clair
– Localisation (adresse) masquée (par le
système qui gère la mémoire)
• Facile d'avoir plusieurs programmes (« multi-tâche »)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Le contrôleur mémoire (MMU) montre à
l'OS une mémoire matérielle continue
alors que puces discontinues
• Le système (d'exploitation) montre au
programme une mémoire virtuelle
– La pagination est masquée
– Chaque programme se croit seul (simplifié)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Mémoire virtuelle
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Mémoire virtuelle
0x006A
0xF047006A
@ logique
n° page décalage @ physique page décalage
0xF047
0x0B50006A
@ physique
complète
Programme @ physique page
0x0B50
CPU
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Structuration mémoire: exemple
0xCFFF
0xD2FF
0xD300
0xD000
0x0FFF
0xF5FF
0xA000
0x0000
Zone
Pile Tas Zone de code
statique
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
La pile
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
La pile
MAX ...
...
variable locale 2
variable locale 1 APPEL n+1
SP @ de retour
123 variable locale 2
-4 variable locale 1
'm' paramètre 3 APPEL n
0xFFB4 paramètre 2
67 paramètre 1
0xCC12 @ de retour
...
0x0000 ...
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
0
0x22B512
Mon_Objet
0x22B474
47 0xFFB4
mon_objet 0xFFB4
...
...
...
...
Pile Tas
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
0xD2D7
0xD28B
0xD2FF
0xD32B
0xD2D7
0xD2FF
172
26
812 3 4 43 2 1 6Du p o nt 6So p h i e
Pile
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire manuelle
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire manuelle
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
• Exemple:
void les_20_premiers_premiers(){
int premiers[] = new int[20];
// variable premiers en pile, zone en tas
for (int i=0;i<20;i++)
premiers[i]=calculer_premier(i);
afficher_tableau_entiers(20,premiers);
} // ici, premiers est dépilé, donc la zone
// en tas n'est plus référencée, elle peut
// être automatiquement recyclée/libérée
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
t
an
an
an
suille
suille
suille
iv
iv
iv
ta
ta
ta
Tas Tas
zones_libres null
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithmes classiques
de gestion mémoire automatique
• Comptage de références
• Marquage-balayage
• Copie-compactage
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Compteurs de références
0xD2D7
0xD2FF
172
2 6Du p o nt 1 6So p h i e
26
1 812 3 4 43 2 1 1
Pile
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Pile... 2 Objet A
1 Objet C 1 Objet B
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
Pile... 1 2 Objet A
1 Objet C 1 Objet B
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
1 Objet C 1 Objet B
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Problème de la fragmentation
A l'instant T1:
Tas Tas
Le programme s'exécute,
des objets sont libérés
Tas Tas
zones_libres null
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Fragmentation possible
Tas Tas
zones_libres null
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence: bilan
• Simple
• Exécution répartie le long de celle du prog.
• Coûteux au total: MAJ de compteur(s) à
chaque affectation
• Pas de gros délai si objets libérés un par un.
Délais si cascades...
• Problème des cycles
• Fragmentation possible
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage
Marqueur
0xD2D7
0xD2FF
172
6Du p o nt 6So p h i e
26
812 3 4 43 2 1
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 Objet A Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A V Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A V Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A V Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A V Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
var. loc. 1 -4
param. 3 'm'
param. 2 0xF028
param. 1 67
@ de retour 0xCC12 V Objet A V Objet B
...
...
Pile (racines)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de balayage
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de balayage
Après marquage, avant balayage:
zones_libres null
Après balayage:
zones_libres null
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage: bilan
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Copie-compactage
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Copie-compactage: bilan
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
2- Gestion mémoire et temps réel
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
2- Gestion mémoire et temps réel
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Ramasse-miettes temps réel
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
3- Gestion mémoire
et systèmes embarqués
• Systèmes embarqués: omniprésents
• Types de contraintes:
– Faible taille (code, données, RAM, ROM)
– Faible puissance de calcul
– Systèmes embarqués autonomes (tél. PDA,
APN...)
• Faible puissance électrique max (instantanée)
• Faible autonomie en énergie (cumulée)
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Technologies matérielles (pour mémoire)
– Conception des cellules SRAM (+ de place, -
de fuites): 6 transistors SRAM
– Partitionnement des bancs mémoire (seul le
bloc accédé est activé)
– Cache decay: lignes de cache « mortes »
mises en mode basse énergie (Vdd gating)
– Nombreuses autres !
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 1: éteindre ce qui ne sert pas
– Mémoire en bancs
– Énergie: grouper (Vitesse: entrelacer)
• Grouper à l'allocation / selon durée de vie
• Statiquement ou dynamiquement (ordo. ou GC)
• Regrouper lors du GC: libérer bancs complets pour les
éteindre
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 1: éteindre ce qui ne sert pas
– Beaucoup de compromis
• GC quand nouveau banc va être allumé ? Compromis
gain/coût...
• Compression de données ? Compromis gain/coût...
• Attention au coût (E et T) d'éteindre/rallumer
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 2: limiter le coût E des transferts de
données
– Données très utilisées dans mémoire où accès
dynamique peu cher
– Données peu utilisées dans mémoire où perte
statique faible (même si accès cher)
– Minimiser les transferts (Data Transfert and
Storage Exploration): copies des données ?
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 3: diminuer le coût du GC
– Optimisations en faveur énergie, pas vitesse
• Marqueurs groupés, pas dans objets
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
bilan
• « energy-aware GC »
• Collaboration nécessaire avec le reste
du système
– ordonnancement
– matériel (API requise)
– ...
• Pas trivial.
Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005