0% ont trouvé ce document utile (0 vote)
4 vues65 pages

Module 8

Le module traite de la mémoire virtuelle, qui permet l'exécution de programmes plus grands que la mémoire physique en utilisant la pagination sur demande et des mécanismes de va-et-vient. Il aborde également les algorithmes de remplacement de pages, les problèmes de performance, et la gestion de l'espace d'adressage logique par rapport à l'espace d'adressage physique. Enfin, il explique les principes de localité des références et les critères d'évaluation des algorithmes de remplacement.

Transféré par

dacet43895
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)
4 vues65 pages

Module 8

Le module traite de la mémoire virtuelle, qui permet l'exécution de programmes plus grands que la mémoire physique en utilisant la pagination sur demande et des mécanismes de va-et-vient. Il aborde également les algorithmes de remplacement de pages, les problèmes de performance, et la gestion de l'espace d'adressage logique par rapport à l'espace d'adressage physique. Enfin, il explique les principes de localité des références et les critères d'évaluation des algorithmes de remplacement.

Transféré par

dacet43895
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

Module 8 – La mémoire virtuelle

Chapitre 9 (Silberchatz)

Module 8 1
Mémoire Virtuelle
 Pagination sur demande
 Problèmes de performance
 Remplacement de pages: algorithmes
 Allocation de cadres de mémoire
 Ensemble de travail

Module 8 2
La mémoire virtuelle est une application du
concept de hiérarchie de mémoire
 C’est intéressant de savoir que des
concepts très semblables s’appliquent
aux mécanismes de la mémoire cache
 Cependant dans ce cas les mécanismes sont
surtout de matériel
Mécanismes cache
RAM
Méc. mém. virtuelle (flash)

Module 8 3
La mémoire virtuelle

 À fin qu’un programme soit exécuté, il ne doit pas


nécessairement être tout en mémoire centrale!
 Seulement les parties qui sont en exécution ont
besoin d’être en mémoire centrale
 Les autres parties peuvent être sur mém
secondaire ([Link]. disque), prêtes à être amenées
en mémoire centrale sur demande
 Mécanisme de va-et-vient ou swapping
 Ceci rend possible l’exécution de programmes
beaucoup plus grands que la mémoire physique
 Réalisant une mémoire virtuelle qui est plus grande que
la mémoire physique

Module 8 4
De la pagination et segmentation à la mémoire virtuelle
 Un processus est constitué de morceaux (pages ou segments) ne
nécessitant pas d’occuper une région contiguë de la mémoire
principale
 Références à la mémoire sont traduites en adresses physiques au
moment d’exécution
 Un processus peut être déplacé à différentes régions de la mémoire,
aussi mémoire secondaire!
 Donc: tous les morceaux d’un processus ne nécessitent pas d’être
en mémoire principale durant l’exécution
 L’exécution peut continuer à condition que la prochaine instruction (ou
donnée) est dans un morceau se trouvant en mémoire principale
 La somme des mémoires logiques des procs en exécution
peut donc excéder la mémoire physique disponible
 Le concept de base de la mémoire virtuelle
 Une image de tout l’espace d’adressage du processus est gardée en
mémoire secondaire (normal. disque) d’où les pages manquantes
pourront être prises au besoin
Module 8  Mécanisme de va-et-vient ou swapping 5
Mémoire virtuelle:
résultat d’un mécanisme qui combine
la mémoire principale et les mémoires secondaires

Tableau de pages

Module 8 6
Localité et mémoire virtuelle

 Principe de localité des références: les


références à la mémoire dans un processus
tendent à se regrouper
 Donc: seule quelques pièces d’un processus
seront utilisées durant une petite période de
temps (pièces: pages ou segments)
 Il y a une bonne chance de “deviner” quelles
seront les pièces demandées dans un avenir
rapproché

Module 8 7
Pages en RAM ou sur disque

Page A en RAM et sur


disque

Page E seulement sur


disque

Module 8 8
Nouveau format du tableau des pages (la même idée peut être
appliquée aux tableaux de segments)

bit présent
Si la page est en mém. princ., Adresse de la Bit 1 si en mém. princ.,
ceci est une adr. de page présent 0 si en mém second.
mém. principale
sinon elle est une adresse de
mémoire secondaire

Au début, bit présent = 0 pour toutes les pages


Module 8 9
Avantages du chargement partiel
 Plus de processus peuvent être maintenus en exécution en
mémoire
 Car seules quelques pièces sont chargées pour chaque processus
 L’usager est content, car il peut exécuter plusieurs processus et
faire référence à des gros données sans avoir peur de remplir la
mémoire centrale
 Avec plus de processus en mémoire principale, il est plus probable
d’avoir un processus dans l’état prêt, meilleure utilisation d’UCT
 Plusieurs pages ou segments rarement utilisés n’auront peut être
pas besoin d`être chargés du tout
 Il est maintenant possible d’exécuter un ensemble de processus
lorsque leur taille excède celle de la mémoire principale
 Il est possible d’utiliser plus de bits pour l’adresse logique que le
nombre de bits requis pour adresser la mémoire principale
 Espace d ’adressage logique > > esp. d ’adressage physique

Module 8 10
Mémoire Virtuelle: Pourrait Être Énorme!
 Ex: 16 bits sont nécessaires pour adresser une mémoire
physique de 64KB
 En utilisant des pages de 1KB, 10 bits sont requis pour le
décalage
 Pour le numéro de page de l’adresse logique nous pouvons
utiliser un nombre de bits qui excède 6, car toutes les pages ne
doivent pas être en mémoire simultanément
 Donc la limite de la mémoire virtuelle est le nombre de bits qui
peuvent être réservés pour l ’adresse
 Dans quelques architectures, ces bits peuvent être inclus dans des
registres
 La mémoire logique est donc appelée mémoire virtuelle
 Est maintenue en mémoire secondaire
 Les pièces sont amenées en mémoire principale seulement quand
nécessaire, sur demande

Module 8 11
Mémoire Virtuelle

 Pour une meilleure performance, la mémoire


virtuelle se trouve souvent dans une région du
disque qui est n’est pas gérée par le système de
fichiers
 Mémoire va-et-vient, swap memory
 La mémoire physique est celle qui est référencée
par une adresse physique
 Se trouve dans le RAM et cache
 La traduction de l’adresse logique en adresse
physique est effectuée en utilisant les
mécanismes étudiés dans le chapitre précédent.

Module 8 12
Mémoire virtuelle: le mécanisme de va-et-vient

Tableau de pages

Module 8 13
Exécution d’un Processus
 Le SE charge la mémoire principale de quelques
pièces (seulement) du programme (incluant le point
de départ)
 Chaque entrée de la table de pages (ou segments)
possède un bit présent qui indique si la page ou
segment se trouve en mémoire principale
 L’ensemble résident (résident set) est la portion du
processus se trouvant en mémoire principale
 Une interruption est générée lorsque l’adresse
logique réfère à une pièce qui n’est pas dans
l’ensemble résident
 défaut de pagination, page fault

Module 8 14
Exécution d’une défaut de page: va-et-vient plus en détail

Module 8 15
Séquence d’événements pour défaut de page
 Trappe au SE: page demandée pas en RAM
 Sauvegarder registres et état du proc dans PCB
 Un autre proc peut maintenant gagner l ’UCT
 SE détermine si la page demandée est légale
 sinon: terminaison du processus
 et trouve la position de la page sur disque
 dans le descripteur de la page
 lire la page de disque dans un cadre de mémoire
libre (supposons qu`il y en a!)
 exécuter les ops disque nécessaires pour lire la page

Module 8 16
Séquence d’événements pour défaut de page (ctn.)
 L ’unité disque a complété le transfert et
interrompt l’UCT
 sauvegarder les registres etc. du proc exécutant
 SE met à jour le contenu du tableau des pages du
proc. qui a causé le défaut de page
 Ce processus devient prêt=ready
 À un certain point, il retournera à exécuter
 la page désirée étant en mémoire, il pourra maintenant
continuer

Module 8 17
Temps moyen d’accès à la mémoire
Supposons que:
• accès en mémoire: 100 nanosecs
• temps de traitement de défaut de pagination: 25 millisecs =
25,000,000 nanosecs
• p: probabilité de ne pas trouver une page en mémoire (défaut)
Temps moyen d’accès mémoire:
(1-p) x 100 + p x 25,000,000 (pas de défaut + défaut)
En utilisant la même formule, nous pouvons déterminer quel est le
nombre de défauts que nous pouvons tolérer, si un certain niveau de
performance est désiré (v. manuel).
[Link]. avec ces params, si le ralentissement à cause de pagination ne
peut pas excéder 10%, 1 seul défaut de pagination peut être toléré
pour chaque 2,500,000 accès de mémoire.

Module 8 18
Quand la RAM est pleine mais nous avons
besoin d`une page pas en RAM

Module 8 19
La page victime...

Module 8 20
Remplacement de pages
 Quoi faire si un processus demande une nouvelle
page et il n’y a pas de cadres libres en RAM?
 Il faudra choisir une page déjà en mémoire
principale, appartenant au même ou à un autre
processus, qu’il est possible d ’enlever de la
mémoire principale
 la victime!
 Un cadre de mémoire sera donc rendu disponible
 Évidemment, plusieurs cadres de mémoire ne
peuvent pas être `victimisés`:
 [Link]. cadres contenant le noyau du SE, tampons
d ’E/S...

Module 8 21
Bit de modification , dirty bit
 La ‘victime’ doit-elle être récrite en
mémoire secondaire?
 Seulement si elle a été changée depuis
qu`elle a été amenée en mémoire principale
 sinon, sa copie sur disque est encore fidèle
 Bit de modif sur chaque descripteur de
page indique si la page a été changée
 Donc pour calculer le coût en temps d’une
référence à la mémoire il faut aussi
considérer la probabilité qu’une page soit
‘sale’ et le temps de récriture dans ce cas

Module 8 22
Algorithmes de remplacement pages
 Choisir la victime de façon à minimiser le
taux de défaut de pages
 pas évident!!!
 Page dont nous n`aurons pas besoin dans
le futur? impossible à savoir!
 Page pas souvent utilisée?
 Page qui a été déjà longtemps en
mémoire??

 etc. nous verrons...

Module 8 23
Critères d’évaluation des algorithmes
 Les algorithmes de choix de pages à
remplacer doivent être conçus de façon à
minimiser le taux de défaut de pages à
long terme
 Mais il ne peuvent pas impliquer des temps
de système excessifs, [Link]. mise à jour de
tableaux en mémoire pour chaque accès
de mémoire
 Ni l`utilisation de matériel dispendieux

Module 8 24
Explication et évaluation des algorithmes
 Nous allons expliquer et évaluer les algorithmes
en utilisant la chaîne de référence pages suivante
(prise du livre de Stallings):
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2

 Attention: les séquences d’utilisation pages ne


sont pas aléatoires...
 Localité de référence
 Ces références proviendront de plusieurs
processus
 L’évaluation sera faite sur la base de cet exemple,
évidemment pas suffisant pour en tirer des
conclusions générales
Module 8 25
Algorithmes pour la politique de remplacement

 L’algorithme optimal (OPT) choisit pour


page à remplacer celle qui sera référencée
le plus tardivement
 produit le + petit nombre de défauts de page
 impossible à réaliser (car il faut connaître le
futur) mais sert de norme de comparaison pour
les autres algorithmes:
 Ordre chronologique d’utilisation (LRU)
 Ordre chronologique de chargement (FIFO)

 Deuxième chance ou Horloge (Clock)

Module 8 26
Algorithmes pour la politique de remplacement
 Ordre chronologique d’utilisation (LRU)
 Remplace la page dont la dernière
référence remonte au temps le plus lointain
(le passé utilisé pour prédire le futur)
 En raison de la localité des références, il
s’agit de la page qui a le moins de chance
d’être référencée
 performance presque aussi bonne que
l’algo. OPT

Stallings

Module 8 27
Comparaison OPT-LRU
 Exemple: Un processus de 5 pages s’ìl n`y
a que 3 pages physiques disponibles.
 Dans cet exemple, OPT occasionne 3+3
défauts, LRU 3+4.

Module 8 Stallings 28
Note sur le comptage des défauts de page

 Lorsque la mémoire principale est vide,


chaque nouvelle page que nous ajoutons
est le résultat d’un défaut de page

 Mais pour mieux comparer les algorithmes,


il est utile de garder séparés ces défauts
initiaux
 car leur nombre est le même pour tous les
algorithmes

Module 8 29
Implémentation problématique de LRU

 Chaque page peut être marquée (dans le


descripteur dans la table de pages) du temps de la
dernière référence:
 besoin de matériel supplémentaire.
 La page LRU est celle avec la + petite valeur de
temps (nécessité d’une recherche à chaque défaut
de page)
 On pourrait penser à utiliser une liste de pages
dans l’ordre d ’utilisation: perte de temps à
maintenir et consulter cette liste (elle change à
chaque référence de mémoire!)
 D’autres algorithmes sont utilisés:
 LRU approximations
Module 8 30
Premier arrivé, premier sorti (FIFO)
 Logique: une page qui a été longtemps en
mémoire a eu sa chance d ’exécuter
 Les cadres forment conceptuellement un tampon
circulaire, débutant à la plus vieille page
 Lorsque la mémoire est pleine, la plus vieille page est
remplacée. Donc: “first-in, first-out”
 Simple à mettre en application
 tampon consulté et mis à jour seulement aux défauts de
pages...
 Mais: Une page fréquemment utilisée est souvent
la plus vielle, elle sera remplacée par FIFO!

Module 8 31
Comparaison de FIFO avec LRU (Stallings)

 Contrairement à FIFO, LRU reconnaît que les


pages 2 and 5 sont utilisées fréquemment
 La performance de FIFO est moins bonne:
 dans ce cas, LRU = 3+4, FIFO = 3+6

Module 8 32
Problème conceptuel avec FIFO
 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.
 Ce qui montre un problème avec notre
façon de comparer les méthodes sur la
base d ’une séquence aléatoire:
 lesréférences aux pages dans un programme
réel ne seront pas vraiment aléatoires

Module 8 33
L’algorithme de l’horloge (deuxième chance)
 Semblable à FIFO, mais les cadres qui viennent d’être
utilisés (bit=1) ne sont pas remplacées (deuxième
chance)
 Les cadres forment conceptuellement un tampon circulaire
 Lorsqu’une page est chargée dans un cadre, un pointeur pointe
sur le prochain cadre du tampon
 Pour chaque cadre du tampon, un bit “utilisé” est mis à 1 (par
le matériel) lorsque:
 une page y est nouvellement chargée
 sa page est utilisée
 Le prochain cadre du tampon à être remplacé sera le premier
rencontré qui aura son bit “utilisé” = 0.
 Durant cette recherche, tout bit “utilisé” = 1 rencontré sera mis à
0

Module 8 34
Algorithme de l’horloge: un exemple (Stallings).

La page 727 est chargée dans le cadre 4.


Module 8
La proch. victime est 5, puis 8. 35
Comparaison: Horloge, FIFO et LRU (Stallings)

 Astérisque indique que le bit utilisé est 1


 L’horloge protège du remplacement les pages
fréquemment utilisées en mettant à 1 le bit “utilisé” à
chaque référence
Module 8
 LRU = 3+4, FIFO = 3+6, Horloge = 3+5 36
Matériel additionnel pour l’algo CLOCK
 Chaque bloc de mémoire a 1
un bit ‘touché’ (use)
 Quand le contenu du bloc
0
est utilisé, le bit est mis à 1
par le matériel
0
 Le SE regarde le bit
 S’il est 0, la page peut être
remplacée 0

 S’il est 1, il le met à 0


1

Mémoire
Module 8 37
Comparaison: Horloge, FIFO et LRU
 Les simulations montrent que l’horloge est presque aussi
performant que LRU
 variantes de l`horloge ont été implantées dans des systèmes
réels
 Lorsque les pages candidates au remplacement sont locales
au processus souffrant du défaut de page et que le nombre
de cadres alloué est fixe, les expériences montrent que:
 Si peu (6 à 8) de cadres sont alloués, le nombre de défaut de
pages produit par FIFO est presque double de celui produit
par LRU, et celui de CLOCK est entre les deux
 Ce facteur s’approche de 1 lorsque plusieurs (plus de 12)
cadres sont alloués.
 Cependant le cas réel est de milliers et millions de
pages et cadres, donc la différence n`est pas trop
importante en pratique...
 On peut tranquillement utiliser FIFO
Module 8 38
Algorithmes compteurs
 Garder un compteur pour les références à
chaque page
 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
 Ces algorithmes sont d’implantation
dispendieuse et ne sont pas beaucoup
utilisés

Module 8 39
Utilisation d’une pile (stack)
 Quand une page est utilisée, est mise au sommet
de la pile.
 donc la page la plus récemment utilisée est toujours au
sommet,
 la moins récemment utilisée est toujours au fond

 Bonne implémentation du principe de localité,


cependant…
 La pile doit être implantée par matériel, car nous
ne pouvons pas tolérer l’exécution d’un
programme à chaque fois qu’une page est utilisée
 Donc pas pratique

Module 8 40
Anomalie de Belady
 Pour quelques algorithmes, dans quelques
cas il pourrait avoir plus de défauts avec
plus de mémoire!
 p. ex. FIFO, mais pas LRU, OPT, CLOCK

Module 8 41
Situation considérée normale

Module 8 42
Anomalie de Belady (FIFO)

Module 8
Cas d’intérêt théorique: + de mémoire, + de fautes (v. livre) 43
Tamponnage de pages (Page Buffering)
 Pages choisies pour être remplacées demeurent
temporairement en mémoire principale pour compenser
la faible performance d’algorithmes de remplacement
comme FIFO
 Deux listes de pointeurs sont maintenues: chaque
entrée pointe sur une page désignée pour remplacement
 une liste de cadres libres pour pages n’ayant pas été
modifiées depuis leur chargement (disque inutile)
 une liste de pages modifiées depuis qu’elles furent
chargées (doivent être écrites sur disque)
 Un pointeur est ajouté à la queue d’une des listes
lorsqu’une page est désignée pour remplacement et le
bit présent est mis à 0 dans l’entrée de la table de pages
 mais la page demeure en mémoire principale

Module 8 44
Tamponnage de pages (Page Buffering)
 À chaque défaut de page, ces listes sont
examinées pour savoir si la page désirée se trouve
encore en mémoire principale
 Si oui, le bit présent est remis à 1 (et on enlève l’entrée
de la liste): cette page appartient de nouveau au
processus.
 Si non, la page désirée est chargée à l’endroit pointé
par la tête de la liste de pages libres, (écrasant la page
qui s’y trouvait)
 la tête de la liste de [Link] est désormais la 2ième entrée
 (Le numéro de page physique peut être utilisé pour la
recherche sur les listes, ou bien chaque entrée de liste
peut contenir le pid et le numéro de page virtuelle)
 La liste de pages modifiées sert aussi à écrire en
lots (et non individuellement) ces pages au disque

Module 8 45
Allocation de cadres
 Pour exécuter, un processus a besoin d’un nombre minimal
de cadres de mémoire
 par exemple, quelques instructions pourraient avoir besoin de
plusieurs pages simultanément pour exécuter!
 Il est aussi facile de voir que un proc qui reçoit très peu de
mémoire subira un nombre excessif de défauts de
pagination, donc il sera excessivement ralenti
 Comment s`assurer qu’un proc soit alloué son minimum
 allocation égale: chaque processus a droit a une portion
égale de la mémoire physique
 allocation proportionnelle: chaque processus a droit à une
portion proportionnelle à sa taille
 le critère devrait plutôt être le besoin de pages: v. working set

Module 8 46
Allocation globale ou locale
 globale: la `victime`est prise de n`importe
quel processus
 locale: la `victime`est prise du processus
qui a besoin de la page

Module 8 47
Écroulement ou thrashing (liter.: défaite)
 S ’il n`y a pas assez de mémoire pour exécuter un proc sans
trop de défauts de pagination, le proc finira pour passer trop
de temps dans les files d`attente
 Si cette situation se généralise à plusieurs procs, l ’UCT se
trouvera à être sous-utilisée
 Le SE pourra chercher de remédier à cette situation en
augmentant le niveau de multiprogrammation
 plus de procs en mémoire!
 moins de mém par proc!
 plus de défauts de pagination!

 Désastre: écroulement
 le système devient entièrement occupé à faire des E/S
de pages, il ne réussit plus à faire de travail utile

Module 8 48
Écroulement

Module 8 49
La raison de l`écroulement
 Chaque processus a
besoin d ’un certain
nombre de pages pour
exécuter efficacement
 Le nombre de pages
dont l’ensemble de
processus a besoin à
l’instant excède le
nombre de cadres de
mémoire disponible
 défaite du concept de
mémoire virtuelle

Module 8 50
Ensemble de travail (working set)
 L’ensemble de travail d’un proc donné à un
moment d’exécution donné est l’ensemble
des pages dont le proc a besoin pour
exécuter sans trop de défauts de
pagination
 Malheureusement, un concept flou

Module 8 51
Chercher à prévoir les demandes de pages sur
la base des demandes passées
 Fixer un intervalle D
 Les pages intéressées par les dernières D
operations de mémoire sont dans
l ’ensemble de travail déterminé par D
 Comment choisir un D approprié?
Chaîne
…2615777751623412344434344413234443444… de réf.

D D
D =10 opér
t1 t2
WS(t1) = {1, 2, 5, 6, 7} WS(t2) = {3, 4} D = 4 donnerait le même résultat pour t2!

Figure 10.16 Working-set model.

Module 8 52
Modèle de l’ensemble de travail
 D = une fenêtre d’ensemble de travail
 = un nombre fixe de réf. de pages
 [Link]. 10.000 opérations de mémoire
 SI trop petit, il contiendra pas tout l ’ensemble de pages
couramment utilisé par un proc
 Si trop grand, il contiendra plusieurs ensembles de pages
 WSSi (ensemble de travail du proc. i)
 D = ∑ WSSi nombre total de cadres demandés par tous les
procs en exéc
 Si D > mémoire  Risque d’écroulement
 S’assurer que ceci ne se vérifie pas
 si nécessaire, suspendre un des processus
 Problème: choisir un bon D
 peut être fait par le gérant du système

Module 8 53
Implémentation du concept de WS: difficile!
 Minuterie et bits référence
 Bit de référence qui est mis à 1 chaque fois
que une page est utilisée
 Minuterie qui interrompt régulièrement
pour voir les pages qui ont été utilisées
dans un intervalle de temps

Module 8 54
Le concept de WS en pratique
 Deux types de difficultés:
 fixer le D de façon différente pour chaque processus,
pour représenter ses besoins
 Du matériel spécial est nécessaire pour suivre le
WS d ’un proc à un moment donné

Module 8 55
Pour chaque processus, il existe une dimension
de mémoire acceptable
ceci suggère une approche plus pratique

Module 8 56
Une méthode plus facile à implanter que WS
 Le gérant du système détermine quelles sont les
nombres de défauts de pagination maximales et
minimales tolérables dans le système, et pour
chaque travail, selon ses caractéristiques
 Si un travail en produit plus que sa juste partie,
lui donner plus de mémoire
 Si un travail en produit moins, lui donner moins de
mémoire
 Suspendre si possible des travaux qu`on ne peut
pas satisfaire
 Ou amorcer d’autres travaux si les ressources
sont disponibles

Module 8 57
Taille de pages et localité processus
 Dans le cas de programmes qui exécutent
du code qui ’saute’ beaucoup, les petites
pages sont préférables (code OO est dans
cette catégorie)

Module 8 58
Verrouillage de pages en mémoire
 Certaines pages doivent être verrouillées
en mémoire, [Link]. celles qui contiennent le
noyau du SE
 Il est aussi essentiel de verrouiller en
mémoire des pages sur lesquelles il y a
exécution d ’E/S
 Ceci peut être obtenu avec un bit `verrou`
sur le cadre de mémoire
 ce bit veut dire que ce cadre ne peut pas être
sélectionné comme `victime`

Module 8 59
Systèmes en temps réel
 Avec la mémoire virtuelle, les temps
d ’exécution d’un processus deviennent
moins prévisibles
 retards inattendus à cause de la pagination
 Donc les systèmes en temps réel
`durs` utilisent rarement la mémoire
virtuelle

Module 8 60
Combinaison de techniques
 Les SE réels utilisent les techniques que nous avons
étudiées en combinaison, e.g.
 Linux utilise le buddy system en combinaison avec la
pagination (la plus petite portion de mémoire allouable est
une page)
 d`autres systèmes utilisent les partitions fixes avec la
pagination, ce qui peut être fait de plusieurs façons:
 diviser la mémoire réelle en partitions fixes, assigner chaque
partition à un ou plusieurs processus, puis paginer un processus
dans la partitions qui lui a été assignée
 diviser la mémoire virtuelle en partitions, assigner chaque
partition à un ou plus. processus, puis utiliser la technique
appropriée pour chaque processus dans sa partition
 Les SE réels sont complexes et variés, mais les principes
étudiés dans ce cours en constituent la base.

Module 8 61
Conclusions 1
 Il est fortement désirable que l`espace
d ’adressage de l ’usager puisse être beaucoup
plus grand que l ’espace d ’adressage de la
mémoire RAM
 Le programmeur sera donc libéré de la
préoccupation de gérer son occupation de
mémoire
 cependant, il devra chercher à maximiser la localité de
son processus
 La mémoire virtuelle aussi permet à plus de
processus d ’être en exécution
 UCT, E/S plus occupées

Module 8 62
Conclusions 2
 Le problème de décider la page victime
n ’est pas facile.
 Les meilleurs algorithmes sont impossibles ou
difficiles à implanter
 Cependant en pratique l ’algorithme FIFO est
acceptable

Module 8 63
Conclusions 3
 Il faut s’assurer que chaque processus ait assez
de pages en mémoire physique pour exécuter
efficacement
 risque d ’écroulement
 Le modèle de l’ensemble de travail exprime bien
les exigences, cependant il est difficile à implanter
 Solution plus pragmatique, où on décide de
donner + ou - de mémoire aux processus selon
leur débit de défauts de pagination
 À fin que ces mécanismes de gestion mémoire
soient efficaces, plusieurs types de mécanismes
sont désirables dans le matériel

Module 8 64
Concepts importants du Chap. 9
 Localité des références
 Mémoire virtuelle implémentée par va-et-vient des pages,
mécanismes, défauts de pages
 Adresses physiques et adresses logiques
 Temps moyen d’accès à la mémoire
 Récriture ou non de pages sur mém secondaire
 Algorithmes de remplacement pages:
 OPT, LRU, FIFO, Horloge
 Fonctionnement, comparaison
 Écroulement, causes
 Ensemble de travail (working set)
 Relation entre la mémoire allouée à un proc et le nombre
d’interruptions
 Relation entre la dimension de pages et le nombre d’interruptions

Module 8 65

Vous aimerez peut-être aussi