Faculté des Sciences de Gabès Département Informatique Systèmes d’exploitation 2 Ch 4: Gestion de la mémoire virtuelle Section: LFSI2/LARI2 A.U: 2014/2015 1 La pagination La pagination permet d’avoir en mémoire un processus dont les adresses ne sont pas adjacentes. Pour réaliser ceci on partage l’espace d’adressage du processus en page et la mémoire physique en cadre de même taille (Quelque KO). Les pages du processus sont chargées dans les cadres libres de la mémoire. 2 Principe de la mémoire virtuelle La mémoire virtuelle permet d’exécuter des programmes dont la taille dépasse la taille de la mémoire réelle. Pour cela, on découpe les processus en pages et la mémoire en cadres de même taille. L’encombrement total du processus constitue l’espace d’adressage ou la mémoire virtuelle. Cette mémoire virtuelle réside sur le disque. Le sous-ensemble de pages chargées en mémoire centrale est appelé l’espace physique ou l’espace réel. Lorsqu’une adresse est générée(le processus demande une adresse virtuelle ”Logique”), elle est transcodée grâce à une table de pages (appelée aussi table de transcodage) pour lui faire correspondre son équivalent en mémoire physique. Ce transcodage est effectué par le MMU (Memory Management unit ”Unité de gestion de mémoire”). Si cette adresse correspond à une adresse physique, le MMU transmet sur le bus l’adresse réelle (physique) sinon il se produit un défaut de page. Pour pouvoir accéder à la page dont est générée l’adresse, on devra préalablement la charger en mémoire réelle. Si la mémoire est saturée, on choisit parmi les pages chargées en mémoire réelle une page victime(en utilisant un algorithme de remplacement). Si cette dernière a été modifiée, on la rapporte en mémoire virtuelle et on charge à sa place la page à laquelle on désire accéder. La taille de la mémoire virtuelle est fixée par la taille des registres, la plupart des machines ont des registres de 32 bits donc les adresses logiques varient entre 0 et 232 − 1 c-à-d un espace d’adressage de 4 GO. 3 Performance de la mémoire virtuelle Le temps de traitement d’une faute de page (le choix d’une page victime, l’accès au disque, le transfert, etc.) sera à l’ordre de 20 ms (10−3 s) à comparer avec un temps d’accès à la mémoire de l’ordre de 80 ns (10−9 s). Si le taux de faute de page est P alors le temps d’accès à la mémoire virtuelle sera : T = (1 − p) ∗ 80ns + p ∗ 20ms. (1) On peut améliorer la performance de la mémoire virtuelle de 2 manières : – Réduire le temps d’accès au disque. – Réduire la valeur de p par le choix d’un algorithme de remplacement de page adéquat. 1 4 Caractéristique d’un algorithme de demande de page 1. Statique ou dynamique : Un algorithme statique alloue un nombre fixe de cadres pour chaque processus. Un algorithme dynamique permet de changer le nombre de cadre d’un processus en cours d’exécution. 2. Stratégie de chargement : Quand une page doit être chargée dans un cadre, on peut choisir la demande de page pure (une page n’est chargée que si elle est demandée). On peut aussi décider de pré-paginer c’est-à-dire de charger à l’avance un certain nombre de pages dans des cadres. 3. Stratégie de remplacement : S’il n’y a pas des cadres libres, quelle page occupant un cadre doit être tuée pour placer la nouvelle page. 4. Stratégie de placement : Dans quel cadre la la page doit être chargée ? Les choix sont liées. Par exemple, si on choisit un algorithme statique alors la stratégie de placement est imposée : une nouvelle page est toujours chargée dans le cadre qui vient d’être libéré par l’algorithme de remplacement de page. 5 Algorithme statique de remplacement Le meilleur algorithme est celui qui produit le moins de fautes de pages. Nous allons les comparer à partir d’un exemple simple d’un processus qui dispose de 8 pages (numérotés de 0 à 7) et qui lui alloué 3 cadres de pages (initialement vides). Nous supposons qu’au cours de l’exécution du processus, la séquence de demande de page est la suivante : 0-1-2-3-0-1-2-0-3-0-2-3-4-5-6-7 5.1 PAPS (FIFO) C’est l’algorithme le plus simple qui peut être utilisé lorsqu’un défaut de page se produit, c’est la page qui occupe depuis le plus long temps un cadre est tué (victime). PAPS se base sur la durée de temps qu’une page a passé dans la mémoire et non sur son taux d’utilisation. En pratique, PAPS est très peut utilisé, son seul avantage étant sa simplicité d’implémentation. Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7 0 0 0 0 3 3 3 2 2 2 2 2 2 4 4 4 7 1 1 1 1 0 0 0 0 3 3 3 3 3 5 5 5 2 2 2 2 1 1 1 1 0 0 0 0 0 6 6 FDP X X X X X X X X X X X X X Nombre de fautes de pages=13. 5.2 LRU (Least Recently Used) : Moins récemment utilisé Lorsque un FDP se produit, la Cadre 0 1 2 3 0 1 0 0 0 0 3 3 3 1 1 1 1 0 0 2 2 2 2 1 FDP X X X X X X Nombre de fautes de pages=12. victime est 2 0 3 2 2 2 0 0 0 1 1 3 X X la plus ancienne page utilisée. 0 2 3 4 5 6 7 2 2 2 2 5 5 5 0 0 0 4 4 4 7 3 3 3 3 3 6 6 X X X X 2 5.3 MRU (Most Recently Used) :Plus récemment utilisé Lorsque un FDP se produit, la victime est la dernière page utilisée. Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 5 6 7 FDP X X X X X X X X X Nombre de fautes de pages=9. 5.4 LFU (Least Frequently used) : Moins fréquemment utilisé Lorsqu’une faute de page se produit, c’est la page qui été la moins référencée (moins au nombre d’utilisation) qui est tuée. En cas d’égalité on choisit aléatoirement ou on applique un autre algorithme. Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7 0 0 0 0 3 3 3 2 2 2 2 2 2 4 5 6 7 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 3 3 3 3 3 3 3 3 FDP X X X X X X X X X X X X Nombre de fautes de pages=12. 5.5 Algorithme optimal de Belady Lorsqu’une faute de page se produit, c’est la Cadre 0 1 2 3 0 1 2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 3 FDP X X X X X Nombre de fautes de pages=9. 3 page qui sera utilisée le plus loin qui est tuée. 2 3 4 5 6 7 0 0 4 5 6 7 2 2 2 2 2 2 3 3 3 3 3 3 X X X X