/
Chap 10 Chap 10

Chap 10 - PowerPoint Presentation

calandra-battersby
calandra-battersby . @calandra-battersby
Follow
410 views
Uploaded On 2017-05-26

Chap 10 - PPT Presentation

1 Chapitre 10 Mémoire virtuelle httpw3uqocaluigi Virtuelle est une ressource dordinateur qui nest pas offerte directement par le matériel elle est créée par le logiciel ID: 552443

chap est moire page est chap page moire pages les une être utilis

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Chap 10" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Chap 10

1

Chapitre 10

Mémoire virtuelle

http://w3.uqo.ca/luigi/

Virtuelle est une ressource d’ordinateur qui n’est pas offerte directement par le matériel, elle est créée par le logiciel

voir: machines virtuelles, mémoire virtuelle …Slide2

Chap 10

2

Mémoire Virtuelle

Pagination sur demande

Problèmes de performanceRemplacement de pages: algorithmesAllocation de cadres de mémoireEmballementEnsemble de travailSlide3

Chap 10

3

Concepts importants du Chap. 10

Localité des références

Mémoire virtuelle implémentée par va-et-vient des pages, mécanismes, défauts de pagesAdresses physiques et adresses logiquesTemps moyen d’accès à la mémoireRécriture ou non de pages sur mém secondaireAlgorithmes de remplacement pages:OPT, LRU, FIFO, HorlogeFonctionnement, comparaisonÉcroulement, causesEnsemble de travail (working set)Relation entre la mémoire allouée à un proc et le nombre d’interruptionsRelation entre la dimension de pages et le nombre d’interruptionsPrépagination, post-nettoyageEffets de l’organisation d’un programme sur l’efficacité de la paginationSlide4

Ce que nous avons vu

Les mécanismes de la segmentation et pagination permettent d’obtenir une bonne utilisation de la mémoireLa fragmentation est presque éliminéeLes processus peuvent être éparpillés où il y a de l’espace en mémoirePar l’entremise de différents tableaux d’adresses de baseLa protection et le partage d’informations peuvent être obtenus par extension des mêmes mécanismesChap 10

4Slide5

Chap 10

5

La mémoire virtuelle est une application du concept de hiérarchie de mémoire

Des concepts semblables s’appliquent aux mécanismes de la mémoire

cacheCependant pour cache les mécanismes sont de matériel

Mécanismes cache

Méc. mém. virtuelle

RAM

(flash ou SSD)Slide6

Dorénavant: MP, MS

MP = mémoire principale, mémoire vive, mémoire physique, RAM termes équivalentsMS = mémoire secondaire qui, selon les technologies, peut être disque ou flash ou SSD (solid state disk)L’UCT peut directement opérer seulement en MPUn transfert de données entre MP et MS est une opération d’E/SChap 10

6Slide7

Chap 10

7

La mémoire virtuelle

Afin qu’un programme soit exécuté, il ne doit pas nécessairement être tout en MP!

Seulement les parties qui sont en exécution ont besoin d’être en MPLes autres parties peuvent être sur MS, prêtes à être amenées en MP sur demande Mécanisme de va-et-vient ou swappingCeci rend possible l’exécution de programmes beaucoup plus grands que la MPRéalisant une mémoire virtuelle qui peut être beaucoup plus grande que la MPSlide8

Chap 10

8

De la pagination et segmentation à la mémoire virtuelle

Un processus est constitué de

morceaux (pages ou segments) qui ne sont pas nécessairement contigus en MP

Et peuvent être souvent déplacés

Adresses logiques sont traduites en adresses physiques au moment de l’exécution

Donc:

les morceaux d’un processus n’ont pas besoin d’être tous en MP durant l’exécution

L’exécution peut continuer à condition que la prochaine instruction (ou donnée) est dans un morceau se trouvant en MP

La somme des mémoires logiques des procs en exécution peut donc excéder la MP disponible

