Présentation

Article

1 - MÉMOIRES D'UN ORDINATEUR

2 - STRUCTURATION DE L'ESPACE VIRTUEL

3 - MÉMOIRE VIRTUELLE PAGINÉE

4 - MÉMOIRE VIRTUELLE AVEC SEGMENTATION ET PAGINATION

5 - MÉMOIRE VIRTUELLE ET SYSTÈME D'EXPLOITATION

6 - CONCLUSION

Article de référence | Réf : H1003 v1

Structuration de l'espace virtuel
Hiérarchie mémoire : mémoire virtuelle

Auteur(s) : Daniel ETIEMBLE, François ANCEAU

Relu et validé le 08 mars 2022

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉSUMÉ

Cet article décrit les principes et les implémentations de la mémoire virtuelle. Cette dernière offre à l'utilisateur un espace mémoire le plus grand possible, et ce sans devoir se préoccuper de la taille et de la nature des mémoires physiques réellement disponibles. L'exécution de ses programmes est protégée contre l'interaction avec d'autres programmes. L'espace mémoire virtuel est soit structuré en segments de différentes manières, soit à plat. Dans les deux cas, l'implémentation de la mémoire virtuelle est réalisée par le découpage de l'espace virtuel en pages et des mécanismes de traduction d'adresses virtuelles en adresses physiques.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

ABSTRACT

Memory hierarchy: virtual memory

This article describes the principles and implementations of virtual memories. The virtual memory provides the user with a huge memory space without having to worry about the size and nature of the physical memories actually implemented. Its programs are protected against interaction with other programs. The virtual memory can be decomposed into segments or ?flat?. In both cases, the virtual space is decomposed into fixed size pages and mechanisms are used to translate virtual addresses into physical addresses.

Auteur(s)

INTRODUCTION

Cet article décrit les principes et les implémentations de la mémoire virtuelle, qui est le niveau de la hiérarchie mémoire compris entre la mémoire principale et les mémoires secondaires (disques magnétiques).

La mémoire virtuelle joue un double rôle. D'une part, elle fournit à l'utilisateur un espace mémoire quasi illimité, sans avoir à se préoccuper de la taille et de la nature (DRAM ou disques) des mémoires physiques réellement implémentées, tout en étant protégé contre les interactions volontaires ou involontaires d'autres programmes, que ce soient les siens ou ceux d'autres utilisateurs. D'autre part, elle réalise, par matériel et par logiciel sous contrôle du système d'exploitation, les transferts nécessaires entre la mémoire principale et les mémoires secondaires lorsque le code ou les données nécessaires ne sont pas dans la mémoire principale.

L'espace mémoire virtuel peut être structuré ou non. La structuration se réalise de différentes manières : segmentation en assembleur, segmentation comme extension d'adresse ou segmentation des machines-systèmes. Sans structuration, l'espace est dit « à plat ». Depuis les processeurs 32 bits, l'espace virtuel, segmenté ou non, est découpé en pages de taille fixe. Les systèmes à plat paginés sont d'abord présentés, avec les techniques de traduction d'adresses (tables des pages directes, tables des pages inverses utilisant le hachage, TLB pour accélérer les traductions) et de protection au niveau des pages. Les différents algorithmes de remplacement sont expliqués. Ensuite, les systèmes avec segmentation et pagination, caractéristiques des machines-systèmes sont présentés d'abord dans le cas général, puis illustrés dans le cas des architectures IA-32, qui utilisent une approche très pure de la segmentation paginée.

La manière dont les systèmes d'exploitation les plus connus implémentent la mémoire virtuelle est ensuite abordée. Multics utilisait la segmentation paginée. VAX-VMS au contraire utilisait une mémoire virtuelle à plat pour laquelle la notion de segments correspondait à des super-pages utilisées comme extension de l'espace d'adressage. Les systèmes Windows sont significatifs de l'évolution des mémoires virtuelles. De la version initiale Windows 1 à Windows Millenium, les systèmes successifs ont utilisé la segmentation paginée implantée dans les différents processeurs IA-32. Cependant, la version Windows NT développée en parallèle à partir de 1993 utilisait un système à plat, prévu pour être portable avec micronoyaux et HAL (couche d'adaptation au matériel), notamment sur les processeurs RISC qui n'utilisent pas la segmentation. Millenium a été le dernier représentant de la gamme utilisant la segmentation. Les versions 64 bits depuis Windows XP utilisent le mode à plat. Linux utilise le mode à plat.

L'histoire des mémoires virtuelles est celle de la naissance, de la vie et de la mort de la segmentation. Elle a disparu dans les versions 64 bits, remplacée par l'adressage à plat.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

KEYWORDS

virtual memory   |   physical memory   |   virtual address   |   logical address   |   segmentation   |   pagination   |   address translation   |   page table   |   TLB   |   replacement algorithms   |   Computer   |   operating systems

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1003


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

2. Structuration de l'espace virtuel

Comme indiqué précédemment, l'espace d'adressage virtuel n'a cessé de croître. La grande question est de structurer ou non cet espace virtuel. Nous qualifierons de « plat » un espace virtuel non structuré et de « segmenté » un espace virtuel avec une structuration obéissant à un certain nombre de règles. Le terme segment étant utilisé dans des contextes différents, nous précisons ces différentes utilisations.

2.1 Espace virtuel plat

L'espace virtuel plat se caractérise par l'utilisation d'une adresse dont la longueur ne fait que croître dans le temps. Pour permettre un minimum de protection vis-à-vis des autres logiciels, amis ou ennemis, l'espace virtuel est divisé en au moins deux zones qui contiennent respectivement les logiciels sûrs (système d'exploitation et bibliothèques) et les logiciels utilisateurs, eux-mêmes souvent séparés les uns des autres. Des mécanismes contrôlent le passage entre ces zones.

Les processeurs 64 bits utilisent tous un espace virtuel plat.

Avec l'extension de la virtualisation, cette approche à plat évolue vers la création dynamique de machines virtuelles ayant chacune un espace virtuel plat à deux zones.

HAUT DE PAGE

2.2 Segmentation en assembleur

Les techniques de gestion de l'espace mémoire amènent à rendre les programmes et les données translatables, c'est-à-dire permettant l'exécution du programme à partir de n'importe quel emplacement. Cette notion s'étend même jusqu'au déplacement d'un programme ou de données pendant son exécution. Pour arriver à cet objectif, le programme ou la zone de données sont adressés relativement à leur adresse de début, qui est rangée dans un registre au moment de l'exécution. Ces zones sont appelées des segments et les registres spécialisés qui contiennent l'adresse de début sont appelés les registres segments. Pour simplifier le système, un nombre réduit de registres segments est proposé par le processeur. Ceux-ci sont choisis, soit de manière implicite comme pour l'adressage des instructions, soit de manière explicite lors de l'adressage des données.

Un exemple typique est fourni par les registres segments du processeur Intel 8086, qui possédait 4 registres segments de 16 bits, appelés...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Structuration de l'espace virtuel
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - FOTHERINGHAM (J.) -   Dynamic storage allocation in the Atlas including an automatic use of a backing store.  -  Comm. of theM, vol. 4, p. 435-436, oct. 1961.

  • (2) - CARR (R.W.), HENNESSY (J.L.) -   WSClock – A simple and effective algorithm for virtual memory management.  -  Proceeding of the 8th ACM Symposium on Operating Systems principles, p. 87-95 (1981).

  • (3) - TANENBAUM (A.S.) -   Modern operating systems.  -  Second edition, Prentice Hall (2001).

  • (4) - BENSOUSSAN (A.), CLINGEN (C.T.), DALEY (R.C.) -   The multics virtual memory : concepts and design.  -  Comm. Of the ACM, vol. 15, p. 308-318, mai 1972.

  • (5) - JACOB (B.), MUDGE (T.) -   Virtual memory in contemporary microprocessors.  -  IEEE Micro, p. 60-75, juill.-août 1998.

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS