0% ont trouvé ce document utile (0 vote)
44 vues35 pages

Mémoire Virtuelle : Segmentation et Pagination

Le document traite de la mémoire virtuelle, qui permet d'exécuter des processus dépassant la mémoire physique grâce à l'allocation non-contiguë via la segmentation et la pagination. La segmentation divise l'espace d'adressage en segments logiques, tandis que la pagination répartit le processus en pages de taille égale, éliminant ainsi la fragmentation externe. La gestion de la mémoire virtuelle inclut des algorithmes de remplacement de pages pour optimiser l'utilisation de la mémoire.

Transféré par

salmachafia214
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues35 pages

Mémoire Virtuelle : Segmentation et Pagination

Le document traite de la mémoire virtuelle, qui permet d'exécuter des processus dépassant la mémoire physique grâce à l'allocation non-contiguë via la segmentation et la pagination. La segmentation divise l'espace d'adressage en segments logiques, tandis que la pagination répartit le processus en pages de taille égale, éliminant ainsi la fragmentation externe. La gestion de la mémoire virtuelle inclut des algorithmes de remplacement de pages pour optimiser l'utilisation de la mémoire.

Transféré par

salmachafia214
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mémoire Virtuelle

Plan
 Introduction
 Allocation non-contigüe
 Segmentation

 Pagination

 Gestion de la mémoire virtuelle


 Algorithmes de remplacement
Introduction
 La mémoire virtuelle est une fonctionnalité
permettant d’exécuter un processus dont la taille de
son espace d’adressage excède celle de la mémoire
physique (réelle).
 L’espace de mémoire virtuelle est donc indépendant
de l’espace de mémoire physique
 Avec la mémoire virtuelle, les programmes ne sont
plus contraints par les limites de mémoire
physique.
Introduction
La mémoire virtuelle est rendu possible grâce à
deux concepts fondamentaux :
 Segmentation
 Pagination
 Ces deux concepts ont vu le jour pour remédier
principalement au problème de la fragmentation
 Ils permettent une allocation de mémoire non-contiguë
Introduction : Allocation non-
contiguë
 L’allocation non-contiguë consiste à stocker
l’espace d’adressage d’un processus d’une façon
dispersée dans la mémoire physique
 Diviser un programme en morceaux plus petits
 Allouer à chaque morceau un espace physique
séparé
 Utilisation
efficace des petits trous
 Diminution importante de la fragmentation externe
Plan
 Introduction
 Allocation non-contigüe
 Segmentation

 Pagination

 Gestion de la mémoire virtuelle


 Algorithmes de remplacement
Segmentation
 Consiste à diviser d’une façon logique (des modules)
l’espace d’dressage d’un processus en plusieurs
segments.
 L'espace d’adressage logique correspond alors à un
ensemble de segments de tailles variables et
indépendants.
 Les segments peuvent croître ou diminuer
dynamiquement et indépendamment des autres
segments.
 Au moins l’espace d’adressage logique est divisé en
trois segments.
Segmentation
Segmentation
 Chaque segment a un numéro et une longueur.
 Chaque adresse relative (virtuelle) est définie par le
numéro du segment, auquel appartient l’information, et
son décalage par rapport au segment.
 Les segments d’un processus sont référencier dans une
table contenant les champs suivants :
 Numéro du segment
 Registre base
 Registre limite ou longueur
 Les informations stockées dans la table des segment servent
aussi un outil de protection des frames accordés à ces
segment.
Segmentation
 L’adresse virtuelle est
représenté par un couple
composé du N°segment,
déplacement est traduite
en adresse physique
par le biais de la table
de segments associé au
processus.
 Un test est effectué pour
vérifier que le décalage
est bien dans l’intervalle
du segment.
Segmentation
 La segmentation a permis l’idée que pas forcément
l’intégralité du programme soit présente dans la
mémoire principale au moment d’exécution.
 Mais les segments d’un processus sont de tailles
variables, ce qui pose encore le problème de la
fragmentation externe
 Solution : La pagination
 des unités d’allocation mémoire de tailles égales
Plan
 Introduction
 Allocation non-contigüe
 Segmentation

 Pagination

 Gestion de la mémoire virtuelle


 Algorithmes de remplacement
Pagination
 La pagination consiste à répartir le processus en
sous parties de taille égales, qu’on appelle pages.
 La mémoire physique est divisée en blocs de même
taille, qu’on appelle cadres ou frames.
 La taille des cadres est généralement une puissance
de 2 (entre 512 et 8192 octets).
 La taille d’une page de la mémoire virtuelle est
égale à la taille d’un cadre de la mémoire physique.
Pagination
Les pages d’un processus peuvent donc être assignées
aux cadres disponibles n’importe où en mémoire
principale.
 Un processus peut être éparpillé dans la mémoire
physique.
 La fragmentation externe est éliminée.

 Seule la dernière page d’un processus peut souffrir


de la fragmentation interne.
Pagination
La pagination impose que le système :
 Ait en permanence des informations sur les frames

libres et occupés de la mémoire physique.


 Trouve n frames libres si un programme en a
besoin.
 Puisse gérer les correspondance entre adresses

physiques et logiques.
Pagination : exemple
 Supposons que le
processus B se termine ou
est suspendu.
 Nous pouvons maintenant
transférer en mémoire un
processus D, qui demande 5
cadres, bien qu’il n’y ait pas 5
cadres contigus disponibles.
Pagination : Adresse virtuelle
 L’adresse virtuelle, dans la pagination, est composé
du numéro de page, auquel appartient
l’information, et d’un déplacement relatif au début
de la page.
 L’adresse virtuelle est codée sur 16 bits.
 Les 4 bits de poids fort indiquent le numéro de page.
 Les autres bits donnent le décalage par rapport au
début de la page (déplacement dans la page).
Pagination : Adresse virtuelle
 A chaque processus est associée une Table de pages
mémorisant principalement la correspondance entre le n°
de la page (virtuelle) et le n° du frame contenant cette
page.
 Chaque entrée de la Table de pages est composée de
plusieurs champs :
 Bit de présence.
 Bit de référence (R).
 Bits de protection.
 Bit de modification (M).
 Le numéro de cadre.
 Le nombre d’entrées dans cette table est égal au nombre de
pages virtuelles composant l’espace d’adressage du
processus.
Pagination : Adresse physique
Le MMU examine l’entrée dans la table de pages qui
correspond au numéro de page.
 Il détermine l’adresse physique :

 en recopiant dans les 3 bits de poids le plus fort le


numéro de cadre correspondant au numéro de page,
 et dans les 12 bits de poids le plus faible les bits du
décalage de l’adresse virtuelle.
 Le deux parties constituant l’adresses physique
Pagination : Conversion d’adresses
Pagination : conversion d’adresses

 Dans la table de pages, le bit de validité permet au


système de vérifier la présence d’une page en
mémoire physique.
1 : page est en mémoire, 0 : page n’est pas en mémoire
 Initialement tous les bits sont mis à 0.

 Au moment de la conversion des adresses, si le bit


est à 0 ; défaut de page (page fault).
 Le processeur est donné à un autre processus pendant
la gestion de la faute.
Plan
 Introduction
 Allocation non-contigüe
 Segmentation

 Pagination

 Gestion de la mémoire virtuelle


 Algorithmes de remplacement
Mémoire virtuelle
La séparation de la mémoire logique et la mémoire physique
implique :
 Seuls de petites parties des programmes ont besoin d'être en
mémoire pour l'exécution.
 L’exécution peut continuer à condition que la prochaine
instruction (ou donnée) soit dans une page se trouvant en
mémoire principale.
 Les pages du processus peuvent être déplacées à différentes
régions de la mémoire.
 Une image de tout l’espace d’adressage du processus est
gardée en mémoire secondaire.
 Les pages manquantes pourront être prises au besoin par le
