(Gestion de la mémoire) Corrigé TD2 (Gestion de la mémoire) 1- Segmentation a- First-fit Best-fit 800 500 300 Requête Segments disponibles 200 600 500 300 300 300 500 300 400 300 100 300 250 50 100 300 250 50 100 50 Requête Segments disponibles 200 800 500 100 300 800 200 100 400 400 200 100 250 150 200 100 250 0 0 0 800 500 300 b- Comme on n'a pas de données sur les besoins futurs en mémoire des processus, on ne peut pas trouver de schéma optimal pour les algorithmes d'allocation mémoire
First-fit 2- Allocation mémoire 1200 1100 1000 900 800 700 600 500 400 300 200 100 Mémoire +400 +150 +350 -150 +100 +250 -350 +150 250 250 250 400 400 400 400 400 400 400 400 100 100 100 100 150 150 150 350 350 350 350 First-fit
Best-fit 2- Allocation mémoire (suite) 1200 1100 1000 900 800 700 600 500 400 300 200 100 Mémoire +400 +150 +350 -150 +100 +250 -350 +150 250 250 250 400 400 400 400 400 400 400 400 100 100 100 100 150 150 150 350 350 350 350 Best-fit
Worst-fit 2- Allocation mémoire (suite) Mémoire 1200 1100 1000 100 100 100 100 100 900 800 700 350 350 350 350 150 600 250 250 500 150 150 400 300 200 400 400 400 400 400 400 400 400 400 100 +400 +150 +350 -150 +100 +250 -350 +250 +150 empilée dépilée Worst-fit
3- Pagination a- L'index primaire comporte 6 bits, donc la table comporte n1 = 26 = 64 entrées ; de même n2 = 26 = 64 et n3 = 28 = 256. Comme chaque entrée occupe 4 octets, la table primaire occupe 256 octets, comme une table secondaire et une table tertiaire occupe 1024 octets, soit 1 Ko. b- L'espace compris entre 0 et 1500 Ko comporte 1500/4 = 375 pages ; il faut donc 2 tables tertiaires pour le décrire (seules 375 - 256 = 119 premières entrées de la seconde table sont valides), et une table secondaire , dont seules les 2 premières entrées sont valides. L'espace compris entre 2 Go -100 ko et 2 Go comporte 25 pages et sa description nécessite une table tertiaire et une table secondaire dont seule la dernière entrée est valide. Soit 3 tables tertiaires et 2 tables secondaires, qui occupent 3 x 256 + 2 x 64 = 896 mots ( 960 si l'on compte aussi la table primaire), ou encore 3584 (resp. 3840) octets. c- t1 = 232 / 26 = 226 = 64 Mo, t2 = 226 / 26 = 220 = 1 Mo, t3 = 220 / 28 = 212 = 4 Ko.