Vous êtes sur la page 1sur 158

Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion

Systèmes d’Exploitation
Cours 5/10 : Mémoire

Nicolas Sabouret
Université Paris-Sud

Licence 3 - semestre S5

Info32b Systèmes d’Exploitation Nicolas Sabouret 1/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion

Plan

1 Fonctionnement de la mémoire

2 Pagination

3 Mémoire virtuelle

4 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 2/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Plan

1 Fonctionnement de la mémoire
Principe général
Un peu de calcul. . .
Liaison d’adresse

2 Pagination

3 Mémoire virtuelle

4 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 3/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC

UC

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC

UC fetch

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC

UC fetch

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

opcode bus

PC

UC fetch

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC

UC

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

adresse bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

adresse bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

donnée bus

PC
adressage
UC
(lecture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC

UC

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

adresse bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

adresse bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Rôle de la mémoire

Espace de stockage
Ensemble ordonné de cases indexée par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des données → registre RADM sur le processeur

donnée bus

PC
adressage
UC
(écriture)

RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Structure de la mémoire

Adressage
Chaque case mémoire est associée à une adresse (le numéro
de la case)
Cette adresse est obtenue depuis l’instruction en binaire
→ L’adresse est sur n bits

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Structure de la mémoire

Adressage
Chaque case mémoire est associée à une adresse (le numéro
de la case)
Cette adresse est obtenue depuis l’instruction en binaire
→ L’adresse est sur n bits
Il y a donc 2n différentes adresses possibles (de 00 . . . 0 à
11 . . . 1)
→ La mémoire contient 2n cases

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Structure de la mémoire

Adressage
Chaque case mémoire est associée à une adresse (le numéro
de la case)
Cette adresse est obtenue depuis l’instruction en binaire
→ L’adresse est sur n bits
Il y a donc 2n différentes adresses possibles (de 00 . . . 0 à
11 . . . 1)
→ La mémoire contient 2n cases
Exemple : 32 bits → 232 = 4 Go

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Un peu de calcul. . .

En informatique, on travaille avec des puissance de 2


→ Il faut les connaı̂tre !

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Un peu de calcul. . .

En informatique, on travaille avec des puissance de 2


→ Il faut les connaı̂tre !

Table des puissances de 2


x 0 1 2 3 4 5 6 7 8 9 10
2x 0 2 4 8 16 32 64 128 256 512 1024

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Un peu de calcul. . .

En informatique, on travaille avec des puissance de 2


→ Il faut les connaı̂tre !

Table des puissances de 2


x 0 1 2 3 4 5 6 7 8 9 10
2x 0 2 4 8 16 32 64 128 256 512 1024

Exemple
1 case mémoire = 1 octet de données (8 bits)
(c’est généralement le cas)
Ü 8 bits → 28 octets = 256o de RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Un peu de calcul. . .

En informatique, on travaille avec des puissance de 2


→ Il faut les connaı̂tre !

Table des puissances de 2


x 0 1 2 3 4 5 6 7 8 9 10
2x 0 2 4 8 16 32 64 128 256 512 1024

Et après ?
On compte en Kilo, Méga, Giga, etc
210 = 1 Kilo
214 = 210 × 24 = 16 Kilo

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Unités informatiques

En informatique, on travaille avec des puissance de 2


→ Nos kilos ne font pas 1000 !

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Unités informatiques

En informatique, on travaille avec des puissance de 2


→ Nos kilos ne font pas 1000 !

Norme CEI 1998


Kibi = 210 = 1 024
Mebi = 220 = 1 048 576
Gibi = 230 = 1 073 741 824
Tebi = 240 = 1 099 511 627 776
etc

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Unités informatiques

En informatique, on travaille avec des puissance de 2


→ Nos kilos ne font pas 1000 !

Norme CEI 1998


Kibi = 210 = 1 024
Mebi = 220 = 1 048 576
Gibi = 230 = 1 073 741 824
Tebi = 240 = 1 099 511 627 776
etc

Ü On devrait parler de  kibioctets  et non de kilooctets


Ü On devrait écrire Kio et non Ko

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Unités informatiques

En informatique, on travaille avec des puissance de 2


→ Nos kilos ne font pas 1000 !

Norme CEI 1998


Ü On devrait parler de  kibioctets  et non de kilooctets
Ü On devrait écrire Kio et non Ko

En pratique
On utilise la notation 1 Ko pour indiquer 1 Kio (1024 octets)
→ On ne travaille JAMAIS avec des puissances de 10 !

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à 15 (décimal). . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Conversion d’adresse : 2 B 5 F

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Conversion d’adresse : 2 B 5 F
0010
Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Conversion d’adresse : 2 B 5 F
0010 1011
Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Conversion d’adresse : 2 B 5 F
0010 1011 0101
Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Et les puissances de 16 ?

24 = 16
→ Avec 4 bits, on peut écrire les nombres de 0 à F (hexadécimal) !
Du coup, 32 bits = 8 caractères en hexa !

Hexadécimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7
Hexadécimal 0 1 2 3 4 5 6 7
Base 2 0000 0001 0010 0011 0100 0101 0110 0111
Base 10 8 9 10 11 12 13 14 15
Hexadécimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111

Conversion d’adresse : 2 B 5 F
0010 1011 0101 1111
Info32b Systèmes d’Exploitation Nicolas Sabouret 8/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Fonctionnement

Lecture et écriture
L’UC va récupérer les instructions dans la mémoire (fetch) ;
L’UC va récupérer des données (valeurs de variables) dans la
mémoire à partir de leur adresse ;
L’UC écrit des valeurs à une adresse donnée dans la mémoire.

bus
RAM

PC

UC
RADM

Info32b Systèmes d’Exploitation Nicolas Sabouret 9/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Fonctionnement

Lecture et écriture
L’UC va récupérer les instructions dans la mémoire (fetch) ;
L’UC va récupérer des données (valeurs de variables) dans la
mémoire à partir de leur adresse ;
L’UC écrit des valeurs à une adresse donnée dans la mémoire.

D’où viennent les programmes ?


Le programme (code + données) est chargé depuis le disque vers
la mémoire
. . . il est placé à un endroit donné dans la mémoire
Ü Problème : quelles sont les adresses des variables ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 9/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Édition de liens
Programme compilé vs processus
Adresses symboliques (noms de variables)
vs Adresses mémoires (binaires)

Exemple :

int a = 3;
a = a + 2;

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Édition de liens
Programme compilé vs processus
Adresses symboliques (noms de variables)
vs Adresses mémoires (binaires)

Exemple :

@a memval 3
l d r r1 , a
int a = 3;
l d r r2 , #2
a = a + 2;
add r0 , r1 , r 2
s t r r0 , a

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Édition de liens
Programme compilé vs processus
Adresses symboliques (noms de variables)
vs Adresses mémoires (binaires)

Exemple :
2B50 : ldr r1 , 2B1E
@a memval 3
2B51 : ldr r2 , 0002
l d r r1 , a
int a = 3; 2B52 : add r0 , r1 , r 2
l d r r2 , #2
a = a + 2; 2B53 : str r0 , 2B1E
add r0 , r1 , r 2
...
s t r r0 , a
2B1E : 0003

Édition de liens
Lors de la création de processus, l’OS instancie le programme.
Ü Transformer les noms abstraits des variables en adresses
Info32b Systèmes d’Exploitation Nicolas Sabouret 10/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Méthodes de liaison d’adresse

À la compilation
3 On connaı̂t l’adresse physique du programme et de toutes les
données
Ü Adresse physique des variables à la compilation
Exemple : routine de l’OS

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Méthodes de liaison d’adresse

À la compilation

Au chargement
3 La taille du programme (données+code+pile+tas) est fixée
Ü Code compilé translatable : adresses relatives au début du
programme
Ü Nécessite un registre de translation dans l’UC

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Méthodes de liaison d’adresse

À la compilation

Au chargement

À l’exécution
3 Lorsque le processus a besoin de plus de place
Ü Déplacer le processus + réédition de lien
Revoir la translation
Éventuellement, revoir les adresses relatives

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Méthodes de liaison d’adresse

À la compilation

Au chargement

À l’exécution

Notion de stub
3 Bibliothèques : ne pas charger plusieurs fois
Ü Chargement à la demande de code translatable (la
bibliothèque)
Ü Morceau de code remplaçable pour l’appel à la bibliothèque

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Code translatable : résolution d’adresse


RAM

UC
translation

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Code translatable : résolution d’adresse


RAM
adresse logique translatable

UC
translation

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Code translatable : résolution d’adresse


RAM
adresse logique translatable

UC
translation +

adresse physique

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe général Un peu de calcul. . . Liaison d’adresse

Code translatable : résolution d’adresse


RAM
adresse logique translatable

UC
translation +

adresse physique

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Plan

1 Fonctionnement de la mémoire

2 Pagination
Allocation mémoire
Pagination
Pagination hiérarchique

3 Mémoire virtuelle

4 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 13/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1 Proc. 2

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1 Proc. 2 Proc. 3

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1 Proc. 2 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

Proc. 1 P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

P5 P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

P6
RAM

P5 P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

P6
RAM

P5 P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer
→ défragmenter

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

P6
RAM

P5 P4 Proc. 3

Problèmes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer
→ défragmenter

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Allocation mémoire

Principe
Multiprogrammation et temps partagé → placer les processus dans
la mémoire

RAM

P5 P4 Proc. 3 P6

Problèmes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer
→ défragmenter

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Fragmentation

Problème
Réduire la fragmentation
Limiter les opérations de de défragmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Fragmentation

Problème
Réduire la fragmentation
Limiter les opérations de de défragmentation

Stratégies d’allocation
Choisir dans quelle zone libre placer un processus Variante du
problème du bin packing
First Fit : premier bloc libre
Best Fit : plus petit bloc libre
Worst Fit : plus grand bloc libre

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Fragmentation

Problème
Réduire la fragmentation
Limiter les opérations de de défragmentation

Stratégies d’allocation
Choisir dans quelle zone libre placer un processus Variante du
problème du bin packing
First Fit : premier bloc libre
Best Fit : plus petit bloc libre
Worst Fit : plus grand bloc libre

⇒ À la fin, il faut quand même gérer les trous...

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM

code, bibliothèques
Processus : environnement, tas, pile. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

code, bibliothèques
Processus : environnement, tas, pile. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : environnement, tas, pile. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : 0 1 tas,2 pile. . .3
environnement,

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : 0 1 tas,2 pile. . .3
environnement,

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : 0 1 tas,2 pile. . .3
environnement,

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : 0 1 tas,2 pile. . .3
environnement,

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination

Principe
Découper la mémoire physique en blocs de taille Tc
constante, appelés cadres de pages
Découper l’espace mémoire utilisé par un processus en
paquets de x blocs de taille Tc , appelés pages
Ü Placer les pages dans les cadres

RAM cadres de page

pages
code, bibliothèques
Processus : 0 1 tas,2 pile. . .3
environnement,

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Avantages

Allocation mémoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de défragmenter !

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Avantages

Allocation mémoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de défragmenter !

Adaptation
Lorsqu’un processus a besoin de plus de mémoire, rajouter des
pages
Ü Pas besoin de le ré-allouer entièrement

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Avantages

Allocation mémoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de défragmenter !

Adaptation
Lorsqu’un processus a besoin de plus de mémoire, rajouter des
pages
Ü Pas besoin de le ré-allouer entièrement

Mémoire virtuelle (voir plus loin)

Charger uniquement les pages du processus dont on a besoin à un


moment donné.

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes I

Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes I

Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres

Taille des cadres/pages


Adresser les éléments dans les cadres (en binaire) → taille en 2m

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes I

Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres

Taille des cadres/pages


Adresser les éléments dans les cadres (en binaire) → taille en 2m
Ü RAM de taille 2n+m
Sinon, portion de RAM non adressable ou cadres fictifs non utilisables. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes I

Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres

Taille des cadres/pages


Adresser les éléments dans les cadres (en binaire) → taille en 2m
Ü RAM de taille 2n+m
Sinon, portion de RAM non adressable ou cadres fictifs non utilisables. . .

Fragmentation
Tous les processus ne sont pas de taille k × 2m
Ü Entre 0 et 2m − 1 octets perdus par processus !
(moyenne = 1
2
cadre = 2m−1 octets)

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes II

Adressage
Déterminer l’adresse physique à partir de l’adresse logique

RAM

0 3 1 2

Processus : 0 1 2 3

Info32b Systèmes d’Exploitation Nicolas Sabouret 19/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Problèmes II

Adressage
Déterminer l’adresse physique à partir de l’adresse logique

Adresse logique
Numéro de page (n bits) + décalage (m bits)

Table des pages


Chaque processus maintient une liste :
numéro de page ↔ numéro de cadre
C’est la table des pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 19/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM

UC

table des pages

page cadre
00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC

table des pages

page cadre
00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC
numéro de page décalage

table des pages

page cadre
00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC
numéro de page décalage

table des pages

page cadre
00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC
numéro de page décalage

table des pages


numéro de cadre

page cadre
00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC
numéro de page décalage

table des pages


numéro de cadre décalage

page cadre adresse physique


00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


RAM
adresse logique

UC
numéro de page décalage

table des pages


numéro de cadre décalage

page cadre adresse physique


00 02
01 B2
02 1A
03 3B
04 3C
... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


Memory Management Unit
En pratique, géré au niveau matériel : c’est la MMU
3 L’OS charge la table des pages du processus dans la MMU
Ü Pas de calcul d’adresse au niveau de l’OS

Info32b Systèmes d’Exploitation Nicolas Sabouret 21/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination : résolution d’adresse


Memory Management Unit
En pratique, géré au niveau matériel : c’est la MMU
3 L’OS charge la table des pages du processus dans la MMU
Ü Pas de calcul d’adresse au niveau de l’OS

Allocation des cadres


Ne pas allouer le même cadre à deux processus différents
3 L’OS doit savoir quel processus utilise quel cadre
Ü Table des cadres de page libres
num. cadre num. proc. libre
0 42 1
1 37 1
2 - 0
... ... ...

Info32b Systèmes d’Exploitation Nicolas Sabouret 21/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination hiérarchique
Problème
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place mémoire perdue
220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus coûteuse en temps

Info32b Systèmes d’Exploitation Nicolas Sabouret 22/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination hiérarchique
Problème
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place mémoire perdue
220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus coûteuse en temps
Pages trop grosses (ex : n = 10, m = 22)
Fragmentation = 2m−1 → place mémoire perdue
221 octets = 2 Mo par processus

Info32b Systèmes d’Exploitation Nicolas Sabouret 22/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination hiérarchique
Problème
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place mémoire perdue
220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus coûteuse en temps
Pages trop grosses (ex : n = 10, m = 22)
Fragmentation = 2m−1 → place mémoire perdue
221 octets = 2 Mo par processus

Pagination à 2 niveaux (ou plus)


Paginer la table des pages (et ne charger que les tables utiles)
Réduire la fragmentation due aux pages
Réduire l’espace mémoire utilisé par le système d’adressage

Info32b Systèmes d’Exploitation Nicolas Sabouret 22/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire
de pages

n° adresse T.P.

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire Table des


de pages pages n°X

n° adresse T.P.

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire Table des


de pages pages n°X

n° adresse T.P.

page cadre

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire Table des


cadre
de pages pages n°X

n° adresse T.P.

page cadre

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire Table des


cadre décal.
de pages pages n°X
adresse physique

n° adresse T.P.

page cadre

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux


RAM
adresse logique

UC
table page décalage

Répertoire Table des


cadre décal.
de pages pages n°X
adresse physique

n° adresse T.P.

page cadre

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages =

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20 ÷ 8 = 2,5 Mo par processus

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20 ÷ 8 = 2,5 Mo par processus

Pagination à 2 niveaux
n1 = 10, n2 = 10, m = 12
Répertoire =

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20 ÷ 8 = 2,5 Mo par processus

Pagination à 2 niveaux
n1 = 10, n2 = 10, m = 12
Répertoire = 210 lignes de 32 bits = 4 Ko
1 table de pages =

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20 ÷ 8 = 2,5 Mo par processus

Pagination à 2 niveaux
n1 = 10, n2 = 10, m = 12
Répertoire = 210 lignes de 32 bits = 4 Ko
1 table de pages = 210 lignes de 20 bits = 2,5 Ko

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12

Pagination à 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20 ÷ 8 = 2,5 Mo par processus

Pagination à 2 niveaux
n1 = 10, n2 = 10, m = 12
Répertoire = 210 lignes de 32 bits = 4 Ko
1 table de pages = 210 lignes de 20 bits = 2,5 Ko
Total = entre 6,5 Ko et 2,5 Mo par processus

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = 2n1 × k bits

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = 2n1 × k bits
Ü Taille d’une table de pages = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2 ) bits
ou 2n2 × (k − m). . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2 ) bits
ou 2n2 × (k − m). . .
Ü Nombre de tables de pages = ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits

Ü Taille de la RAM = 2k octets


Ü Nombre de cadres = 2n1 +n2 cadres
Ü Taille d’un cadre = 2m octets
Ü Taille du répertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2 ) bits
ou 2n2 × (k − m). . .
Ü Nombre de tables de pages = 2n1 tables

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Allocation mémoire Pagination Pagination hiérarchique

Pagination à deux niveaux

Remarque
Pagination à 3 niveaux sur les processeurs 64 bits

Implémentation
Table des pages en RAM
Tous les calculs sont effectués au niveau matériel dans la
MMU
Registre d’adresse de la table des pages
Table des cadres libres
Cache matériel (TLB = Translation Lookaside Buffer)
stocke les couples (page,cadre)

Info32b Systèmes d’Exploitation Nicolas Sabouret 26/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Plan

1 Fonctionnement de la mémoire

2 Pagination

3 Mémoire virtuelle
Principe
Pagination à la demande
Allocation

4 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 27/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Mémoire virtuelle
Problème
Nombre et taille des processus
Entre 200 et 500 processus en parallèle sur un PC
Gros processus : Eclipse = 250 Mo, données d’un jeu ≥ 1 Go
→ Somme des tailles des processus ≥ Capacité RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 28/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Mémoire virtuelle
Problème
Nombre et taille des processus
Entre 200 et 500 processus en parallèle sur un PC
Gros processus : Eclipse = 250 Mo, données d’un jeu ≥ 1 Go
→ Somme des tailles des processus ≥ Capacité RAM