Une image de toute la mémoire logique des processus est gardée en MS (disque ou flash) d’où les pages manquantes pourront être prises au besoin

Mécanisme de

va-et-vien

ou

swappingSlide9

Mémoire/adresse logique et mémoire/adresse virtuelle

L’idée de la mémoire virtuelle est la même que celle de la mémoire logique, avec l’extension que la mémoire virtuelle n’a pas besoin d’être entièrement en mémoire physiqueL’idée de l’adresse virtuelle est la même que celle de l’adresse logiqueavec l’extension que l’adresse virtuelle peut contenir plus de bits que ceux nécessaires pour adresser la mémoire physiqueChap 10

9Slide10

Le concept de ‘permutation de

mémoire’ d’il y a longtemps était basé sur la même idée: pas tout doit être en MP en même temps voir ‘recouvrement’ ou ‘overlay’ dans le chap précédentChap 10

10

MP

MSSlide11

Chap 10

11

Mémoire virtuelle:

résultat d’un mécanisme qui combine

la MP et la MS

Tableau de pages

v

i

MP

MS

Tableau de pagesSlide12

Le principe

de localitéJustification pratique du concept de mémoire virtuelleChap 10

12Slide13

Chap 10

13

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éSlide14

Exemple de localité de référence

Processus qui exécute une boucle sur une structure de données:Pendant l’exec de la boucle, il utilisera toujours les mêmes pages? pages dans ce casUne partie de sa mémoire logiquePour l’instant ce proc a besoin de seulement ? cadres de mémoireChap 10

14

Progr

.

Donn.

Mém virtuelle d’un proc.Slide15

Chap 10

15

Visualisation de la localité des références

Ce processus consiste en 34 pages mais peut exécuter efficacement avec moins de 34 cadres de MP car il n’a jamais besoin de tous ses pages en même temps

(Note: chaque point noir représente une position de mémoire utilisée et on voit seulement les pages 18-34)

Temps

AdressesSlide16

Implémentation de la

Mémoire VirtuelleChap 10

16Slide17

Analogie …

Un groupe de personnes mange sur une table plus petite que le comptoir de cuisineOn mettra sur la table quelques plats au début, puis on ajoutera des plats au fur et à mesure qu’on en demanderaIl faudra en enlever aussi …Chap 10

17Slide18

Chap 10

18

Pages en MP ou sur MS

Page A en MP

et

sur MS.

Page E

seulement

sur MS.

En ce moment, ce proc a besoin de seulement ? pages de MP pour exécuter

mém. secondaire

MS

MPSlide19

Chap 10

19

Nouveau format du tableau des pages

(la même idée peut être appliquée aux tableaux de segments)

Adresse de la

page

Bit

valide

bit

valide

1

si

en

MP

0

si

en

MS

Si la page est en

MP

ceci est une adr. de MP

sinon elle est une adresse de MS

Au début, bit valide = 0 pour toutes les pagesSlide20

Chap 10

20

Avantages du chargement partiel

Plus de processus peuvent être maintenus en exécution

Car seules quelques pièces sont chargées en MP pour chaque processus

L’usager est content, car il peut exécuter plusieurs processus et faire référence à des grosses données sans se préoccuper de remplir la MP

Avec plus de processus en MP, il aura probablement plus de 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 MP

Il est possible d’utiliser plus de bits pour l’adresse logique que le nombre de bits requis pour adresser la MP

Espace d ’adressage virtuel

> > esp. d ’adressage physiqueSlide21

Chap 10

21

Mémoire Virtuelle: Pourrait Être Énorme!

Ex: 16 bits sont nécessaires pour adresser une MP de 64KB

En utilisant des pages de 1KB, 10 bits sont requis pour le décalage

Ceci laisserait 6 bits pour le numéro de page si toutes les pages doivent rentrer dans 64KB

Mais pour l’adresse

virtuelle

nous pouvons utiliser un nombre de bits qui excède 6, car toutes les pages ne doivent pas être en MP simultanément

