télécharger 30.7 Kb.
|
Gestion de la mémoire centrale Version 2015 Chapitre 4 : Gestion de la mémoire centrale
A la fin de ce chapitre, les étudiants seront capables de connaître les techniques de gestion de la mémoire centrale avec pagination et avec segmentation.
Pour pouvoir appliquer le mécanisme de la multiprogrammation, le système d’exploitation charge plusieurs processus en mémoire centrale (MC). On peut pour cela affecter à chaque processus un ensemble d'adresses contiguës. Quand le nombre de tâches devient élevé, pour satisfaire au principe d'équitabilité et pour minimiser le temps de réponse des processus, il faut pouvoir simuler la présence simultanée en MC de tous les processus. D'où la technique de "va et vient" ou recouvrement (swapping), qui consiste à stocker temporairement sur disque l'image d'un processus, afin de libérer de la place en MC pour d'autres processus. D'autre part, la taille d'un processus doit pouvoir dépasser la taille de la mémoire disponible, même si l'on enlève tous les autres processus. L'utilisation de pages (mécanisme de pagination) ou de segments (mécanisme de segmentation) permet au système de conserver en MC les parties utilisées des processus et de stocker, si nécessaire, le reste sur disque. Le rôle du gestionnaire de la mémoire est de connaître les parties libres et occupées, d'allouer de la mémoire aux processus qui en ont besoin, de récupérer de la mémoire à la fin de l'exécution d'un processus et de traiter le recouvrement entre le disque et la mémoire centrale, lorsqu'elle ne peut pas contenir tous les processus actifs.
Dès que le nombre de processus devient supérieur au nombre de partitions, il faut pouvoir simuler la présence en MC de tous les processus pour pouvoir satisfaire au principe d'équité et minimiser le temps de réponse des processus. La technique du recouvrement (swapping) permet de stocker temporairement sur disque des images de processus afin de libérer de la MC pour d'autres processus. On pourrait utiliser des partitions fixes, mais on utilise en pratique des partitions de taille variable, car le nombre, la taille et la position des processus peuvent varier dynamiquement au cours du temps. On n'est plus limité par des partitions trop grandes ou trop petites comme avec les partitions fixes. Cette amélioration de l'usage de la MC nécessite un mécanisme plus complexe d'allocation et de libération.
Le compactage de la mémoire permet de regrouper les espaces inutilisés. Très coûteuse en temps UC, cette opération est effectuée le moins souvent possible. S'il y a une requête d'allocation dynamique de mémoire pour un processus, on lui alloue de la place dans le tas (heap) si le SE le permet, ou bien de la mémoire supplémentaire contiguë à la partition du processus (agrandissement de celle-ci). Quand il n'y a plus de place, on déplace un ou plusieurs processus :
La taille d'un processus doit pouvoir dépasser la taille de la mémoire physique disponible, même si l'on enlève tous les autres processus. En 1961, J. FOTHERINGHAM proposa le principe de la mémoire virtuelle : le SE conserve en mémoire centrale les parties utilisées des processus et stocke, si nécessaire, le reste sur disque. Mémoire virtuelle et multiprogrammation se complètent bien : un processus en attente d'une ressource n'est plus conservé en MC, si cela s'avère nécessaire. La mémoire virtuelle fait appel à deux mécanismes : segmentation ou pagination. La mémoire est divisée en segments ou pages. Sans recours à la mémoire virtuelle, un processus est entièrement chargé à des adresses contiguës ; avec le recours à la mémoire virtuelle, un processus peut être chargé dans des pages ou des segments non contigus.
La pagination est une autre technique permettant une allocation non contiguë de la mémoire, cela augmente l’efficacité de la mémoire et résoudre le problème de partitionnement externe déjà rencontré. La pagination consiste à diviser la mémoire en unités de taille fixe, chaque processus occupe un nombre quelconque d’unités dispersées en mémoire. La technique de pagination se marie bien avec la mémoire virtuelle, presque tous les systèmes de nos jours gèrent une mémoire virtuelle paginée. L'espace d'adressage d'un processus est divisé en petites unités de taille fixe appelées pages. La MC est elle aussi découpée en unités physiques de même taille appelées cadres. Les échanges entre MC et disques ne portent que sur des pages entières. De ce fait, l'espace d'adressage d'un processus est potentiellement illimité (limité à l'espace mémoire total de la machine). On parle alors d'adressage virtuel. Pour un processus, le système ne chargera que les pages utilisées. Mais la demande de pages à charger peut être plus élevée que le nombre de cadres disponibles. Une gestion de l'allocation des cadres libres est nécessaire. Dans un SE sans mémoire virtuelle, la machine calcule les adresses physiques en ajoutant le contenu d'un registre de base aux adresses relatives contenues dans les instructions du processus. Dans un SE à pagination, un sous-ensemble inséré entre l'UC et la MC, la MMU (Memory Management Unit ou unité de gestion de la mémoire) traduit les adresses virtuelles en adresses physiques. La MMU mémorise :
On dira qu'une page est mappée ou chargée si elle est physiquement présente en mémoire. ![]() Dans l'exemple précédent, les pages ont une taille de 4 Ko. L'adresse virtuelle 12292 correspond à un déplacement de 4 octets dans la page virtuelle 3 (car 12292 = 12288 + 4 et 12288 = 12*1024). La page virtuelle 3 correspond à la page physique 2. L'adresse physique correspond donc à un déplacement de 4 octets dans la page physique 2, soit : (8*1024) + 4 = 8196 . Par contre, la page virtuelle 2 n'est pas mappée. Une adresse virtuelle comprise entre 8192 et 12287 donnera lieu à un défaut de page. Il y a défaut de page quand il y a un accès à une adresse virtuelle correspondant à une page non mappée. En cas de défaut de page, un déroutement se produit (trap) et le processeur est rendu au SE. Le système doit alors effectuer les opérations suivantes :
Dans cette solution, l'espace d'adressage d'un processus est divisé en segments, générés à la compilation. Chaque segment est repéré par son numéro S et sa longueur variable L. Un segment est un ensemble d'adresses virtuelles contiguës. Contrairement à la pagination, la segmentation est "connue" du processus : une adresse n'est plus donnée de façon absolue par rapport au début de l'adressage virtuel; une adresse est donnée par un couple (S , d), où S est le n° du segment et d le déplacement dans le segment, d ∈ [0 , L [ . Pour calculer l'adresse physique, on utilise une table des segments : ![]()
L'adresse physique correspondant à l'adresse virtuelle (S , d) sera donc B + d, si d <= L La segmentation simplifie la gestion des objets communs (rangés chacun dans un segment), notamment si leur taille évolue dynamiquement. Institut Supérieur des Etudes Technologiques de Tozeur Département Technologies de l’informatique Systèmes d’exploitation 2 TD N° 4 : Gestion de la mémoire Exercice 1 : Pagination Dans ce problème, la taille d’un cadre ainsi que la taille d’une page sont de même taille égale à2000 octets et la table de pages de l’unité de gestion de la mémoire est la suivante :
Parmi les adresses virtuelles suivantes, laquelle génère un défaut de page ? Pour celles qui ne génèrent pas de défaut de page, quelle est leur adresse physique après translation ?
Exercice 2 : Segmentation On considère la table de segments suivante :
Représenter la mémoire. Calculer les adresses physiques correspondant à : (4,277) ; (2,13) ;(0,90) ;(1,218) ;(3,66) ;(2,100) [] |
![]() | ![]() | ||
![]() | «techniques de gestion», les «dispositifs de gestion» et les «innovations organisationnelles» | ![]() | |
![]() | ![]() | «Diplôme Universitaire gestion et management des équipements sportifs» avec l’ufrstaps de Clermont Ferrand | |
![]() | ![]() | «etige» École Technique de l’Informatique et de Gestion des Entreprises, au Maroc, avec mention «Très bien», De septembre 1997 à... | |
![]() | ![]() |