Documente Academic
Documente Profesional
Documente Cultură
Gestion de la Mmoire
L1SIL ISI-2009
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
Introduction
La mmoire est une ressource importante et limite qui doit tre gre dune faon optimale. Plusieurs types de mmoires peuvent tre utiliss lors de lexcution dun programme. Mais, pour sexcuter, un programme doit tre plac en mmoire centrale.
Capacit de stockage
Disques
Bandes
Cas de multiprogrammation
Noyau 4MO Programme 1 Programme 2 Programme 3 8MO 7MO 9MO Libre 4MO
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
http://w3.uqo.ca/luigi/
Partitions fixes
Mmoire principale subdivise en rgions distinctes: partitions Les partitions sont soit de mme taille ou de tailles ingales Nimporte quel programme peut tre affect une partition qui soit suffisamment grande
(Stallings)
http://w3.uqo.ca/luigi/
Il y a assez d espace pour excuter un programme, mais il est fragment de faon non contigu
externe: l`espace inutilis est entre partitions interne: l espace inutilis est dans les partitions
http://w3.uqo.ca/luigi/
(Stallings)
assigner chaque processus la partition de la plus petite taille pouvant le contenir 1 file par taille de partition tente de minimiser la fragmentation interne Problme: certaines files seront vides sil ny a pas de processus de cette taille (fr. externe)
Chap. 9
http://w3.uqo.ca/luigi/
On choisit la plus petite partition libre pouvant contenir le prochain processus le niveau de multiprogrammation augmente au profit de la fragmentation interne
(Stallings)
http://w3.uqo.ca/luigi/
Partitions fixes
Simple, mais... Inefficacit de lutilisation de la mmoire: tout programme, si petit soit-il, doit occuper une partition entire. Il y a fragmentation interne. Les partitions tailles ingales attnue ces problmes mais ils y demeurent...
10
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
11
Le va-et-vient
La mmoire est une ressource ne pouvant pas contenir tous les processus. Il est alors ncessaire de dplacer quelques processus sur le disque et de les ramener en RAM avant de les excuter. Ce mouvement des processus entre disque et RAM est appel va-et-vient ou encore swapping. Multiprogrammation avec partitions variables Les partitions varient en nombre, en taille et en position au fur et mesure que les processus entrent et sortent de la mmoire.
B A SE SE A SE SE B B C SE C SE
SE
12
Temps
http://w3.uqo.ca/luigi/
Partitions dynamiques
Partitions en nombre et tailles variables A chaque processus est allou exactement la taille de mmoire requise Probablement des trous inutilisables se formeront dans la mmoire: cest la fragmentation externe
13
http://w3.uqo.ca/luigi/
14
Memoire=1024K, OS=128K, P1=320K, P2=224K, P3=228K, P4=128K. (d) Il y a un trou de 64K aprs avoir charg 3 processus: pas assez despace pour autre processus Si tous les proc se bloquent (p.ex. attente dun vnement), P2 peut tre permut et P4=128K peut tre charg.
http://w3.uqo.ca/luigi/
(Stallings)
15
(e-f) P2 est suspendu, P4 est charg. Un trou de 224-128=96K est cr (fragmentation externe) (g-h) P1 se termine ou il est suspendu, P2 est repris sa place: produisant un autre trou de 320-224=96K... Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation externe COMPRESSION pour en faire un seul trou de 256K
http://w3.uqo.ca/luigi/
Algorithmes de Placement
Pour dcider de lemplacement du prochain processus But: rduire lutilisation de la compression (prend du temps...) Choix possibles:
16
Best fit: choisir le plus petit trou (meilleur accs) Worst fit: le plus grand (pire accs) First-fit: choisir 1er trou partir du dbut (premier accs) Next-fit: choisir 1er trou partir du dernier placement (prochain accs)
(Stallings)
http://w3.uqo.ca/luigi/
critre principal: diminuer la probabilit de situations o un processus ne peut pas tre servi, mme s il y a assez de mmoire...
Worst-fit: les trous cres seront les plus grands possibles Next-fit: les allocations se feront souvent la fin de la mmoire
La simulation montre qu`il ne vaut pas la peine dutiliser les algo. les plus complexes... donc first fit
17
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
18
Le va-et-vient
Le gestionnaire de la mmoire doit mmoriser les parties libres et occupes. Gestion par table de bits:
La mmoire est divise en units dallocation dont la taille fixe qui peut varier de quelques mots plusieurs kilo-octets. Chaque unit sera reprsente dans la table des bits par 0 si lunit est libre et 1 si elle est occupe.
Exemple:
A
8
00111100 00111111
L 0 2 O 2 4
L 6 4 O 10 7 L 17 4
B
16
100000
19
Liste chane
Le va-et-vient
Discutez les avantages/limites de chaque approche
20
10
Diviser la mmoire en n partitions qui peuvent tre de tailles ingales et associer a chaque partition une file dattente. Chaque nouvelle tche est place dans la file dattente de la plus petites partition qui peut la contenir. Lespace non utilis dans une partition est perdu (pb de fragmentation)
Files multiples
Partition 3
Partition 2
Partition 3
Partition 1
Partition 1 Noyau
21
Noyau
22
11
23
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
24
12
Mmoire virtuelle
La mmoire virtuelle permet de fournir un espace dadressage indpendant de celui de la mmoire physique. Possibilit dexcuter des programmes dont la taille dpasse la mmoire disponible. Le systme garde en mmoire les parties utilises du programme et stocke le reste sur le disque (Allocation non contingu). Espace dadressage virtuelle >> espace physique (RAM). Physiquement, la mmoire virtuelle est compose de la mmoire centrale (RAM) plus la partition swap.
25
Mmoire virtuelle
Les instructions et les donnes dun programme sont rfrences en utilisant des adresses virtuelles (logiques). Ces adresses passent par lunit de gestion de la mmoire (Memory Management Unit MMU) qui les transforme en adresses physiques.
Carte CPU
Mmoire
Priphrique
CPU MMU
Bus
26
13
Plan
1. 2.
3.
4.
Introduction Gestion de la mmoire sans pagination ni va-et-vient a. Cas de monoprogrammation b. Multiprogrammation avec partitions fixes Le va-et-vient a. Multiprogrammation avec partitions variables b. Stratgies de placement c. Gestion de la mmoire par table de bits d. Gestion de la mmoire par liste chane La mmoire virtuelle a. Dfinition b. Pagination c. Algorithmes de remplacement de pages
27
28
Il y a deux techniques de base pour faire ceci: la pagination et la segmentation la pagination utilise des parties de programme arbitraires (morcellement du programmes en pages de longueur fixe). la segmentation utilise des parties de programme qui ont une valeur logique (des modules) elles peuvent tre combines
14
Pagination simple
La mmoire est partitionne en petits morceaux de mme taille: les pages physiques ou cadres ou frames Chaque processus est aussi partitionn en petits morceaux de mme taille appels pages (logiques) Les pages logiques dun processus peuvent donc tre assigns aux cadres disponibles nimporte o en mmoire principale Consquences:
un processus peut tre parpill nimporte o dans la mmoire physique. la fragmentation externe est limine
29
Stallings
30
15
Stallings
La fragmentation externe est limite au cas que le nombre de pages disponibles nest pas suffisant pour excuter un programme en attente Seule la dernire page dun progr peut souffrir de fragmentation interne (moy. 1/2 cadre par proc)
31
Tableaux de pages
Stallings
Les entres dans la table de pages sont aussi appeles descripteurs de pages
32
16
Tableaux de pages
Stallings
33
Le SE doit maintenir une table de pages pour chaque processus Chaque descripteur de pages contient le numro de cadre o la page correspondante est physiquement localise Une table de pages est indexe par le numro de la page afin dobtenir le numro du cadre Une liste de cadres disponibles est galement maintenue (free frame list)
Stallings
Traduction dadresses
Ladresse logique est facilement traduite en adresse physique
car la taille des pages est une puissance de 2 les pages dbutent toujours des adresses qui sont puissances de 2 qui ont autant de 0s droite que la longueur de loffset donc ces 0s sont remplacs par loffset
Ex: si 16 bits sont utiliss pour les adresses et que la taille dune page = 1K: on a besoins de 10 bits pour le dcalage, laissant ainsi 6 bits pour le numro de page Ladresse logique (p,d) est traduite l adresse physique (f,d) en utilisant p comme index sur la table des pages et en le remplaant par l adresse f trouve depuis la table
34
d ne change pas
Chap. 9
17
Mcanisme: matriel
35
Stallings
36
18
Exercice 1
Hypothses:
Bus dadresses de 16 bits Taille dune page 4Ko = 4096 o (adresse sur 12bits) Table de page (ci contre) Calculer ladresse physique correspondante ladresse logique (virtuelle) 8196
Question
37
Correction
Adresse physique= 24580
38
19
Exercice 2
Soit un ordinateur ayant :
Une mmoire physique de capacit 128 Mo Une architecture 32 bits. La taille d'une page gale 4 Ko, Une adresse virtuelle indexe un octet Chaque entre de la table (rfrence dun cadre + bit prsence absence)
39
Correction Ex2
Taille table des pages = taille d'une entre de la table x le nombre d'entres de la table Nombre d'entres de la table = Taille de l'espace virtuelle / taille d'une page Taille de l'espace virtuelle = nombre d'adresses virtuelles possible x 1octet (car par dfaut une adresse virtuelle indexe un octet dans la mmoire virtuelle) = 2^32 octets
40
20
41
42
21
43
Deux points sont prendre en considration : La table des pages peut tre trs grande
En utilisant des pages de 4 Ko, un espace dadressage de 32 bits abouti 1 million de pages. La table des pages doit donc contenir 1 million dentres. Chaque processus a besoin de sa propre table des pages.
2.
44
Le mappage de ladresse virtuelle doit tre effectu chaque rfrence mmoire. Une instruction typique ncessite une, deux ou davantage de rfrences la table des pages. Si une instruction prend 10 ns, la recherche dans la table des pages doit tre effectue en quelques nanosecondes pour viter un ralentissement trop important.
22
Lorsquun processus est activ, le systme dexploitation charge les registres avec la table des pages de ce processus partir dune copie situe en mmoire. Au cours de lexcution du processus, la table des pages ne ncessite plus de rfrences mmoire pendant le mappage. Cette mthode peut tre coteuse si la table des pages est grande et forcment pnalisante chaque changement de contexte de processus.
45
Le matriel na alors besoin que dun seul registre qui pointe sur le dbut de la table des pages en mmoire. Modification dun seul registre lors dun changement de contexte. Elle prsente bien sr le dsavantage de ncessiter une ou plusieurs rfrences mmoire pour lire les entres de la table des pages lors de lexcution de chaque instruction.
46
23
47
48
24
Mmoire physique
Case Page
49
50
25
51
52
Par gnralisation, probabilits de rfrence des pages charges convergent avec leur temps de prsence
26
Lalgorithme Optimal
Choisir la victime parmi les pages plus jamais rfrences ultrieurement Par gnralisation, choisir la page qui fera l'objet de la rfrence la plus tardive Irralisable car suppose connaissance de la suite de rfrences l'excution 54 Utilis pour base de comparaison pour valuer les autres algorithmes
27
R : mis 1 chaque fois que la page est rfrence (lue ou crite) M : mis 1 chaque fois que la page est modifie
Ils sont mis 1 par le matriel et remis 0 par le SE (logiciel) (R priodiquement, M aprs enregistrement de la page)
55
Classe 0: non rfrence, non modifie (R=0, M=0) Classe 1: non rfrence, modifie (R=0, M=1) Classe 2: rfrence, non modifie (R=1, M=0) Classe 3: rfrence, modifie (R=1, M=1)
Problmes defficacit
La traduction d`adresses, y compris la recherche des adresses des pages et de segments, est excute par des mcanismes de matriel Cependant, si la table des pages est en mmoire principale, chaque adresse logique occasionne au moins 2 rfrences la mmoire
Une pour lire lentre de la table de pages Lautre pour lire le mot rfrenc
56
28
Solution 1: dans des registres de UCT. avantage: vitesse dsavantage: nombre limit de pages par proc., la taille de la mm. logique est limite Solution 2: en mmoire principale avantage: taille de la mm. logique illimite dsavantage: mentionn Solution 3 (mixte): les tableaux de pages sont en mmoire principale, mais les adresses les plus utilises sont aussi dans des registres d`UCT.
57
29