swapping.
Mémoire virtuelle
Mémoire virtuelle
Le système en plus d’allocation, il doit gérer le
remplacement des pages d’une façon optimale :
 Le remplacement de pages :
 Trouver une page à sortir de la mémoire : page victime.
 Plusieurs cadres de mémoire ne peuvent pas être `victimes`:
[Link]. cadres contenant le noyau du SE
 La page victime doit être réécrite en mémoire secondaire si elle a
été modifiée, sinon, sa copie sur disque est encore fidèle.
Plan
 Introduction
 Allocation non-contigüe
 Segmentation

 Pagination

 Gestion de la mémoire virtuelle


 Algorithmes de remplacement
Algorithmes de remplacement
de pages
 Objectif : assurer l’exécution avec le plus petit nombre
de remplacement possible.
 Choisir la victime de façon à minimiser le taux de défaut de
pages.
 Plusieurs méthodes pour choisir qui sort de la mémoire
:
 First-in-First-Out
 Not Recently Used
 Least Recently Used
 Deuxième chance : horloge (clock)
 Algorithmes basés sur compteurs
…
FIFO : First-in-First-Out
 Quand une page doit être remplacée, on choisit la
plus vieille.
 Pour
chaque page on connaît son heure d'arrivée en
mémoire.
 Problème :
 Les premières pages amenées en mémoire sont souvent
utiles pendant toute l’exécution d’un processus
 variables globales, programme principal, etc.
NRU : Not Recently Used
 Consiste à remplacer la page qui n'a pas été utilisée
depuis longtemps;
 Il utilise les bits R et M (table de page) associés à
chaque page pour déterminer les pages non récemment
utilisées.
 Le bit R est positionné à 1 chaque fois qu’une page est
référencée (utilisée). Il est remis à 0 à chaque
interruption d’horloge.
 Le bit M est positionné à 1 lorsque la page est modifiée
 elle n’est plus identique à sa copie sur disque
NRU : Not Recently Used
 Lorsqu’un défaut de page se produit, l’algorithme
NRU sélectionne la page à retirer selon les priorités
suivantes :
1. Page non référencée et non modifiée (R=0, M=0).
2. Page non référencée et modifiée (R=0, M=1).
3. Page référencée et non modifiée (R=1, M=0).
4. Page référencée et modifiée (R=1, M=1).
 Dans tous les cas si la page victime est modifiée (M=1)
alors on doit la sauvegarder sur le disque avant de
l’expulsé.
LRU : Least Recently Used
 Consiste à remplacer la page qui n'a pas été utilisée
depuis le plus longtemps
 L’algorithme LRU mémorise dans une liste chaînée
toutes les pages en mémoire.
 La page la plus utilisée est en tête de liste et la
moins utilisée est en queue.
 Lorsqu’un défaut de page se produit, la page la
moins utilisée est retirée.
Algorithme de l’horloge
Dans cet algorithme, les pages en mémoire sont
mémorisées dans une liste circulaire en forme
d’horloge.
Algorithme de l’horloge
 Appelé aussi algorithme de la seconde chance :
 Les cadres qui viennent d’être utilisés (R=1) ne sont pas
remplacées, on leur donne une deuxième chance.
 Lorsqu’un défaut de page se produit, la page pointée
par l’indicateur est examinée.
 Si le bit R de la page pointée par l’indicateur est à 0, la page
est retirée, la nouvelle page est insérée à sa place et
l’indicateur avance d’une position.
 Le bit R de la page chargée est mis à 1.
 Sinon, il est remis à 0 et l’indicateur avance d’une position.
 Cette opération est répétée jusqu’à ce qu’une page ayant R égal à
0 soit trouvée.
Algorithmes basés sur compteurs
Garder un compteur, propre à chaque cadre,
incrémenté à chaque utilisation de la page y est
chargée
 LFU: Least Frequently Used

 remplacer la pages avec le plus petit compteur


 MFU: Most Frequently Used:
 remplacer
les pages bien usées pour donner une chance
aux nouvelles

Vous aimerez peut-être aussi