Portions de code inutilisées


Traitement d’erreur → rarement utilisé
Données du jeu → pas tout en même temps
Données d’un tableau → pas tout en même temps
Bibliothèque → très variable !
→ ne charger que les pages utiles ! (laisser le reste sur le disque. . . )
Info32b Systèmes d’Exploitation Nicolas Sabouret 28/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

page
page page
page

Mémoire page
page page
page
virtuelle
= page
page page
page
espace
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

page 0 pages
page 1 utilisées

page
page page
page

Mémoire page 4 page


page page
page
virtuelle
= page
page page
page
espace
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

page 0 pages
page 1 utilisées
page 1

page
page page
page

Mémoire page 4 page 0 page


page page
page
virtuelle
= page 4 page
page page
page
espace
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

page 0 pages
page 1
non
utilisées
page 2 page 1

page 3 page
page page
page

Mémoire page 4 page 0 page


page page
page
virtuelle
= page 5 page 4 page
page page
page
espace ...
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

page 0 pages
page 1
non
utilisées
page 2 page 1

page 3 page
page page
page

Mémoire page 4 page 0 page


page page
page
virtuelle
= page 5 page 4 page
page page
page
espace ...
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

Avantages
Possibilité de mettre plus de processus en parallèles
Le programmeur ne se préoccupe plus de la mémoire

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Schéma de principe

Mémoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’a
effectivement en mémoire physique

Avantages
Possibilité de mettre plus de processus en parallèles
Le programmeur ne se préoccupe plus de la mémoire

Pagination à la demande
Table des pages : bit de validité (0=page sur le disque)
L’OS charge les pages manquantes depuis le disque vers la
RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

...
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
...

Processus

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

...
ldr r0, @a
1. référence
ldr r1, @b
add r2, r0, r1
str r2, @c
...

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

...
ldr r0, @a
1. référence
ldr r1, @b défaut
de page
add r2, r0, r1
str r2, @c
... – 0

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

OS

2. déroutement

...
ldr r0, @a
1. référence
ldr r1, @b défaut
de page
add r2, r0, r1
str r2, @c
... – 0

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS

Disque
2. déroutement

...
ldr r0, @a
1. référence
ldr r1, @b défaut
de page
add r2, r0, r1
str r2, @c
... – 0

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS 4. allocation UC à
un autre processus

Disque
2. déroutement

...
ldr r0, @a
1. référence
ldr r1, @b défaut
de page
add r2, r0, r1
str r2, @c
... – 0

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS 4. allocation UC à 5. fin d’E/S


un autre processus → interruption

Disque
2. déroutement

...
ldr r0, @a
1. référence
ldr r1, @b
add r2, r0, r1
str r2, @c
...

Table
des
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS 4. allocation UC à 5. fin d’E/S


un autre processus → interruption

Disque
2. déroutement

6. chargement
page manquante

disponible
...
ldr r0, @a
1. référence
ldr r1, @b
add r2, r0, r1
str r2, @c
...

Table Mémoire
physique
des (RAM)
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS 4. allocation UC à 5. fin d’E/S


un autre processus → interruption

Disque
2. déroutement

6. chargement
page manquante

disponible
...
ldr r0, @a
1. référence
ldr r1, @b
add r2, r0, r1
7. mise à
str r2, @c jour table(s)
... n° cadre 1

Table Mémoire
physique
des (RAM)
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Pagination à la demande

3. requête disque

OS 4. allocation UC à 5. fin d’E/S


un autre processus → interruption

Disque
2. déroutement

6. chargement
page manquante

disponible
...
ldr r0, @a
1. référence
ldr r1, @b
add r2, r0, r1
7. mise à
str r2, @c jour table(s)
... n° cadre 1
8. instruction
relancée

Table Mémoire
physique
des (RAM)
Processus pages

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Temps d’accès

Coût des défauts de page


p = probabilité d’avoir un défaut de page
M = temps d’accès à la mémoire
D = temps de traitement du défaut de page (accès disque)

Temps d’accès = (1 − p) × M + p × D = M + p(D − M)