Dans quelques architectures, ces bits peuvent être inclus dans des registres

Adresse logique=adresse dans l’instruction+registreSlide22

Chap 10

22

Mémoire Virtuelle

Pour une meilleure performance, la mémoire virtuelle se trouve souvent dans une région de MS qui est n’est pas gérée par le système de fichiers

Mémoire va-et-vient, swap memory

Ou souvent disque flash ou SSD

(Solid State Disk)

La traduction de l’adresse virtuelle en adresse physique est effectuée en utilisant les mécanismes étudiés dans le chapitre précédent.Slide23

Chap 10

23

Mémoire virtuelle:

le mécanisme de va-et-vient

Tableau de pages

MS

MP

Tabl

. pagesSlide24

Chap 10

24

Exécution d’un Processus

Au début, le SE charge la MP de quelques pièces (seulement) du programme (incluant la 1

ère instruction)

Chaque entrée de la table de pages (ou segments) possède un

bit valide

qui indique si la page ou segment se trouve en MP

L’ensemble résident (résident set)

sont les pages du processus se trouvant en MP

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

faultSlide25

Chap 10

25

Exécution d’un

défaut de page: va-et-vient plus en détail

Mémoire virtuelle

Une instruction ‘load M’ fait référence à une page en MS

MS

M

interruptionSlide26

Chap 10

26

Séquence d’événements pour défaut de page

Trappe au SE: page demandée

