Blog créé grâce à Iblogyou. Créer un blog gratuitement en moins de 5 minutes.

les systèmes d'exploitation

historiques windows et linux

la pagination Posté le Lundi 25 Mai 2009 à 08h13

La segmentation consiste à découper l'espace adressable d'un processus afin de résoudre le problème d'exclusion des accès et du partage de certaines zones mémoire.  La pagination résout le problème de la fragmentation de la mémoire centrale et permet de simuler un espace plus grand que celui existant. En général, l'espace total occupé par l'ensemble des processus est supérieur à la mémoire RAM physiquement présente. Le mécanisme de pagination permet de "faire croire" au processeur qu'il y a beaucoup de mémoire physique. Il s'agit d'un dispositif placé sur le bus d'adresse qui transforme les adresses issues du processeur en adresses correspondant à de la mémoire physique. L'espace des adresses utilisables par le processeur est appelé espace virtuel (4 Go sur un 80386, 32 bits pour le bus d'adresse). L'espace des adresses connectées à de la mémoire RAM est appelé espace réel (une centaine de Mo : 28 bits pour représenter une adresse).

La pagination = moyen d'adapter la mémoire virtuelle à la mémoire physique. Le dispositif de pagination (Memory Management Unit) est capable d'associer à toute adresse virtuelle une adresse réelle. Évidemment, à un instant donné seule une étendue équivalente à la mémoire réelle est accessible : Le principe général est d'utiliser un tableau appelé Table des pages contenant les adresses virtuelles (issues de l'UC) et les indices sont les adresses réelles (allant vers la mémoire centrale).

Exemple : L'UC tente un accès à l'octet d'adresse (virtuelle) 8, le mécanisme de pagination le transforme en un accès à l'adresse (réelle) 3 en mémoire centrale. Une solution trop facile à réaliser car : la taille de cette table est trop grande et il faut définir ce qui arrive quand l'UC fait un accès à une case absente du tableau. Pour résoudre le premier point, on groupe les adresses mémoire en pages de plusieurs Ko (4 Ko sur les 80386). Pour le second point, on utilise la mémoire secondaire (disque dur).

Cependant, le remplissage de la page respecte un certain nombre d'étapes.

 

1) pagination à un niveau

Les mémoires virtuelles et réelles sont toutes les deux découpées en pages de quelques Ko. Une adresse est décomposée en deux parties, un numéro de page (n) et un déplacement (d) dans la page : Soit p tel que 2p soit le nombre d'octets de chaque page. La pagination à un niveau transforme une adresse virtuelle (AV) en une adresse réelle (AR). La table (des pages) contient le numéro de chaque page virtuelle associée à la page réelle.  Lorsque l'UC affiche une adresse virtuelle sur le bus, le mécanisme de pagination recherche son poids fort dans la table et le remplace par l'indice de la case trouvée.

 

2) les défauts de page

Seules certaines pages virtuelles sont mentionnées dans la table. Les autres ne sont pas accessibles et provoquent un défaut de page. Plutôt que provoquer une erreur, le mécanisme de pagination permet d'exploiter un espace de stockage en mémoire secondaire (disque dur).  Ce disque est structuré en pages (groupes de secteurs) de même taille que les pages de la mémoire. On associe chaque page virtuelle à une page disque. En cas de défaut de page, le mécanisme de pagination utilise les données situées sur le disque à la place de la mémoire centrale.

 

3) la pagination à la demande

 Il reste un problème à résoudre : l'initialisation de la table des pages et son évolution au cours du temps. Initialement, la table des pages est entièrement vide. Tout accès à la mémoire (toute demande) provoque donc un défaut de page. En cas de défaut de page, le système d'exploitation utilise l'algorithme suivant :

  1. le système recherche une page physique inutilisée dans la table des pages : c'est une case vide (sauter l'étape 2) ou une case choisie par un algorithme particulier (voir plus bas).
  2. le système vide le contenu de la page physique sur le disque dans la page virtuelle associée
  3. le système charge dans cette page physique le contenu de la nouvelle page virtuelle

Les étapes 2 et 3 réalisent l'échange (swapping) de deux pages virtuelles. Il existe plusieurs stratégies de remplacement des pages. Ce sont différentes politiques de choix de la page physique à utiliser : LRU (Last Recent Used) : on préfère libérer la page la moins récemment utilisée. FIFO (First In, First Out) : on choisit la page la plus anciennement chargée. Le but de ces stratégies est de minimiser les défauts de page en conservant en mémoire centrale les pages les plus utilisées.   

Un commentaire. Dernier par germano le 25-05-2009 à 08h15 - Permalien - Partager
Commentaires