Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Systemes d’Exploitation
Cours 5/13 : Memoire
Thomas Lavergne & Nicolas Sabouret
Universite Paris-Sud
Licence 3 - semestre S5
Info32b Systemes d’Exploitation Thomas Lavergne 1/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Plan
1 Fonctionnement de la memoire
2 Pagination
3 Memoire virtuelle
4 Conclusion
Info32b Systemes d’Exploitation Thomas Lavergne 2/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Plan
1 Fonctionnement de la memoirePrincipe generalUn peu de calcul. . .Liaison d’adresse
2 Pagination
3 Memoire virtuelle
4 Conclusion
Info32b Systemes d’Exploitation Thomas Lavergne 3/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
fetch
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
fetch
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
fetch
opcode
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
adresse
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
adresse
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(lecture)
donnee
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
adresse
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
adresse
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Role de la memoire
Espace de stockage
Ensemble ordonne de cases indexee par leur adresse et contenant :
Des instructions → registre PC sur le processeur
Des donnees → registre RADM sur le processeur
PC
RADM
UC
bus
adressage(ecriture)
donnee
Info32b Systemes d’Exploitation Thomas Lavergne 4/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Structure de la memoire
Adressage
Chaque case memoire est associee a une adresse (le numerode la case)
Cette adresse est obtenue depuis l’instruction en binaire→ L’adresse est sur n bits
Il y a donc 2n differentes adresses possibles (de 00 . . . 0 a11 . . . 1)→ La memoire contient 2n cases
Exemple : 32 bits → 232 = 4 Go
Info32b Systemes d’Exploitation Thomas Lavergne 5/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Structure de la memoire
Adressage
Chaque case memoire est associee a une adresse (le numerode la case)
Cette adresse est obtenue depuis l’instruction en binaire→ L’adresse est sur n bits
Il y a donc 2n differentes adresses possibles (de 00 . . . 0 a11 . . . 1)→ La memoire contient 2n cases
Exemple : 32 bits → 232 = 4 Go
Info32b Systemes d’Exploitation Thomas Lavergne 5/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Structure de la memoire
Adressage
Chaque case memoire est associee a une adresse (le numerode la case)
Cette adresse est obtenue depuis l’instruction en binaire→ L’adresse est sur n bits
Il y a donc 2n differentes adresses possibles (de 00 . . . 0 a11 . . . 1)→ La memoire contient 2n cases
Exemple : 32 bits → 232 = 4 Go
Info32b Systemes d’Exploitation Thomas Lavergne 5/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Un peu de calcul. . .
En informatique, on travaille avec des puissances de 2
→ Il faut les connaıtre !
Table des puissances de 2
x 0 1 2 3 4 5 6 7 8 9 102x 0 2 4 8 16 32 64 128 256 512 1024
Info32b Systemes d’Exploitation Thomas Lavergne 6/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Un peu de calcul. . .
En informatique, on travaille avec des puissances de 2
→ Il faut les connaıtre !
Table des puissances de 2
x 0 1 2 3 4 5 6 7 8 9 102x 0 2 4 8 16 32 64 128 256 512 1024
Info32b Systemes d’Exploitation Thomas Lavergne 6/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Un peu de calcul. . .
En informatique, on travaille avec des puissances de 2
→ Il faut les connaıtre !
Table des puissances de 2
x 0 1 2 3 4 5 6 7 8 9 102x 0 2 4 8 16 32 64 128 256 512 1024
Exemple
1 case memoire = 1 octet de donnees (8 bits)(c’est generalement le cas)
Ü 8 bits → 28 octets = 256o de RAM
Info32b Systemes d’Exploitation Thomas Lavergne 6/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Un peu de calcul. . .
En informatique, on travaille avec des puissances de 2
→ Il faut les connaıtre !
Table des puissances de 2
x 0 1 2 3 4 5 6 7 8 9 102x 0 2 4 8 16 32 64 128 256 512 1024
Et apres ?
On compte en Kilo, Mega, Giga, etc
210 = 1 Kilo
214 = 210 × 24 = 16 Kilo
Info32b Systemes d’Exploitation Thomas Lavergne 6/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Unites informatiques
En informatique, on travaille avec des puissance de 2
→ Nos kilos ne font pas 1000 !
Info32b Systemes d’Exploitation Thomas Lavergne 7/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Unites 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 Systemes d’Exploitation Thomas Lavergne 7/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Unites 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 ecrire Kio et non Ko
Info32b Systemes d’Exploitation Thomas Lavergne 7/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Unites 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 ecrire 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 Systemes d’Exploitation Thomas Lavergne 7/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a 15 (decimal). . .
Du coup, 32 bits = 8 caracteres en hexa !
Info32b Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Info32b Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 8 9 A B C D E F
Base 2 1000 1001 1010 1011 1100 1101 1110 1111
Conversion d’adresse :
Info32b Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 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 Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 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 Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 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 Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 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 Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Et les puissances de 16 ?
24 = 16
→ Avec 4 bits, on peut ecrire les nombres de 0 a F (hexadecimal) !
Du coup, 32 bits = 8 caracteres en hexa !
Hexadecimal
→ Il faut savoir convertir rapidement :
Base 10 0 1 2 3 4 5 6 7Hexadecimal 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 15Hexadecimal 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 Systemes d’Exploitation Thomas Lavergne 8/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Fonctionnement
Lecture et ecriture
L’UC va recuperer les instructions dans la memoire (fetch) ;
L’UC va recuperer des donnees (valeurs de variables) dans lamemoire a partir de leur adresse ;
L’UC ecrit des valeurs a une adresse donnee dans la memoire.
RAMbus
UC
PC
RADM
Info32b Systemes d’Exploitation Thomas Lavergne 9/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Fonctionnement
Lecture et ecriture
L’UC va recuperer les instructions dans la memoire (fetch) ;
L’UC va recuperer des donnees (valeurs de variables) dans lamemoire a partir de leur adresse ;
L’UC ecrit des valeurs a une adresse donnee dans la memoire.
D’ou viennent les programmes ?
Le programme (code + donnees) est charge depuis le disque versla memoire
. . . il est place a un endroit donne dans la memoire
Ü Probleme : quelles sont les adresses des variables ?
Info32b Systemes d’Exploitation Thomas Lavergne 9/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Edition de liens
Programme compile vs processus
Adresses symboliques (noms de variables)vs Adresses memoires (binaires)
Exemple :
i n t a = 3 ;a = a + 2 ;
@a memval 3l d r r1 , al d r r2 , #2add r0 , r1 , r 2s t r r0 , a
2B50 : l d r r1 , 2B1E2B51 : l d r r2 , 00022B52 : add r0 , r1 , r22B53 : s t r r0 , 2B1E. . .2B1E : 0003
Edition de liens
Lors de la creation de processus, l’OS instancie le programme.
Ü Transformer les noms abstraits des variables en adresses
Info32b Systemes d’Exploitation Thomas Lavergne 10/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Edition de liens
Programme compile vs processus
Adresses symboliques (noms de variables)vs Adresses memoires (binaires)
Exemple :
i n t a = 3 ;a = a + 2 ;
@a memval 3l d r r1 , al d r r2 , #2add r0 , r1 , r 2s t r r0 , a
2B50 : l d r r1 , 2B1E2B51 : l d r r2 , 00022B52 : add r0 , r1 , r22B53 : s t r r0 , 2B1E. . .2B1E : 0003
Edition de liens
Lors de la creation de processus, l’OS instancie le programme.
Ü Transformer les noms abstraits des variables en adresses
Info32b Systemes d’Exploitation Thomas Lavergne 10/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Edition de liens
Programme compile vs processus
Adresses symboliques (noms de variables)vs Adresses memoires (binaires)
Exemple :
i n t a = 3 ;a = a + 2 ;
@a memval 3l d r r1 , al d r r2 , #2add r0 , r1 , r 2s t r r0 , a
2B50 : l d r r1 , 2B1E2B51 : l d r r2 , 00022B52 : add r0 , r1 , r22B53 : s t r r0 , 2B1E. . .2B1E : 0003
Edition de liens
Lors de la creation de processus, l’OS instancie le programme.
Ü Transformer les noms abstraits des variables en adresses
Info32b Systemes d’Exploitation Thomas Lavergne 10/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Methodes de liaison d’adresse
A la compilation
3 On connaıt l’adresse physique du programme et de toutes lesdonnees
Ü Adresse physique des variables a la compilation
Exemple : routine de l’OS
Au chargement
A l’execution
Notion de stub
Info32b Systemes d’Exploitation Thomas Lavergne 11/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Methodes de liaison d’adresse
A la compilation
Au chargement
3 La taille du programme (donnees+code+pile+tas) est fixee
Ü Code compile translatable : adresses relatives au debut duprogramme
Ü Necessite un registre de translation dans l’UC
A l’execution
Notion de stub
Info32b Systemes d’Exploitation Thomas Lavergne 11/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Methodes de liaison d’adresse
A la compilation
Au chargement
A l’execution
3 Lorsque le processus a besoin de plus de place
Ü Deplacer le processus + reedition de lien
Revoir la translationEventuellement, revoir les adresses relatives
Notion de stub
Info32b Systemes d’Exploitation Thomas Lavergne 11/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Methodes de liaison d’adresse
A la compilation
Au chargement
A l’execution
Notion de stub
3 Bibliotheques : ne pas charger plusieurs fois
Ü Chargement a la demande de code translatable (labibliotheque)
Ü Morceau de code remplacable pour l’appel a la bibliotheque
Info32b Systemes d’Exploitation Thomas Lavergne 11/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Code translatable : resolution d’adresse
UC
translation
RAM
adresse logique translatable
+
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 12/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Code translatable : resolution d’adresse
UC
translation
RAM
adresse logique translatable
+
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 12/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Code translatable : resolution d’adresse
UC
translation
RAM
adresse logique translatable
+
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 12/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe general Un peu de calcul. . . Liaison d’adresse
Code translatable : resolution d’adresse
UC
translation
RAM
adresse logique translatable
+
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 12/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Plan
1 Fonctionnement de la memoire
2 PaginationAllocation memoirePaginationPagination hierarchique
3 Memoire virtuelle
4 Conclusion
Info32b Systemes d’Exploitation Thomas Lavergne 13/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1 Proc. 2
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1 Proc. 2 Proc. 3
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1 Proc. 2 Proc. 3
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1 Proc. 3
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 1 Proc. 3P4
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 3P4
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 3P4P5
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 3P4P5
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
Proc. 3P4P5
P6
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer→ defragmenter
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
P5
P6
P4 Proc. 3
P6
Problemes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer→ defragmenter
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Allocation memoire
Principe
Multiprogrammation et temps partage → placer les processus dansla memoire
RAM
P5
P6
P4 Proc. 3 P6
Problemes
Des trous apparaissent : c’est la fragmentation
Les processus trop gros ne peuvent pas rentrer→ defragmenter
Info32b Systemes d’Exploitation Thomas Lavergne 14/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Fragmentation
Probleme
Reduire la fragmentation
Limiter les operations de de defragmentation
Strategies d’allocation
Choisir dans quelle zone libre placer un processus Variante du
probleme du bin packing
First Fit : premier bloc libre
Best Fit : plus petit bloc libre
Worst Fit : plus grand bloc libre
⇒ A la fin, il faut quand meme gerer les trous...
Info32b Systemes d’Exploitation Thomas Lavergne 15/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Fragmentation
Probleme
Reduire la fragmentation
Limiter les operations de de defragmentation
Strategies d’allocation
Choisir dans quelle zone libre placer un processus Variante du
probleme du bin packing
First Fit : premier bloc libre
Best Fit : plus petit bloc libre
Worst Fit : plus grand bloc libre
⇒ A la fin, il faut quand meme gerer les trous...
Info32b Systemes d’Exploitation Thomas Lavergne 15/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Fragmentation
Probleme
Reduire la fragmentation
Limiter les operations de de defragmentation
Strategies d’allocation
Choisir dans quelle zone libre placer un processus Variante du
probleme du bin packing
First Fit : premier bloc libre
Best Fit : plus petit bloc libre
Worst Fit : plus grand bloc libre
⇒ A la fin, il faut quand meme gerer les trous...
Info32b Systemes d’Exploitation Thomas Lavergne 15/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
0 1 2 3
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
0 1 2 3
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
0 1 2 3
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
0 1 2 3
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination
Principe
Decouper la memoire physique en blocs de taille Tc
constante, appeles cadres de pages
Decouper l’espace memoire utilise par un processus enpaquets de x blocs de taille Tc , appeles pages
Ü Placer les pages dans les cadres
RAM
Processus :code, bibliothequesenvironnement, tas, pile. . .
cadres de page
pages
0 1 2 3
Info32b Systemes d’Exploitation Thomas Lavergne 16/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Avantages
Allocation memoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de defragmenter !
Adaptation
Lorsqu’un processus a besoin de plus de memoire, rajouter despages
Ü Pas besoin de le re-allouer entierement
Memoire virtuelle (voir plus loin)
Charger uniquement les pages du processus dont on a besoin a unmoment donne.
Info32b Systemes d’Exploitation Thomas Lavergne 17/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Avantages
Allocation memoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de defragmenter !
Adaptation
Lorsqu’un processus a besoin de plus de memoire, rajouter despages
Ü Pas besoin de le re-allouer entierement
Memoire virtuelle (voir plus loin)
Charger uniquement les pages du processus dont on a besoin a unmoment donne.
Info32b Systemes d’Exploitation Thomas Lavergne 17/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Avantages
Allocation memoire
Allouer des processus dans des zones disjointes :
Ü Pas besoin de defragmenter !
Adaptation
Lorsqu’un processus a besoin de plus de memoire, rajouter despages
Ü Pas besoin de le re-allouer entierement
Memoire virtuelle (voir plus loin)
Charger uniquement les pages du processus dont on a besoin a unmoment donne.
Info32b Systemes d’Exploitation Thomas Lavergne 17/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes I
Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres
Taille des cadres/pages
Adresser les elements 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
2cadre = 2m−1 octets)
Info32b Systemes d’Exploitation Thomas Lavergne 18/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes I
Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres
Taille des cadres/pages
Adresser les elements 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
2cadre = 2m−1 octets)
Info32b Systemes d’Exploitation Thomas Lavergne 18/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes I
Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres
Taille des cadres/pages
Adresser les elements 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
2cadre = 2m−1 octets)
Info32b Systemes d’Exploitation Thomas Lavergne 18/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes I
Nombre de cadres
Adresser les cadres (en binaire) → 2n cadres
Taille des cadres/pages
Adresser les elements 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
2cadre = 2m−1 octets)
Info32b Systemes d’Exploitation Thomas Lavergne 18/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes II
Adressage
Determiner l’adresse physique a partir de l’adresse logique
RAM
Processus :0 1 2 3
0 1 23
Info32b Systemes d’Exploitation Thomas Lavergne 19/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Problemes II
Adressage
Determiner l’adresse physique a partir de l’adresse logique
Adresse logique
Numero de page (n bits) + decalage (m bits)
Table des pages
Chaque processus maintient une liste :numero de page ↔ numero de cadre
C’est la table des pages
Info32b Systemes d’Exploitation Thomas Lavergne 19/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre
decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
UC
table des pages
page cadre
00 0201 B202 1A03 3B04 3C. . . . . .
RAM
adresse logique
numero de page decalage
numero de cadre decalage
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 20/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
Memory Management Unit
En pratique, gere au niveau materiel : 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 meme cadre a deux processus differents
3 L’OS doit savoir quel processus utilise quel cadre
Ü Table des cadres de page libresnum. cadre num. proc. libre
0 42 11 37 12 - 0
. . . . . . . . .
Info32b Systemes d’Exploitation Thomas Lavergne 21/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination : resolution d’adresse
Memory Management Unit
En pratique, gere au niveau materiel : 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 meme cadre a deux processus differents
3 L’OS doit savoir quel processus utilise quel cadre
Ü Table des cadres de page libresnum. cadre num. proc. libre
0 42 11 37 12 - 0
. . . . . . . . .
Info32b Systemes d’Exploitation Thomas Lavergne 21/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination hierarchique
Probleme
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place memoire perdue220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus couteuse en temps
Pages trop grosses (ex : n = 10, m = 22)
Fragmentation = 2m−1 → place memoire perdue221 octets = 2 Mo par processus
Pagination a 2 niveaux (ou plus)
Paginer la table des pages (et ne charger que les tables utiles)
Reduire la fragmentation due aux pages
Reduire l’espace memoire utilise par le systeme d’adressage
Info32b Systemes d’Exploitation Thomas Lavergne 22/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination hierarchique
Probleme
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place memoire perdue220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus couteuse en temps
Pages trop grosses (ex : n = 10, m = 22)
Fragmentation = 2m−1 → place memoire perdue221 octets = 2 Mo par processus
Pagination a 2 niveaux (ou plus)
Paginer la table des pages (et ne charger que les tables utiles)
Reduire la fragmentation due aux pages
Reduire l’espace memoire utilise par le systeme d’adressage
Info32b Systemes d’Exploitation Thomas Lavergne 22/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination hierarchique
Probleme
Grand espace d’adressage (ex : 32 bits)
Trop de pages (ex : n = 20, m = 12)
Grande table des pages → place memoire perdue220 lignes de 20 bits = 2,5 Mo par processus
Allocation et commutation plus couteuse en temps
Pages trop grosses (ex : n = 10, m = 22)
Fragmentation = 2m−1 → place memoire perdue221 octets = 2 Mo par processus
Pagination a 2 niveaux (ou plus)
Paginer la table des pages (et ne charger que les tables utiles)
Reduire la fragmentation due aux pages
Reduire l’espace memoire utilise par le systeme d’adressage
Info32b Systemes d’Exploitation Thomas Lavergne 22/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre
decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
UC
RAM
adresse logique
table page decalage
Repertoirede pages
n° adresse T.P.
Table despages n°X
page cadre
cadre decal.
adresse physique
Info32b Systemes d’Exploitation Thomas Lavergne 23/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages =
2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire =
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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Exemple
Adresses sur 32 bits et cadres de 4 Ko → m=12
Pagination a 1 niveau
Table des pages = 2n lignes de n bits (ici, n = 20)
Total = 220 × 20÷ 8 = 2,5 Mo par processus
Pagination a 2 niveaux
n1 = 10, n2= 10, m = 12
Repertoire = 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 Systemes d’Exploitation Thomas Lavergne 24/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits
Ü Taille de la RAM = ?
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Quelques formules
Adresse physique sur k bits
Adresse logique sur k = n1 + n2 + m bits
Ü Taille de la RAM = 2k octets
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = ?
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = 2n1 × k bits
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = 2n1 × k bits
Ü Taille d’une table de pages = ?
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2) bitsou 2n2 × (k −m). . .
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2) bitsou 2n2 × (k −m). . .
Ü Nombre de tables de pages = ?
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a 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 repertoire = 2n1 × k bits
Ü Taille d’une table de pages = 2n2 × (n1 + n2) bitsou 2n2 × (k −m). . .
Ü Nombre de tables de pages = 2n1 tables
Info32b Systemes d’Exploitation Thomas Lavergne 25/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Allocation memoire Pagination Pagination hierarchique
Pagination a deux niveaux
Remarque
Pagination a 3 niveaux sur les processeurs 64 bits
Implementation
Table des pages en RAM
Tous les calculs sont effectues au niveau materiel dans laMMU
Registre d’adresse de la table des pagesTable des cadres libres
Cache materiel (TLB = Translation Lookaside Buffer)stocke les couples (page,cadre)
Info32b Systemes d’Exploitation Thomas Lavergne 26/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Plan
1 Fonctionnement de la memoire
2 Pagination
3 Memoire virtuellePrincipePagination a la demandeAllocation
4 Conclusion
Info32b Systemes d’Exploitation Thomas Lavergne 27/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Memoire virtuelle
Probleme
Nombre et taille des processus
Entre 200 et 500 processus en parallele sur un PC
Gros processus : Eclipse = 250 Mo, donnees d’un jeu ≥ 1 Go
→ Somme des tailles des processus ≥ Capacite RAM
Portions de code inutilisees
Traitement d’erreur → rarement utilise
Donnees du jeu → pas tout en meme temps
Donnees d’un tableau → pas tout en meme temps
Bibliotheque → tres variable !
→ ne charger que les pages utiles ! (laisser le reste sur le disque. . . )
Info32b Systemes d’Exploitation Thomas Lavergne 28/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Memoire virtuelle
Probleme
Nombre et taille des processus
Entre 200 et 500 processus en parallele sur un PC
Gros processus : Eclipse = 250 Mo, donnees d’un jeu ≥ 1 Go
→ Somme des tailles des processus ≥ Capacite RAM
Portions de code inutilisees
Traitement d’erreur → rarement utilise
Donnees du jeu → pas tout en meme temps
Donnees d’un tableau → pas tout en meme temps
Bibliotheque → tres variable !
→ ne charger que les pages utiles ! (laisser le reste sur le disque. . . )
Info32b Systemes d’Exploitation Thomas Lavergne 28/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Espace de stockage(disque)
pagepage pagepage
pagepage pagepage
pagepage pagepage
pagepage pagepage
Memoirephysique(RAM)
Memoirevirtuelle
=espace
adressable(par processus)
page 0
page 1
page 4 page 0
page 1
page 4
pagesnon
utiliseespage 2
page 3
page 5
. . .
Info32b Systemes d’Exploitation Thomas Lavergne 29/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Espace de stockage(disque)
pagepage pagepage
pagepage pagepage
pagepage pagepage
pagepage pagepage
Memoirephysique(RAM)
Memoirevirtuelle
=espace
adressable(par processus)
page 0
page 1
page 4
pagesutilisees
page 0
page 1
page 4
pagesnon
utiliseespage 2
page 3
page 5
. . .
Info32b Systemes d’Exploitation Thomas Lavergne 29/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Espace de stockage(disque)
pagepage pagepage
pagepage pagepage
pagepage pagepage
pagepage pagepage
Memoirephysique(RAM)
Memoirevirtuelle
=espace
adressable(par processus)
page 0
page 1
page 4
pagesutilisees
page 0
page 1
page 4
pagesnon
utiliseespage 2
page 3
page 5
. . .
Info32b Systemes d’Exploitation Thomas Lavergne 29/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Espace de stockage(disque)
pagepage pagepage
pagepage pagepage
pagepage pagepage
pagepage pagepage
Memoirephysique(RAM)
Memoirevirtuelle
=espace
adressable(par processus)
page 0
page 1
page 4 page 0
page 1
page 4
pagesnon
utiliseespage 2
page 3
page 5
. . .
Info32b Systemes d’Exploitation Thomas Lavergne 29/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Espace de stockage(disque)
pagepage pagepage
pagepage pagepage
pagepage pagepage
pagepage pagepage
Memoirephysique(RAM)
Memoirevirtuelle
=espace
adressable(par processus)
page 0
page 1
page 4 page 0
page 1
page 4
pagesnon
utiliseespage 2
page 3
page 5
. . .
Info32b Systemes d’Exploitation Thomas Lavergne 29/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Avantages
Possibilite de mettre plus de processus en paralleles
Le programmeur ne se preoccupe plus de la memoire
Pagination a la demande
Table des pages : bit de validite (0=page sur le disque)
L’OS charge les pages manquantes depuis le disque vers laRAM
Info32b Systemes d’Exploitation Thomas Lavergne 30/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Schema de principe
Memoire virtuelle
Chaque processus peut adresser plus d’espace qu’il n’aeffectivement en memoire physique
Avantages
Possibilite de mettre plus de processus en paralleles
Le programmeur ne se preoccupe plus de la memoire
Pagination a la demande
Table des pages : bit de validite (0=page sur le disque)
L’OS charge les pages manquantes depuis le disque vers laRAM
Info32b Systemes d’Exploitation Thomas Lavergne 30/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
– 0
defautde page
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
– 0
defautde page
OS
2. deroutement
Disque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
– 0
defautde page
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
– 0
defautde page
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Pagination a la demande
. . .
ldr r0, @a
ldr r1, @b
add r2, r0, r1
str r2, @c
. . .
Processus
1. reference
Table
despages
OS
2. deroutementDisque
3. requete disque
4. allocation UC aun autre processus
5. fin d’E/S→ interruption
disponible
Memoirephysique(RAM)
6. chargementpage manquante
1n° cadre
7. mise ajour table(s)
8. instructionrelancee
Info32b Systemes d’Exploitation Thomas Lavergne 31/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Temps d’acces
Cout des defauts de page
p = probabilite d’avoir un defaut de page
M = temps d’acces a la memoire
D = temps de traitement du defaut de page (acces disque)
Temps d’acces = (1− p)×M + p × D = M + p(D −M)
Propriete
Le temps d’acces est proportionnel a la probabilite d’avoir undefaut de page
Acces disque
En pratique, M est 1000 fois plus petit que D.
Info32b Systemes d’Exploitation Thomas Lavergne 32/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation
Probleme
Combien de cadres (RAM) allouer a chaque processus
Proprietes
Plus de cadre par processus → moins de processus →ralentissement
Moins de cadre par processus → plus de defauts →ralentissement
Politiques d’allocation
Allocation equitable
Allocation proportionnelle
Allocation basee sur la priorite
Info32b Systemes d’Exploitation Thomas Lavergne 33/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation equitable
Donnees
N cadres disponibles en RAM
P processus
Allocation equitable
Chaque processus recoit N/P cadres
Le reste sert de tamponLors du remplacement de page, charger et relancer sans supprimerl’ancienne page → reduction du nombre de defauts
Inconvenient
Tous les processus n’ont pas besoin de la meme quantite dememoire. . .
Info32b Systemes d’Exploitation Thomas Lavergne 34/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation equitable
Donnees
N cadres disponibles en RAM
P processus
Allocation equitable
Chaque processus recoit N/P cadres
Le reste sert de tamponLors du remplacement de page, charger et relancer sans supprimerl’ancienne page → reduction du nombre de defauts
Inconvenient
Tous les processus n’ont pas besoin de la meme quantite dememoire. . .
Info32b Systemes d’Exploitation Thomas Lavergne 34/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation proportionnelle
Donnees
N cadres disponibles en RAM
P processus
∀i ∈ [1,P], Mi la taille de Pi (en memoire virtuelle)
Allocation proportionnelle
On garde generalement un tampon de T pages
Pi recoit (N − T )× Mi∑i Mi
cadres
Inconvenient
Les petits processus font plus de defauts de pages en pratique. . .car ils utilisent simultanement une plus grande part de leur code que les grosprocessus.
Info32b Systemes d’Exploitation Thomas Lavergne 35/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation proportionnelle
Donnees
N cadres disponibles en RAM
P processus
∀i ∈ [1,P], Mi la taille de Pi (en memoire virtuelle)
Allocation proportionnelle
On garde generalement un tampon de T pages
Pi recoit (N − T )× Mi∑i Mi
cadres
Inconvenient
Les petits processus font plus de defauts de pages en pratique. . .car ils utilisent simultanement une plus grande part de leur code que les grosprocessus.
Info32b Systemes d’Exploitation Thomas Lavergne 35/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Principe Pagination a la demande Allocation
Allocation basee sur la priorite
Donnees
N cadres disponibles en RAM
P processus
∀i ∈ [1,P], prioi la priorite de Pi
Allocation basee sur la priorite
On garde generalement un tampon de T pages
Pi recoit (N − T )× prioi∑i prioi
cadres
Info32b Systemes d’Exploitation Thomas Lavergne 36/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Plan
1 Fonctionnement de la memoire
2 Pagination
3 Memoire virtuelle
4 Conclusion
Info32b Systemes d’Exploitation Thomas Lavergne 37/38
Fonctionnement de la memoire Pagination Memoire virtuelle Conclusion
Synthese
Ce qu’il faut retenir
Notion d’adresse
Liaison d’adresse & resolution
Allocation memoire
Fragmentation
Pagination simple et double niveau
Memory Management Unit
Memoire virtuelle
Deroutement
Politiques d’allocation
. . . et savoir faire les calculs !
Info32b Systemes d’Exploitation Thomas Lavergne 38/38