pas en MPProcessus est mis ‘en attente’Sauvegarder registres et état du proc dans PCBUn autre proc peut maintenant gagner l ’UCTSE détermine si la page demandée peut être accedéesinon: faute de segmentation, terminaison du processus et trouve la position de la page sur MSutilisant le descripteur de la page dans le tableau des pageslit la page de MS dans un cadre de MP (supposons qu`il y en a!)Slide27

Chap 10

27

Séquence d’événements pour défaut de page

(ctn.)

La lecture de la page se termine et l’UCT est interrompuesauvegarder les registres etc. du proc exécutantSE met à jour le contenu du tableau des pages du proc. qui a causé le défaut de pageCe processus devient prêt=readyÀ un certain point, il retournera à exécuterla page désirée étant en mémoire, il pourra maintenant continuer

Il s’agit d’un événement essentiellement semblable à une E/S, mais probablement ils sera traité différemment par le SE

(ajout d’un état: « en attente de pages »)Slide28

Algorithmes de

remplacement de pagesChap 10

28Slide29

Chap 10

29

La MP est pleine mais nous avons besoin d`une page pas en MP

MP

MS

La page qui contient l’adresse M doit être amenée en MP pour pouvoir exécuter l’instruction

Load

M

Exercice: bien comprendre cette figure en tous ses détails

Processus 1

Processus 2Slide30

Chap 10

30

La page

victime... On a la page A en MP, elle doit être remplacée par la page B

MP

MS

La page A contenue dans le cadre f est écrite en MS. Le cadre f devient libre.

Dans le tableau des pages du proc on marque: page A invalide. Il y avait là l’adresse f, on le remplace par une valeur nulle, 0.

La page B est amenée en MP dans le cadre f

Dans le tableau des pages, le numéro de cadre de la page B devient f et la page devient valide

NB: On a supposé que les pages A et B sont contigües dans la

mém

virtuelle d’un seul proc, ce qui n’est pas nécessairement le cas

A

B

A

BSlide31

Chap 10

31

Bit de modification,

dirty bit

La ‘victime’ doit-elle être récrite en MS?Seulement si elle a été changée depuis qu`elle a été amenée en MPsinon, sa copie sur MS est encore fidèleBit de modif  sur chaque descripteur de page indique si la page a été changéeDonc pour calculer le coût en temps d’une référence à la mémoire virtuelle il faut aussi considérer la probabilité qu’une page soit ‘propre’ et le temps de récriture dans ce cas

XSlide32

Chap 10

32

Remplacement de pages

Quoi faire si un processus demande une nouvelle page et il n’y a pas de cadres libres en MP?

Il faudra choisir une page déjà en MP, appartenant au même ou à un autre processus, qu’il est possible d ’enlever de la MPla victime!Un cadre de MP sera donc rendu disponibleÉvidemment, plusieurs cadres de MP ne peuvent pas être `victimisés`:p.ex. cadres contenant le noyau du SE, tampons d ’E/S...Slide33

Chap 10

33

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...Slide34

Analogie

La table sur laquelle un groupe mange est pleine, mais on demande un nouveaux platFaut en enleverQuoi enlever?OPT: Le plat dont personne n’aura besoin dans un futur prochainDifficile ou impossible à savoir?LRU: Le plat moins récemment utiliséDifficile: Il faut se préoccuper de tracer l’utilisationFIFO: Le plat qui a été plus longtemps sur la table (le plus « vieux »)Facile, mais donc enlever le pain, l’eau, le sel?Solution de compromis: enlever le plat le plus vieux à moins qu’il n’ait été utilisé récemmentAlgorithme CLOCK, à voirChap 10

34Slide35

Chap 10

35

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 termeMais ils doivent être efficaces Slide36

Chap 10

36

Critères d’efficacité

Il est intolérable d’exécuter un programme chaque fois qu’une opération de mémoire est exécutée

Ceci impliquerait des accès additionnels de mémoireLes opérations qui doivent être faites à chaque accès de mémoire doivent être câblées dans le matérielCependant un programme peut être exécuté chaque fois qu’il y a une faute de paginationSlide37

Chap 10

37

Explication et évaluation des algorithmes

Nous allons expliquer et évaluer les algorithmes

Supposant qu’il y a un seul processus, paginé mais pas segmenté, qui fait les demandes de pages suivantes: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2L’évaluation sera faite sur la base de cet exemple, évidemment pas suffisant pour en tirer des conclusions généralesSlide38

Quelques algorithmes possibles en principe

Nous avons les pages: 1,2,3,4,5Pour la séquence suivante d’accès à pages:2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2, 1Nous sommes au point marqué et toutes les pages déjà utilisées sont en MPLa MP est pleine, la page 4 doit être amenée en MP, faut donc remplacer une page Quelle est la page:qui sera utilisée le plus tard possible dans le futur (OPT)?qui a été utilisée dans le passé le plus lointain (LRU)?qui a été le plus longtemps en mémoire (FIFO)?Chap 10

38Slide39

Chap 10

39

Algorithmes pour la politique de remplacement

L’

algorithme optimal (OPT) choisit pour page à remplacer celle qui sera référencée

le plus tard possible dans le futur

produit le + petit nombre de défauts de page

impossible à réaliser (car il faut connaître le futur) mais sert de

point de comparaison

pour les autres algorithmes:

Ordre chronologique d’utilisation (LRU)

Ordre chronologique de chargement (FIFO)

Deuxième chance ou Horloge (Clock)Slide40

Chap 10

40

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 la plus petite chance d’être utilisée

Performance pratique presque aussi bonne que l’

algo

. OPT

Algorithmes pour la politique de remplacementSlide41

Chap 10

41

Comparaison OPT-LRU

Exemple: Un processus de 5 pages s’ìl n`y a que 3 pages de MP disponibles.

Dans cet exemple, OPT occasionne 3+3 défauts, LRU 3+4.

Stallings

LRU avait ôté la page 3 ne sachant pas qu’elle sera bientôt demandéeSlide42

Chap 10

42

Note sur le comptage des défauts de page

Lorsque la MP 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 algorithmesSlide43

Chap 10

43

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 comparaison à 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

approximationsSlide44

Chap 10

44

Premier arrivé, premier sorti (FIFO)

Idée: une page qui a été longtemps en mémoire a eu sa chance d ’exécuter

Lorsque la mémoire est pleine, la plus vieille page est remplacée. Donc: “first-in, first-out”Simple à mettre en applicationMais: Une page fréquemment utilisée est souvent la plus vielle, elle sera remplacée par FIFO!Slide45

Chap 10

45

Comparaison de FIFO avec LRU

(Stallings)

5 doit entrer: LRU remplace 3, FIFO remplace 2

Contrairement à FIFO, LRU reconnaît que les pages 2 and 5 sont en cours d’utilisation

La performance de FIFO est moins bonne:

LRU = 3+4, FIFO = 3+6 Slide46

Chap 10

46

Implantation de FIFO

Facilement implantable en utilisant un tampon circulaire de cadres de mémoire

Qui a besoin d’être mis à jour seulement à chaque défaut de pageExemple: après la trace:2 1 2 1 5 22

1

5

La page 2, qui a été en mémoire le plus longtemps, est la prochaine victime, puis 1, puis 5

Cependant ceci est un

mauvais choix

car 2 est très utilisée!

Chaque carré

réprésente

un cadre de mémoire avec son contenuSlide47

Chap 10

47

Problème conceptuel avec FIFO

Les premières pages amenées en MP 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:les références aux pages dans un programme réel ne seront pas vraiment aléatoiresSlide48

CLOCK: c’est FIFO avec correctif

Enlever la page qui a été là le plus longtempsMais ne pas l’enlever si elle a été utilisée récemmentBit ‘utilisé’ dans les cadres de mémoire pour savoir quelles pages ont été utilisées récemmentChap 10

48Slide49

Algorithme horloge CLOCK

Ajoutons un bit à chaque page, qui est mis à 1 chaque fois que la page est utilisée 1 sera représenté comme un astérisque * Cependant pour toujours trouver de la place, ce bit est mis à 0 chaque fois qu’il est consultéChap 10

49

2*

3*

1*

Après 2 3 2 1

Au début, 2 n’est pas sélectionnée car elle a été utilisée, mais faisant le tour, tous les bits sont tournés à 0

Après 2 3 2 1

5

5*

3

1

Le choix de 2 est encore mauvais par rapport à la fréquence d’utilisation passée, donc cette méthode n’es pas parfaite

Le pointeur

pointe à la page suivante la dernière remplacéeSlide50

Chap 10

50

L’algorithme de l’horloge CLOCK

Semblable à FIFO, mais il tient compte de l’utilisation récente de pages

Les cadres qui viennent d’être utilisés (bit=1) ne sont pas remplacésLes cadres forment conceptuellement un tampon circulaire Lorsqu’une page est chargée dans un cadre, un pointeur pointe sur le prochain cadre du tamponPour chaque cadre du tampon, un bit “utilisé” est mis à 1 (par le matériel) lorsque: une page y est nouvellement chargéecette page est lue ou écrite ou exécuté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 tourné à 0 Slide51

Chap 10

51

Algorithme de l’horloge CLOCK: un exemple

(

Stallings).

La page 727 est chargée dans le cadre 4, remplaçant la page 556.

La

proch

. victime est la page 13 dans cadre 5, si elle n’est pas utilisée dans l’entretemps

Cadres 0..nSlide52

Chap 10

52

Comparaison: Horloge, FIFO et LRU

(Stallings)

Astérisque indique que le bit utilisé est 1

L’horloge protège du remplacement les pages récemment utilisées en mettant à 1 le bit “utilisé” à chaque référence

Fautes: LRU = 3+

4

, FIFO = 3+

6

, Horloge = 3+

5Slide53

Point délicat pour CLOCK

Pour bien comprendre cet algorithme, il est essentiel de comprendre le fonctionnement du pointeur et de l’astérisqueP.ex. ci-dessous après la référence à 2, le bloc contenant 2 reçoit l’astérisque.Ce bloc a aussi le pointeur, car il est le 1er bloc à considérer pour une demande de page Quand la page 5 est demandée, elle ne peut pas être affectée à ce bloc-là, car il a l’astérisqueLe pointeur est avancé mais en faisant ceci, l’astérisque est retiréRappel: le pointeur est toujours dans le bloc suivant le dernier bloc affectéLa page 5 est mise dans le 3ème bloc avec l’astérisqueFaisant ça, le pointeur est de nouveau avancéLa proch fois, le pointeur passe à travers tous les blocs, les trouvant tous avec astérisque, et les enlève tousLa page remplacée sera ???Chap 1053Slide54

Chap 10

54Slide55

Chap 10

55

Détail sur le fonctionnement de l’horloge CLOCK

Tous les bits étaient à 1. Nous avons fait tout le tour et donc nous avons changé le bit de tous les cadres à 0.

Le premier cadre est remplacé et son bit devient 1 (utilisé!)

Le pointeur pointe toujours au cadre suivant le cadre remplacéSlide56

Chap 10

56

Matériel additionnel pour l’algo CLOCK

Chaque cadre de MP a un bit ‘utilisé’ (use)

Quand le contenu du cadre est utilisé, le bit est mis à 1 par le matérielLe SE regarde le bitS’il est 0, la page dans le cadre peut être remplacéeS’il est 1, il le met à 0

1

Mémoire

0

0

0

1Slide57

Noter différence

Bit ‘sale’ ‘dirty bit’ mentionné avantIndique si la page a été modifiée=écrite après son entrée en MP Bit ‘utilisé’Indique si la page a été lue ou écrite après son entrée en MPL’architecture Intel a les deux, et même plus compliqué …Chap 10

57Slide58

Pour comprendre bien

L’algorithme CLOCK utilise deux mécanismes Le bit ‘utilisé’Le pointeurComprendre que l’un est mis à jour par le matériel, l’autre par le logicielQuand exactement, pour chacun?Chap 10

58Slide59

Chap 10

59

Résumé des algorithmes le plus importants

OPTIMAL

Le meilleur en principe mais pas implantable, utilisé comme référenceLRU

Excellent en principe, mais demande du matériel dispendieux

FIFO

Facile à implanter, mais peut écarter des pages très utilisées

Horloge CLOCK

Modification de FIFO vers LRU:

évite d’écarter des pages récemment utilisées

Les algorithmes utilisés en pratique sont des variations et combinaisons de ces conceptsSlide60

Chap 10

60

Algorithmes

compteurs

Garder un compteur pour les références à chaque pageLFU: Least Frequently Used: remplacer la pages avec le plus petit compteurMFU: Most Frequently Used: remplacer les pages bien usées pour donner une chance aux nouvellesCes algorithmes sont d’implantation dispendieuse et sont moins utilisésMise à jour de compteurs à chaque opération de mémoire!Slide61

Effets sur la fragmentation

La fragmentation interne moyenne est la moitié de la dernière pageD’un segment, s’il y a segmentationD’un processus, s’il n’y a que la paginationDonc elle sera plus petite quand on utilise des petites pagesLa fragmentation externe sera 0 s’il y a assez de processus en exécution Car toute page disponible pourra être utilisée par un des processus actifsChap 10

61Slide62

Effets sur les temps d’exécution

Chap 10

62Slide63

Pour l’exécution efficace d’un processus

Étant donné l’énorme différence entre temps d’exécution d’opérations en mémoire centrale et temps d’exécution d’opérations en mémoire secondaire, les fautes de pagination doivent être très raresAfin qu’un processus puisse être exécuté efficacement, il doit avoir une très haute localité de référenceDoit ne pas ‘sauter partout’ tout le tempsChap 1063Slide64

Chap 10

64

Temps moyen d’accès à la mémoire virtuelle

Supposons que:

accès en MP: 100

nanosecs

temps de traitement de défaut de page: 10

millisecs

= 10,000,000

nanosecs

(inclut le temps lecture et écriture MS, disons disque)

p: probabilité de ne pas trouver une page en MP

(quantité entre 0 et 1)

Temps moyen d’accès mémoire virtuelle en msec:

TM= p x 10,000,000 + (1-p) x 100 (défaut + pas de 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é

P.ex. 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 1 000 000 accès de mémoire virtuelle.

(Temps d’accès disque réaliste aujourd’hui= de 5 à 10 ms, nous avons supposé 5 ici)

Si TM=110, alors p=1 / 1 000 000

Slide65

Points de réfléxion

La formule générale est: TM = pT + (1-p)tExercice 1: Faire le calcul pour les données à la page précédente(résoudre l’équation pour p, etc.)Exercice 2: Étant donné p, T et t, déterminer le ralentissement, etc.Exercice 3: Les mémoires secondaires flash ou SSD ont la particularité que les lectures sont beaucoup plus rapides que les écrituresUne lecture pourrait prendre 0,1ms, une écriture 1,5msRefaire les calculs mentionnés pour ce casÉvidemment nous pouvons tolérer beaucoup plus de fautes de paginationChap 10

65Slide66

Point de réflexion

Exercice. Nous savons que seulement les pages ‘sales’ ont besoin d’être récrites en MS. Supposons que nous connaissons la probabilité m qu’une page soit saleSupposons que le temps de traitement de lecture sur disque soit la moitié du temps de lecture-écritureComment refaire les calculs de temps moyen d’accès dans ce casNotre calcul d’avant supposait que la page sortante devait être écrite, était toujours ‘sale’Chap 10

66Slide67

Matériaux supplémentaires

Chap 10

67Slide68

Chap 10

68

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 fondBonne implémentation du principe de localité, cependant…La pile doit être mise à jour chaque fois qu’une page est utiliséeInefficace, pas pratiqueSlide69

Chap 10

69

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, CLOCKSlide70

Chap 10

70

Situation considérée normaleSlide71

Chap 10

71

Anomalie de Belady (FIFO)

Cas d’intérêt théorique: + de mémoire, + de fautes (v. livre)Slide72

Chap 10

72

Le Chapitre 10 continue…Slide73

Le problème

de la Cohérence Quand une variable peut être stockée à plusieurs niveaux d’une hiérarchie de mémoire, nous avons le problème de la cohérence:S’assurer que quand on obtient la valeur de cette variable, n’importe à quel niveau qu’on la trouve, elle soit toujours à jourNous avons vu comment ce problème est résolu dans le cas de mémoire virtuelle récriture de la dernière valeur de MP à MS D’autres méthodes ont été développées pour des cas plus complexesVoir ‘cohérence de cache’ ou ‘cache coherence’ Chap 10

73Slide74

Algorithmes de remplacements pages:

Exemples additionnelsV. Planches du manuel de Silberschatzhttp://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/Chap 1074Slide75

Chap 10

75

First-In-First-Out (FIFO) Algorithm

Reference string:

7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1

3 frames (3 pages can be in memory at a time per process)

Can vary by reference string: consider 1,2,3,4,1,2,5,1,2,3,4,5

Adding more frames can cause more page faults!

Belady

s Anomaly

How to track ages of pages?

Just use a FIFO queue

15 page faultsSlide76

Chap 10

76

Optimal Algorithm

Replace page that will not be used for longest period of time

9 is optimal for the example

How do you know this?

Can

t read the future

Used for measuring how well your algorithm performsSlide77

Chap 10

77

Least Recently Used (LRU) Algorithm

Use past knowledge rather than future

Replace page that has not been used in the most amount of time

Associate time of last use with each page

12 faults – better than FIFO but worse than OPT

Generally good algorithm and frequently used

But how to implement?Slide78

Chap 10

78

Second-Chance (clock) Page-Replacement AlgorithmSlide79

Question

Quelle est la différence entre les concepts de mémoire virtuelle et mémoire logique?La mémoire virtuelle est un mécanisme: si on veut exécuter plusieurs processus tels que la somme de leurs mémoires logiques excède la taille de la mémoire physique, alors on a besoin de la mémoire virtuelle. Chap 1079