Module 8 – La mémoire virtuelle
De la pagination et segmentation à la mémoire virtuelle Un processus est constitué de morceaux (pages ou segments) ne nécessitant pas d’occuper une région contiguë de la mémoire principale Références à la mémoire sont converties en adresses physiques au moment de l’exécution
La mémoire virtuelle - Traduction dadresses et pagination à
La mémoire virtuelle : intuition Principe : chaque processus a sa propre mémoire une mémoire = un vaste tableau d’octets indices =adresses contenu : complète liberté du programmeur décider où mettre quoi = allocation àl’intérieurdu processus (cf chap 4) I rôle du langage de programmation Implémentation : combinaison de plusieurs
620 Mémoire virtuelle - INF3173
Mémoire virtuelle sans pagination (historique) • Alias: swapping de processus Quand la mémoire est faible • Trouver un processus pas souvent actif • Copier toute sa mémoire sur disque (swap out) • Puis libérer la mémoire du processus → La mémoire n’est plus faible Quand on doit continuer l’exécution du processus
Gestion de la mémoire par pages - Ensimag
par pagination • Mémoire virtuelle divisée en zones de taille fixe appelées pages – Taille typique d ’une page: 4 Koctets – Taille mémoire virtuelle : 32 ou 64 bits d ’adresse • Mémoire physique divisée en blocs de même taille que les pages appelés les cases • Une page peut être chargée dans n’importe quelle
8 – PAGINATION MÉMOIRE
Le principe de la pagination réside dans la division de la mémoire en zones de tailles fixes appelées "pages" L’espace de travail d'un processus est divisé en pages Quand le processus est exécuté, seules les pages dont il a besoin sont chargées en mémoire centrale
Gestion de la mémoire - Cours systemes dexploitation
Gestion de la mémoire I La segmentation La pagination : La mémoire virtuelle étudiée jusqu’ici est à une dimension, les adresses virtuelles sont comprises entre 0 et une adresse maximale Chaque segment est une suite d’adressescontinus de 0 à une adresse maximale autorisée Les segments ont des tailles différentes qui varient en cours
Pagination (1/3) : la mémoire
mémoire, le bit M (modified ou dirty bit) qui indique si la page a été modifiée - pour trouver l'information cherchée on concatène la partie déplacement dans la page au numéro de page physique trouvé
Repa rtition de la memoire entre systeme et Adressage
pagination et segmentation Pagination Segmentation Memoire paginee segmentee Memoire virtuelle Pagination : une abstraction au niveau materiel La memoire est partitionnee en pages de taille xe et petite Chaque page possede un numero physique et comme pour un fs , l'os maintient une liste des pages libres
Chapitre 3 GESTION DE LA MEMOIRE
La mémoire virtuelle fait appel à deux mécanismes : segmentation ou pagination La mémoire est divisée en segments ou pages Sans recours à la mémoire virtuelle, un processus est entièrement chargé à des adresses contiguës ; avec le recours à la mémoire virtuelle, un processus peut être chargé dans des pages ou des segments
La gestion de la mémoire
La m¶emoire virtuelle Les limites du swap La pagination µa la demande Algorithmes de remplacement de pages La pagination µa la demande ou swappeur paresseux La m¶emoire logique (virtuelle) est d¶ecoup ¶ee en pages La m¶emoire virtuelle est potentiellement inflnie La m¶emoire physique est d¶ecoup ¶ee en cadres de page
[PDF] conversion adresse logique adresse physique
[PDF] pagination et segmentation pdf
[PDF] pagination systeme d'exploitation
[PDF] telecharger un livre de grammaire pdf
[PDF] larousse conjugaison pdf
[PDF] telecharger larousse difficultés grammaticales pdf
[PDF] larousse grammaire francais
[PDF] larousse orthographe pdf
[PDF] larousse livre de bord orthographe pdf
[PDF] telecharger livre larousse grammaire gratuit pdf
[PDF] introduction grammaire generative
[PDF] chomsky théorie
[PDF] chomsky linguistique pdf
[PDF] aspects de la théorie syntaxique pdf
Module 81
Module 8 - La mémoire virtuelleChapitre 9 (Silberchatz)Module 82
Mémoire Virtuelle■Pagination sur demande
■Problèmes de performance ■Remplacement de pages: algorithmes ■Allocation de cadres de mémoire ■Ensemble de travailModule 83
Concepts importants du Module 8
Localité des références
Mémoire virtuelle implémentée par va-et-vient des pages, mécanismes, défauts de pagesAdresses physiques et adresses logiques
Temps moyen d'accès à la mémoire?
Récriture ou non de pages sur mém secondaireAlgorithmes de remplacement pages:?
OPT, LRU, FIFO, Horloge
Fonctionnement, comparaison
Écroulement, causes
Ensemble de travail (working set)
Relation entre la mémoire allouée à un proc et le nombre d'interruptions Relation entre la dimension de pages et le nombre d'interruptionsPrépagination, post-nettoyage
Effets de l'organisation d'un programme sur l'efficacité de la paginationModule 84
La mémoire virtuelle est une application du
concept de hiérarchie de mémoire■C'est intéressant de savoir que des concepts très semblables s'appliquent aux mécanismes de la mémoire cache?Cependant dans ce cas les mécanismes sont surtout de matériel
magnetic tapesoptical diskmagnetic diskelectronic disk cache main memoryregistersMécanismes cache
Méc. mém. virtuelleRAM
(flash)Module 85
La mémoire virtuelle■
Lorsqu'un programme est en exécution, il n'est
pas nécessaire qu'il soit entièrement dans la mémoire principale!Seules
les parties qui sont en exécution ont besoin d'être dans la mémoire centrale Les autres parties peuvent être dans la mémoire secondaire (ex. disque), prêtes à être amenées en mémoire centrale sur demande ?Mécanisme de va-et-vient ou swapping
Ceci rend possible l'exécution de programmes
beaucoup plus grands que la mémoire physique?Réalisant ainsi une
mémoire virtuelle qui est plus grande que la mémoire physiqueModule 86
De la pagination et segmentation à la mémoire virtuelleUn processus est constitué de
morceaux (pages ou segments) ne nécessitant pas d'occuper une région contiguë de la mémoire principale Références à la mémoire sont converties en adresses physiques au moment de l'exécution ? Un processus peut être déplacé à différentes régions de la mémoire, incluant la mémoire secondaire! Donc: tous les morceaux d'un processus ne nécessitent pas d'être en mémoire principale durant l'exécution L'exécution peut continuer à condition que la prochaine instruction (ou donnée) est dans un morceau se trouvant en mémoire principale La somme des mémoires logiques des processus en exécution peut donc excéder la mémoire physique disponible?Le concept de base de la mémoire virtuelle
Une image de tout l'espace d'adressage du processus est gardée en mémoire secondaire (normal. disque) d'où les pages manquantes pourront être prises au besoin?Mécanisme de va-et-vient ou swapping
Module 87
Mémoire virtuelle:
résultat d"un mécanisme qui combine la mémoire principale et les mémoires secondairesTableau de pages
Module 88
Localité et mémoire virtuelle
Principe de
localité des références : les références à la mémoire dans un processus tendent à se regrouperDonc: seule quelques pièces (pages ou
segments) d'un processus seront utilisées durant une petite période de tempsIl y a une bonne chance de "deviner" quelles
seront les pièces demandées dans un avenir rapprochéModule 89
Visualisation de la localité des référencesModule 810
Pages en RAM ou sur disque
Page A en RAM et sur
disquePage E seulementsur disqueModule 811
Nouveau format du tableau des pages (la même idée peut être appliquée aux tableaux de segments)
Adresse de la
pageBit présent bit présent1 si en mém. princ.,
0 si en mém second.Si la page est en mém. princ., c"est une adresse de mémoire principalesinon c"est une adresse de mémoire secondaire
Au début, bit présent = 0 pour toutes les pagesModule 812
Avantages du chargement partiel
Plus de processus peuvent être maintenus en exécution en mémoire? Puisque seules quelques pièces sont chargées pour chaque processus L'usager est content, car il peut exécuter plusieurs processus et faire référence à des gros données sans avoir peur de remplir la mémoire centrale Avec plus de processus en mémoire principale, il est plus probable d'avoir un processus dans l'état prêt, meilleure utilisation d'UCT Plusieurs pages ou segments rarement utilisés n'auront peut être pas besoin d`être chargés du tout Il est maintenant possible d'exécuter un ensemble de processus lorsque leur taille excède celle de la mémoire principale ? Il est possible d'utiliser plus de bits pour l'adresse logique que le nombre de bits requis pour adresser la mémoire principale Espace d 'adressage logique > >espace d 'adressage physiqueModule 813
Mémoire Virtuelle: Pourrait Être Énorme!
Ex: 16 bits sont nécessaires pour adresser une mémoire physique de 64KB En utilisant des pages de 1KB, 10 bits sont requis pour le décalage Pour le numéro de pagede l'adresse logique nous pouvons utiliser un nombre de bits qui excède 6, car toutes les pages ne doivent pas être en mémoire simultanément Donc la limite de la mémoire virtuelle est le nombre de bits qui peuvent être réservés pour l'adresse? Dans quelques architectures, ces bits peuvent être inclus dans des registres La mémoire logique est donc appelée mémoire virtuelle?Est maintenue en mémoire secondaire
Les pièces sont amenées en mémoire principale seulement quand c'est nécessaire, sur demandeModule 814
Mémoire Virtuelle■
Pour une meilleure performance, la mémoire
virtuelle se trouve souvent dans une région du disque qui est n'est pas gérée par le système de fichiers ?Mémoire va-et-vient, swap memory
La mémoire physique est celle qui est référencée par une adresse physique ?Se trouve dans le RAM et cacheLa conversion de l'adresse logique en adresse
physique est effectuée en utilisant les mécanismes étudiés dans le chapitre précédent.Module 815
Mémoire virtuelle: le mécanisme de va-et-vientTableau de pages
Module 816
Exécution d"un Processus■
Le SE charge la mémoire principale de quelques
pièces (seulement) du programme (incluant le point de départ) Chaque entrée de la table de pages (ou segments) possède un bit présent qui indique si la page ou segment se trouve en mémoire principaleL'ensemble résident (résident set)
est la portion du processus se trouvant en mémoire principale Une interruption est générée lorsque l'adresse logique réfère à une pièce qui n'est pas dans l'ensemble résident? défaut de pagination, page faultModule 817
Exécution d"une défaut de page: va-et-vient plus en détailModule 818
Séquence d"événements pour défaut de page■Trappe au SE: page demandée pas en RAM
Sauvegarder registres et état du proc dans PCB
Un autre proc peut maintenant gagner l 'UCT
SE détermine si la page demandée est légale ? sinon: terminaison du processus et trouve la position de la page sur disque? dans le descripteur de la page lire la page de disque dans un cadre de mémoire libre (supposons qu`il y en a!)? exécuter les ops disque nécessaires pour lire la pageModule 819
Séquence d"événements pour défaut de page (ctn.) L 'unité disque a complété le transfert et interrompt l'UCT? sauvegarder les registres etc. du proc exécutant SE met à jour le contenu du tableau des pages du processus qui a causé le défaut de pageCe processus devient prêt=ready
À un certain point, il retournera à exécuter? la page désirée étant en mémoire, il pourra maintenant continuerModule 820
Temps moyen d"accès à la mémoire
Supposons que:
• L"accès en mémoire: 100 nanosecs • temps de traitement de défaut de pagination: 25 millisecs = 25x106ns • p: probabilité de ne pas trouver une page en mémoire (défaut)Temps moyen d"accès mémoire:
(1- p) x 100 + p x 25x106(pas de défaut + défaut)
En utilisant la même formule, nous pouvons déterminer quel est le nombre de défauts que nous pouvons tolérer, si un certain niveau de performance est désiré (v. manuel).Ex. avec ces paramètres, si le ralentissement à cause de pagination ne peut pas excéder 10%, 1 seul défaut de pagination peut être toléré pour chaque 2,500,000 accès de mémoire.
Module 821
Quand la RAM est pleine mais nous avons
besoin d`une page pas en RAMModule 822
La page victime...
Module 823
Remplacement de pages■
Quoi faire si un processus demande une nouvelle
page et qu'il n'y a pas de cadres libres en RAM? Il faudra choisir une page déjà en mémoire principale, appartenant au même ou à un autre processus, qu'il est possible d'enlever de la mémoire principale? la victimeUn cadre de mémoire sera donc rendu disponible
Évidemment, plusieurs cadres de mémoire ne
peuvent pas être `victimisés`:? ex. frames contenant le noyau du SE, tampons d 'E/S...Module 824
Bit de modification , dirty bit■La 'victime' doit-elle être réécrite en mémoire secondaire?
■Seulement si elle a été changée depuis qu`elle a été amenée en mémoire principale?sinon, sa copie sur disque est encore fidèle
■Bit de modification de chaque descripteur de page indique si la page a été changée■Donc pour calculer le coût en temps d'une référence à la mémoire il faut aussi considérer la probabilité qu'une page soit 'sale' et le temps de réécriture dans ce cas
Module 825
Algorithmes de remplacement pages■Choisir la victime de façon à minimiser le taux de défaut de pages?pas évident!!!
■Page dont nous n'aurons pas besoin dans le futur? impossible à savoir! ■Page pas souvent utilisée? ■Page qui a été déjà longtemps en mémoire?? ■etc. nous verrons...Module 826
Critères d"évaluation des algorithmes■Les algorithmes de choix de pages à remplacer doivent être conçus de façon à minimiser le taux de défaut de pages à long terme
■Mais il ne peuvent pas impliquer des temps de système excessifs, ex. mise à jour de tableaux en mémoire pour chaque accès de mémoire
■Ni l`utilisation de matériel dispendieuxModule 827
Explication et évaluation des algorithmes■ Nous allons expliquer et évaluer les algorithmes en utilisant la chaîne de référence pages suivante (prise du livre de Stallings):2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2
Attention: les séquences d'utilisation pages ne sont pas aléatoires...?Localité de référence
Ces références proviendront de plusieurs
processus L'évaluation sera faite sur la base de cet exemple qui évidemment n'est pas suffisant pour en tirer des conclusions générales Module 828Algorithmes pour la politique de remplacement ■L'algorithme optimal (OPT) choisit pour page à remplacer celle qui a été référencée le plus récemment?produit le + petit nombre de défauts de page ?impossible à réaliser (car il faut connaître le futur) mais sert de norme de comparaison pour les autres algorithmes: ?Ordre chronologique d'utilisation (LRU) ?Ordre chronologique de chargement (FIFO) ?Deuxième chance ou Horloge (Clock)Module 829
■Ordre chronologique d'utilisation (LRU)■Remplace la page dont la dernière référence remonte au temps le plus lointain (le passé utilisé pour prédire le futur)?En raison de la localité des références, il s'agit de la page qui a le moins de chance d'être référencée
?performance presque aussi bonne que l'algorithme OPTStallings
Algorithmes pour la politique de remplacement
Module 830
Comparaison OPT-LRU■Exemple: Un processus de 5 pages s'ìl n'y a que 3 pages physiques disponibles.
■Dans cet exemple, OPT occasionne 3+3 défauts, LRU 3+4.Stallings
Module 831
Note sur le comptage des défauts de page■Lorsque la mémoire principale est vide, chaque nouvelle page que nous ajoutons est le résultat d'un défaut de page
■Mais pour mieux comparer les algorithmes, il est utile de garder séparés ces défauts initiaux?car leur nombre est le même pour tous les algorithmes