Propriété
Le temps d’accès est proportionnel à la probabilité d’avoir un
défaut de page

Accès disque
En pratique, M est 1000 fois plus petit que D.
Info32b Systèmes d’Exploitation Nicolas Sabouret 32/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation
Problème
Combien de cadres (RAM) allouer à chaque processus

Propriétés
Plus de cadre par processus → moins de processus →
ralentissement
Moins de cadre par processus → plus de défauts →
ralentissement

Politiques d’allocation
Allocation équitable
Allocation proportionnelle
Allocation basée sur la priorité
Info32b Systèmes d’Exploitation Nicolas Sabouret 33/38
Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation équitable

Données
N cadres disponibles en RAM
P processus

Allocation équitable
Chaque processus reçoit N/P cadres
Le reste sert de tampon
Lors du remplacement de page, charger et relancer sans supprimer
l’ancienne page → réduction du nombre de défauts

Info32b Systèmes d’Exploitation Nicolas Sabouret 34/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation équitable

Données
N cadres disponibles en RAM
P processus

Allocation équitable
Chaque processus reçoit N/P cadres
Le reste sert de tampon
Lors du remplacement de page, charger et relancer sans supprimer
l’ancienne page → réduction du nombre de défauts

Inconvénient
Tous les processus n’ont pas besoin de la même quantité de
mémoire. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 34/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation proportionnelle
Données
N cadres disponibles en RAM
P processus
∀i ∈ [1, P], Mi la taille de Pi (en mémoire virtuelle)

Allocation proportionnelle
On garde généralement un tampon de T pages
Pi reçoit (N − T ) × PMi cadres
i Mi

Info32b Systèmes d’Exploitation Nicolas Sabouret 35/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation proportionnelle
Données
N cadres disponibles en RAM
P processus
∀i ∈ [1, P], Mi la taille de Pi (en mémoire virtuelle)

Allocation proportionnelle
On garde généralement un tampon de T pages
Pi reçoit (N − T ) × PMi cadres
i Mi

Inconvénient
Les petits processus font plus de défauts de pages en pratique. . .
car ils utilisent simultanément une plus grande part de leur code que les gros
processus.

Info32b Systèmes d’Exploitation Nicolas Sabouret 35/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion
Principe Pagination à la demande Allocation

Allocation basée sur la priorité

Données
N cadres disponibles en RAM
P processus
∀i ∈ [1, P], prioi la priorité de Pi

Allocation basée sur la priorité


On garde généralement un tampon de T pages
Pi reçoit (N − T ) × Pprioi cadres
i prioi

Info32b Systèmes d’Exploitation Nicolas Sabouret 36/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion

Plan

1 Fonctionnement de la mémoire

2 Pagination

3 Mémoire virtuelle

4 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 37/38


Fonctionnement de la mémoire Pagination Mémoire virtuelle Conclusion

Synthèse

Ce qu’il faut retenir


Notion d’adresse
Liaison d’adresse & résolution
Allocation mémoire
Fragmentation
Pagination simple et double niveau
Memory Management Unit
Mémoire virtuelle
Déroutement
Politiques d’allocation
. . . et savoir faire les calculs !

Info32b Systèmes d’Exploitation Nicolas Sabouret 38/38

Vous aimerez peut-être aussi