Mémoire virtuelle - Définition et Explications

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Schéma de principe de la mémoire virtuelle

En informatique, le mécanisme de mémoire virtuelle a été mis au point dans les années 1960. Il est basé sur l'utilisation d'une mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) de masse (Le terme masse est utilisé pour désigner deux grandeurs attachées à un corps : l'une quantifie l'inertie du corps (la masse inerte) et l'autre la contribution du corps à la force...) (type disque dur (Un disque dur est une mémoire de masse magnétique utilisée principalement dans les ordinateurs, mais également dans des baladeurs numériques, des caméscopes,...) ou anciennement un tambour), dans le but, entre autres, de permettre à des programmes de pouvoir s'exécuter dans un environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec les enjeux écologiques actuels, le terme...) matériel possédant moins de mémoire centrale que nécessaire (ou, vu autrement, de faire tourner plus de programmes que la mémoire centrale ne peut en contenir !)

La mémoire virtuelle (En informatique, le mécanisme de mémoire virtuelle a été mis au point dans les années 1960. Il est basé sur l'utilisation d'une mémoire de masse (type disque dur ou...) permet :

  • d'augmenter le taux de multiprogrammation ;
  • de mettre en place des mécanismes de protection de la mémoire ;
  • de partager la mémoire entre processus.

Historique

L'article de référence de James Kilburn, paru en 1962, décrit le premier ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits électroniques permettant de manipuler des données sous...) doté d'un système de gestion de mémoire virtuelle paginée et utilisant un tambour comme extension de la mémoire centrale à tores de ferrite : l'Atlas.

Aujourd'hui, tous les ordinateurs ont un mécanisme de gestion de la mémoire virtuelle, sauf certains supercalculateurs ou systèmes embarqués temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) réel.

Segmentation

La segmentation offre une vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) de la mémoire plus consistante avec celle de l'utilisateur. En effet, celui-ci ne considère pas (ou rarement !) la mémoire comme une suite de pages mais plutôt par des espaces, ou des régions, dédiés à une utilisation particulière comme par exemple : le code d'un programme, les données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un...), la pile, un ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut être comprise comme un...) de sous-programmes, des modules, un tableau (Tableau peut avoir plusieurs sens suivant le contexte employé :), etc. La segmentation reflète cette organisation (Une organisation est).

Chaque objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une étiquette verbale. Il est...) logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement) est dans...) sera désigné par un segment. Dans un segment l'adressage se fera à l'aide d'un déplacement ( En géométrie, un déplacement est une similitude qui conserve les distances et les angles orientés. En psychanalyse, le déplacement est mécanisme de défense déplaçant la valeur, et finalement le sens En...). Le couple (segment, déplacement) sera traduit en adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités. Pour qu'il n'y ait pas d'ambiguïté, chaque adresse doit correspondre à une unique entité, une...) mémoire par le biais d'une table de segments contenant deux champs, limite et base. La base est l'adresse de début du segment, et limite la dernière adresse du même segment :

Segmentation : l'adresse virtuelle issue du processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui exécute les programmes informatiques. Avec la mémoire...) à la forme (segment, déplacement). Elle est traduite en adresse physique (La physique (du grec φυσις, la nature) est étymologiquement la « science de la nature ». Dans un sens général et ancien, la physique...) par le biais d'une table de segments. Un test est effectué pour vérifier que l'adresse est bien dans l'intervalle du segment.

Problème de fragmentation

Les systèmes paginés rencontrent un problème de fragmentation interne : de la place est perdue à la fin d'une page. Les systèmes segmentés connaissent un problème de fragmentation externe : des espaces entre des segments sont trop petits pour loger de nouveaux fragments, cet espace est donc perdu.

L'espace libre de 12 Kio de la disposition mémoire (1) diminue quand une partie est allouée à un nouveau segment. Néanmoins il n'est pas certain que le plus petit segment résiduel, visible en (2), sera assez grand pour répondre à la prochaine requête (Le mot requête, synonyme de demande, est employé dans les domaines suivants :) du système d'exploitation.

Il est possible de le récupérer en compactant la mémoire, c’est-à-dire en déplaçant les segments — tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) en reflétant ces modifications dans les tables des segments — de sorte qu'il soient contigus. Néanmoins cette opération est coûteuse.

Partage de segments

Il est possible de partager des segments entre processus, comme illustré sur la figure ci-dessous, où deux processus Ed1 et Ed2 partagent le même segment de code (programme) mais ont des segments pour les données disjoints et de tailles différentes.

Deux utilisateurs utilisant le même programme (un éditeur par exemple) se verront partager le même segment de code, mais pas de données.

Protection dans un système segmenté

Cette protection sera assurée par des bits supplémentaires ajoutés dans la table des segments, de la même façon que pour un système paginé.

Exemple de microprocesseurs à architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) mémoire segmentée

L'exemple le plus connu est l'Intel 8086 et ses quatre registres :

  • CS, pour Code Segment : pointe vers le segment contenant le programme courant.
  • DS, pour Data Segment : pointe vers le segment contenant les données du programme en cours d'exécution.
  • ES, pour Extra Segment : pointe vers le segment dont l'utilisation est laissée au programmeur (En informatique, un développeur (ou programmeur) est un informaticien qui réalise du logiciel en créant des algorithmes et en les mettant en...).
  • SS, pour Stack Segment : pointe vers le segment contenant la pile.

Les successeurs du 8086 sont aussi segmentés :

  • le 80286 peut gérer 16 Mio de mémoire physique et 1 Gio de mémoire virtuelle soit 16 384 segments de 64 Kio.
  • le 80386 4 Gio de mémoire physique, 64 Tio de mémoire virtuelle, soit 16 384 segments de 4 Gio.
Page générée en 0.075 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique