Gestion de la mémoire Hana Jouini ISET de Jendouba • Introduction • La techniqu

Gestion de la mémoire Hana Jouini ISET de Jendouba • Introduction • La technique de recouvrement • La technique de swapping • La mémoire virtuelle • La pagination • La segmentation Introduction • Le rôle de gestionnaire de la mémoire est de partager la mémoire entre l'OS et les diverses applications. • Le terme "mémoire" fait référence à la mémoire principale, c'est à dire à la RAM, Introduction 1. La monoprogrammation : Le modèle de base Accepter un seul processus à la fois auquel on permet d'utiliser toute la mémoire disponible en dehors de celle qu'utilise le système. Introduction 2. La multiprogrammation Accepter plusieurs processus dans la mémoire disponible en dehors de celle qu'utilise le système. Il existe deux façons pour partager la mémoire entre les processus: • Multiprogrammation avec partitions fixes • Multiprogrammation avec partitions variables Introduction 2. La multiprogrammation – Multiprogrammation avec partitions fixes Le partitionnement est fait une fois pour tous au démarrage du système par l'opérateur de la machine, qui subdivise la mémoire en partitions fixes. Introduction 2. La multiprogrammation – Multiprogrammation avec partitions fixes Il existe deux versions: (a) Chaque nouveau processus est placé dans la file d'attente de la plus petite partition qui peut le contenir (a). (b) Utiliser une seule file d'attente : dès qu'une partition se libère, le système y place le premier processus de la file qui peut y tenir (b). Introduction 2. La multiprogrammation – Multiprogrammation avec partitions fixes Introduction 2. La multiprogrammation – Multiprogrammation avec partitions fixes Le partitionnement peut se faire en partitionnant la RAM en partition fixes de tailles égales ou en partition fixes de tailles inégales. La multiprogrammation avec partitions fixes peut conduire au problème de fragmentation interne. Introduction 2. La multiprogrammation – Multiprogrammation avec partitions variables Au lancement du système, on crée une seule zone libre de taille maximale. Lorsqu'on charge un programme, on le place dans une zone libre suffisante, et on lui alloue exactement la mémoire nécessaire. Le reste devient une nouvelle zone libre. Lorsqu'un programme s'achève, sa partition redevient libre, et peut éventuellement grossir une zone libre voisine. La multiprogrammation avec partitions variables peut conduire au problème de fragmentation externe. Introduction 2. La multiprogrammation – Multiprogrammation avec partitions variables La technique de recouvrement • Si le nombre de processus devient supérieur au nombre de partitions, on peut simuler la présence en mémoire centrale de tous les processus. • La technique de recouvrement permet de stocker temporairement sur disque des images de processus afin de libérer la RAM pour d'autres processus. La technique de recouvrement • Cette amélioration de l'usage de la RAM nécessite un mécanisme plus complexe d'allocation et de libération => le swapping (le va-et-vient) La technique de swapping • Le swapping (ou le va-et-vient) consiste à créer une zone mémoire (Swap) similaire à la RAM dans une mémoire secondaire (disque dur). • Le swap se comporte comme la mémoire vive, à la différence qu'on ne peut y exécuter des processus (pour exécuter un processus sur le swap, il faut le charger en mémoire vive) La technique de swapping La technique de swapping • Un processus qui est inactif (soit bloqué, soit prêt) peut donc être placé dans le swap. La mémoire virtuelle • Principe de la mémoire virtuelle: la taille de l’ensemble formé par le programme et les données peut dépasser la capacité disponible de mémoire physique. Le SE conserve les parties de programme en cours d’utilisation dans la mémoire principale et le reste sur le disque. La mémoire virtuelle • L’espace d’adressage d’un processus est potentiellement illimité (limité à l’espace mémoire total de la machine). On parle alors d’adressage virtuel. • Seule une partie de la mémoire virtuelle est physiquement présente en RAM à un instant donné. Ceci permet de gérer un espace virtuel beaucoup plus grand que l'espace physique. La mémoire virtuelle • La Mémoire Virtuelle est une mémoire idéale; elle a pour but principal de pouvoir exécuter des processus sans qu'ils soient logés en mémoire en leur totalité. • Séparation entre la mémoire logique de l’utilisateur et la mémoire physique. • Seulement une partie d’un programme a besoin d’être dans la mémoire pour l’exécution. • Rend plus facile la tâche de programmation: le programmeur n’a pas besoin de se préoccuper de la quantité de mémoire physique disponible. La mémoire virtuelle La technique de pagination • La mémoire physique est découpée en blocs de taille fixe appelés cadres de pages. • La mémoire virtuelle (logique) est également subdivisée en blocs de même taille appelés pages. Taille pages = Taille cadres La technique de pagination • Pour exécuter un programme de n pages, il faut trouver n cadres libres et charger le programme. • Il faut savoir quels cadres sont alloués, les quels sont disponibles, etc. • Cette information est disponible dans la table de cadres (Frame table) • Table de pages: traduit l’adresse logique en adresse physique. La technique de pagination La technique de pagination • La MMU (Memory Management Unit ou unité de gestion de la mémoire) traduit les adresses virtuelles en adresses physiques. • La MMU mémorise : – les cadres physiques alloués à des processus (sous forme d'une table de bits de présence-table de cadres) – Les cadres mémoire alloués à chaque page d'un processus (sous forme d'une table de Pages ) • On dit qu'une page est mappée ou chargée si elle est physiquement présente en mémoire. La technique de pagination • Dans l'exemple précédent, les pages ont une taille de 4 Ko. L'adresse virtuelle 12292 correspond à un déplacement de 4 octets dans la page virtuelle 3 (car 12292 = 12288 + 4 et 12288 = 12*1024). La page virtuelle 3 correspond à la page physique 2. L'adresse physique correspond donc à un déplacement de 4 octets dans la page physique 2, soit : (8*1024) + 4 = 8196. La technique de pagination • Par contre, la page virtuelle 2 n'est pas mappée. Une adresse virtuelle comprise entre 8192 et 12287 donnera lieu à un défaut de page. Il y a défaut de page quand il y a un accès à une adresse virtuelle correspondant à une page non mappée. La technique de pagination • En cas de défaut de page, une interruption se produit et le processeur est rendu au SE. Le système doit alors effectuer les opérations suivantes : – Déterminer la page à décharger sur le disque (page victime) pour libérer un cadre – Lire sur le disque la page à charger – Modifier la table de bits et la table de pages La technique de pagination • Inconvénients: – Taille arbitraire – Fragmentation interne – Plein de données inutiles (Pas forcément tout ce dont on a besoin) • Idée => Découper en tenant compte de la structure du processus ! (code + données) La technique de pagination • Inconvénients: – Taille arbitraire – Fragmentation interne – Plein de données inutiles (Pas forcément tout ce dont on a besoin) • Idée => Découper en tenant compte de la structure du processus ! (code + données) La segmentation • l’espace d’adressage d’un processus est divisé en segments, générés à la compilation. Chaque segment est repéré par son numéro S et sa longueur variable L. • Un segment est un ensemble d'adresses virtuelles contiguës. La segmentation • Adresse logique=Numéro de segment+ décalage • Une adresse est donnée par un couple (S, d), où S est le n° du segment et d le déplacement dans le segment, d [0, L [. • Résolution Memory Management Unit – Transformer segment + décalage en adresse physique – Vérifier que le décalage ne sort pas du segment La segmentation • Principe de résolution d’adresse – Géré au niveau de la MMU – On utilise une table des segments – Numéro de segment (selecteur) → adresse physique de base – Base + décalage → adresse physique ANNEXE La fragmentation • Fragmentation = apparition de zone inutilisées dans la mémoire. • Types: – Fragmentation externe : il existe un espace mémoire total suffisant pour satisfaire une requête, mais il n’est pas contigu. – Fragmentation interne : la mémoire allouée peut être légèrement plus grande que le mémoire requise. La fragmentation • Compactage: Adresse virtuelle et adresse physique • Adresse virtuelle (logique) Adresse générée par la CPU. • Adresse physique Adresse vue par l’unité de mémoire physique. • MMU (Memory Management Unit): Dispositif matériel qui fait la conversion des adresses virtuelles à physiques. Adresse virtuelle et adresse physique • Le programme utilisateur n’aperçoit jamais les adresses physiques; il traite les adresses logiques. uploads/Industriel/ chapitre-5-ppt.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager