Segmentation de la mémoire virtuelle

Comme les techniques de gestion de la mémoire virtuelle par pagination engendrent une fragmentation interne, un moyen de résoudre ce problème est de ne plus travailler avec des blocs de tailles fixes (pagination), mais bien d'adapter la taille du bloc selon la taille du processus qui doit entrer en mémoire (segmentation).

En pagination, lorsqu'un processus libère un espace mémoire, comme toutes les pages ont une taille identique, un autre process peut prendre la place ainsi libérée.

En segmentation, comme la taille du segment est fonction de la taille du processus qui s'est présenté en entrée, lorsque le processus libère la mémoire, il faut que le processus suivant ait une taille similaire.

Adressage et segmentation

Dans un système de pure segmentation, le principe est presque similaire à celui de l'adressage en mémoire paginée.

L'adresse virtuelle est composée d'un numéro de segment, et du déplacement à effectuer.

La différence par rapport à l'adressage en mémoire paginée est que la valeur du déplacement n'est plus ici concaténée à celle trouvée dans la table de pages, mais réellement additionnée à la valeur trouvée dans la table de segments.

Structure d'une entrée dans la table des segments

r | a | l | R | W | E | A | s' |

r : Bit qui détermine l'endroit où se trouve le segment (Segment residence bit).

  • r = 0 : le segment ne se trouve pas en Mp.
  • r = 1 : le segment se trouve en Mp.

a : Adresse du segment en Ms (si r = 0).

l : Longueur du segment, pour éviter que la valeur de déplacement dans la conversion d'adresse ne pointe hors des bordures du segment.

Bits de protection :

  • R : autorise l'accès lecture (Read). Le processus peut lire ou copier le segment s'il le désire.
  • W : autorise l'accès écriture (Write). Le processus peut modifier chaque partie du segment, ajouter des informations, ou détruire toutes les informations contenues dans le segment.
  • E : autorise l'accès exécution (Execute). Dans le cas où le segment contient des données, il ne peut être exécuté.
  • A : autorise l'ajout d'information (Append). Le processus peut ajouter des informations, mais ne peut pas modifier les informations existantes.

s' : Adresse de début du segment (Base address segment) si r = 1.

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 15/05/2004, last modified the 27/10/2018
Source of the printed document:https://www.gaudry.be/en/systeme-exploitation-memoire-segmentation.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.