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.

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 15/05/2004 gemaakt, de laatste keer de 27/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/systeme-exploitation-memoire-segmentation.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.