Chapitre 10: 2 - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Chapitre 10: 2

Description:

Chapitre 10: 2 me partie Gestion de la m moire virtuelle Chap 10-2 * Chap 10-2 * Combinaison de techniques Les SE r els utilisent les techniques que nous avons ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 47
Provided by: LuigiLo1
Category:

less

Transcript and Presenter's Notes

Title: Chapitre 10: 2


1
Chapitre 10 2ème partie
Gestion de la mémoire virtuelle
2
Allocation de cadres MP
  • Pour exécuter, un processus a besoin dun nombre
    minimal de cadres de MP
  • par exemple, quelques instructions pourraient
    avoir besoin de plusieurs pages simultanément
    pour exécuter!
  • Il est aussi facile de voir quun proc qui reçoit
    très peu de MP subira un nombre excessif de
    défauts de pagination, donc il sera excessivement
    ralenti
  • Comment sassurer quun 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

http//w3.uqo.ca/luigi/
3
Plusieurs critères possibles
  • Allocation égale chaque processus a droit à une
    portion égale de la mémoire physique
  • Probablement pas une bonne idée
  • Chaque processus a droit à une portion
    proportionnelle à sa taille
  • Aussi pas une bonne idée car des grands processus
    pourraient ne pas avoir besoin de beaucoup de
    mémoire
  • Mieux chaque processus a droit à une portion
    proportionnelle à ses besoins
  • Comment déterminer les bsns?
  • Voilà le concept de Working Set qui aide vers ce
    but

4
Allocation globale ou locale
  • Globale la victimeest prise de nimporte quel
    processus
  • Locale la victimeest prise du processus qui a
    besoin du cadre
  • Lallocation globale peut mieux optimiser la
    performance globale dun système,
  • Pouvant prendre en considération les besoins de
    tous les processus actifs
  • Et donc elle est celle qui est normalement
    utilisée

5
Lécroulement et lensemble de travail
6
Écroulement ou thrashing (liter. défaite)
  • Un proc qui na pas assez de MP finira par passer
    trop de temps dans les files dattente
  • Si cette situation se généralise à plusieurs
    procs, lUCT 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

7
La raison de lécroulement
  • Chaque processus a besoin d un certain nombre de
    pages en MP pour exécuter efficacement
  • Le nombre de pages dont lensemble de processus a
    besoin à linstant excède le nombre de cadres de
    MP disponible
  • il faut prendre la bonne décision au point
  • Ne pas augmenter le niveau de multiprogrammation


8
Ensemble de travail (working set)
  • Lensemble de travail dun proc donné à un moment
    dexécution donné est lensemble des pages dont
    le proc a besoin pour exécuter sans trop de
    défauts de pagination
  • Malheureusement, un concept théorique et flou

9
Comportement typique dun processus
  • Au début, un processus occasionnera un certain
    nombre de fautes de pagination pour charger
    toutes les pages dont il a besoin à ce moment là
    (son ensemble de travail initial)
  • Il travaillera un peu sur ces pages, puis il
    passera à faire autres choses
  • Il aura donc besoin de charger dautres pages
  • Il travaillera sur ces pages, etc.

10
Exemple 1
  • Chargement dune page web
  • Consultation de la page chargée
  • Chargement dune autre page web
  • Consultation de la page chargée
  • Etc.

11
Exemple 2
  • Vous faites du traitement du texte
  • Le programme Word et votre texte doivent être
    amenés en MP
  • Mais puis si vous restez dans le même travail,
    tout est déjà en MP
  • Vous passez à faire du tablier
  • Le programme Excel et les données doivent être
    amenés en MP
  • Mais puis si vous restez dans le même travail
    tout sera déjà en MP

12
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 lensemble de
    travail déterminé par D

Chaîne de réf.
D 10 opér
D 4 donnerait le même résultat pour t2!
13
Modèle de lensemble de travail
  • D une fenêtre densemble de travail
  • un nombre fixe de réf. de pages
  • p.ex. 10 000 opérations de mémoire
  • SI trop petit, il contiendra pas tout lensemble
    de pages couramment utilisées
  • 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 gt MP ? Risque décroulement
  • Sassurer 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

14
Implémentation du concept de WS difficile!
  • Minuterie et bits référence
  • Bit de référence sur chaque cadre qui est mis à 1
    chaque fois que la page dans le cadre est
    utilisée
  • Minuterie qui interrompt régulièrement pour voir
    les pages qui ont été utilisées dans un
    intervalle de temps
  • Idée semblable à lalgo. de lhorloge

15
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 dun proc à un moment donné
  • Voyons une approche plus pratique ?

16
Analogie
  • Un client demande un plat qui consiste en
    plusieurs assiettes
  • Le garçon lui donne une grande table
  • Un client demande un plat qui consiste en une
    seule assiette
  • Le garçon lui donne une petite table
  • Cest plus difficile quand la demande évolue dans
    le temps!
  • Dans ce cas, il faut adapter la dimension de la
    table au fur et à mesure

17
Pour chaque processus, il existe une dimension de
MP acceptable
ceci suggère une approche plus pratique
acceptable
18
Une méthode plus facile à implanter que WS
  • Le SE ou 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 MP
  • Si un travail en produit moins, lui donner moins
    de MP
  • Suspendre si possible des travaux quon ne peut
    pas satisfaire
  • Ou amorcer dautres travaux si les ressources
    sont disponibles

19
Optimisations
20
Optimisations
  • Un grand nombre de techniques doptimisation ont
    été proposées et implantées
  • Le manuel en discute plusieurs
  • Prépagination, post-nettoyage
  • Stockage efficace
  • Taille optimale des pages

21
1) Prépagination, post-nettoyage
  • Prépagination
  • noter quelles pages paraissent être reliées les
    unes aux autres
  • quand une de ces pages est amenée en mémoire RAM,
    y amener les autres en même temps
  • ne pas amener une seule page, sil ny a pas
    assez d espace pour les autres
  • éventuellement, stocker toutes ces pages dans des
    secteurs contigus de disque, de façon qu elles
    puissent être lues rapidement en séquence
  • Post-nettoyage (post-purging)
  • enlever ensemble tout un groupe de pages reliées
    (même localité)

22
2) Stocker les pages de façon efficace
Si la MS est sur disque
23
3) Tailles de pages (un pb de conception matériel)
  • Grande variété de tailles de pages aujourdhui
  • en pratique de 4KB à 4MB
  • Avantages des petites pages
  • moins de fragmentation interne
  • moins dinformation inutile en mémoire
  • Avantages des grandes pages
  • tableaux de pages plus petits
  • si la MS est sur disque, le temps de disque le
    plus important est le temps de positionnement
  • une fois le disque positionné, il vaut la peine
    de lire une grande page
  • Tendance aujourdhui vers grandes pages car nous
    avons des grands MPs

24
Pages grandes ou petites
  • Avec une petite taille
  • grand nombre de pages en MP
  • chaque page contient uniquement du code utilisé
  • moins de fragm. interne et externe
  • peu de défauts de page une fois que toutes les
    pages utiles sont chargées
  • tableaux de pages plus grands
  • En augmentant la taille
  • moins de pages peuvent être gardées dans MP
  • chaque page contient plus de code qui nest pas
    utilisé
  • plus de fragmentation
  • plus de défauts de page
  • tableaux de pages moins grands
  • Les défauts de pages diminuent lorsque nous
    approchons le point P où la taille dune page est
    celle dun processus entier

Stallings
25
Différentes tailles de pages
  • Certains processeurs supportent plusieurs
    tailles. Ex
  • R4000 supporte 7 tailles 4KB à 16MB
  • Aujourdhui il y a des UCT qui admettent des
    tailles de pages jusquà 1G
  • dimensions différentes peuvent être en
    utilisation par des travaux différents, selon
    leur caractéristiques de localité
  • Travaux qui utilisent des grosses boucles et
    grosses structures de données pourront utiliser
    bien les grosses pages
  • Des travaux qui sautent un peu partout sont
    dans la situation contraire
  • LUCT (ou MMU) contient un registre qui dit la
    taille de page couramment utilisée
  • Pour en savoir plus
  • Consultez Page (computer memory) dans
    Wikipedia

26
Effets de lorganisation du programme sur
lefficacité de la pagination
  • En principe, la pagination est censée être
    invisible au programmeur
  • Mais le programmeur peut en voir les conséquences
    en termes de dégradation de performance
  • p.ex. quand il change d un contexte à lautre
  • Le programmeur peut chercher à éviter la
    dégradation en cherchant daugmenter la localité
    des références dans son programme

27
Effets de lorganisation du programme sur
lefficacité de la pagination
  • Supposons que un compilateur organise les
    tableaux en mémoire par lignes
  • Mais que un programme le balaie par colonnes
  • Dans une mémoire non-paginée
  • aucune inconvénient observable
  • Mais dans une mémoire paginée
  • Inefficacité si le tableau est gros, p.ex. si
    chaque ligne est sur une page différente

28
Col 2
Col 1
Col 3
ligne 1 page 1
Tableau organisé par lignes, balayage par colonnes
ligne 2 page 2
ligne 3 page 3
Fautes de pagination répétées
Mém logique dun proc.
Chap 10
29
Col 2
Col 1
Col 3
ligne 1 page 1
Tableau organisé par lignes, balayage par lignes
ligne 2 page 2
ligne 3 page 3
Fautes de pagination minimales
Mém logique dun proc.
30
Effets de lorganisation du programme sur
lefficacité de la pagination
  • Structure de programme
  • Array A1024, 1024
  • chaque ligne du tableau est stockée dans une page
    différente,
  • un cadre différent
  • Programme 1 balayage par colonnes
  • for j 1 to 1024 do for i 1 to 1024
    do Ai,j 0jusquà 1024 x 1024 défauts de
    pagination
  • Programme 2 balayage par lignes
  • for i 1 to 1024 do for j 1 to 1024
    do Ai,j 0jusquà 1024 défauts de
    pagination

31
Expérience pratique (article paru en 2010)
  • Un serveur web roulait sur 12 machines et les
    gardait très occupées
  • Un programmeur astucieux sest aperçu que
    lalgorithme utilisé faisait accès à des données
    qui à chaque fois étaient fort probablement dans
    des pages différentes
  • Il a utilisé un algorithme théoriquement moins
    optimal mais qui utilisait mieux la localité
  • Le matériel a pu être réduit à 3 machines!

Kamp, P.H. Youre doing it wrong. Comm. ACM
53(7), 2010, 55-59.
32
Les rectangles blancs représentent les pages
Binary Heap (théoriq. optimal sans
pagination) Mauvaise structure les parcours dans
les arbres touchent à des pages
différentes (p.ex. 6 accès de pages pour aller de
32 à 47, 4 pages différentes)
B-Heap (théoriq. moins bon) Mieux Les parcours
dans les arbres restent souvent dans la même
page (p.ex. 3 accès de pages pour aller de 32 à
47, 3 pages différentes)
33
Verrouillage de pages en mémoire
  • Certaines pages doivent être verrouillées en
    mémoire, p.ex. 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 

34
Systèmes en temps réel
  • Avec la mémoire virtuelle, les temps dexécution
    dun processus deviennent moins prévisibles
  • retards inattendus à cause de la pagination
  • Donc les systèmes en temps réel durs utilisent
    peu ou point la mémoire virtuelle

35
En pratique
36
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)
  • dautres 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.

37
Conclusions 1
  • Il est fortement désirable que lespace
    d adressage de lusager 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

38
Conclusions 2
  • Le problème de décider la page victime nest pas
    facile.
  • Les meilleurs algorithmes sont impossibles ou
    difficiles à implanter
  • On voit ici beaucoup de complexité dans les
    systèmes réels

39
Conclusions 3
  • Il faut sassurer que chaque processus ait assez
    de pages en mémoire physique pour exécuter
    efficacement
  • Sinon risque décroulement
  • Le modèle de lensemble 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

40
Dans un système réel
  • Une lecture disque rotationnel sur un PC prend
    autour de
  • 10ms
  • Donc la limite est autour de 100 fautes de
    pagination par seconde
  • Dans un serveur avec mémoire secondaire
    éléctronique (p.ex. SSD)
  • le taux de pagination peut arriver à milliers de
    pages par seconde
  • Le temps dexécution dune seule faute de
    pagination peut être comparable au temps
    dexécution dentre 10 et 100 millions
    dinstructions régulières
  • Mais ces données varient beaucoup dordi à ordi

41
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 pages
  • Adresses physiques et adresses logiques
  • Temps moyen daccè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 dinterruptions
  • Relation entre la dimension de pages et les
    défauts de pages
  • Prépagination, post-nettoyage
  • Effets de lorganisation dun programme sur
    lefficacité de la pagination

42
Par rapport au manuel
  • Sections 10.3, 10.4.7, 10.4.8, 10.5,10.7
    intéressantes, mais pas sujet dexamen

43
Recherche récente
  • Un article de 2010 présente un système dans
    lequel on a implémenté trois mécanismes pour
    sauver de la mémoire
  • Partage de pages comme nous avons vu.
  • 'Patching' ceci est pour des pages qui sont
    différentes seulement dans certains aspects. Ces
    pages sont trouvées et on crée une page typique,
    plus des courtes 'patches' qui donnent la
    différence entre la page typique et les pages
    semblables.
  • Compression les pages pas récemment utilisées
    sont comprimées et peuvent être transférées sur
    disque plus tard.
  • Lalgorithme de remplacement pages utilisé est
    essentiellement l horloge
  • Tout ceci paraît très exigeant pour les
    ressources de l'UCT (comparaisons, compression
    ...), mais n'oublions pas que l'UCT est souvent
    peu occupée.
  • D. Gupta, S. Lee, M. Vrable, S. Savage, A.C.
    Snoeren, G. Varghese, G.M. Voelker, A. Vahdat
    Difference Engine Harnessing Memory Redundancy
    in Virtual Machines. Comm. ACM, 53 (10) 85-93

44
Un peu dhistoire
  • Le concept de régistre de base fut inventé
    pendant les années 1950 et fut le premier pas
    vers lindépendence entre mémoire logique et
    mémoire physique
  • 1959 système Manchester Atlas invente le concept
    de mémoire virtuelle. Implémente la pagination et
    la mémoire associative TLB.
  • 1964 Burroughs B5500 implémente la
    segmentation.
  • 1964 Système Multics, collaboration entre
    General Electric et Massachusetts Institute of
    Technology, implémente dans le système GE645 une
    mémoire virtuelle qui combine la pagination et la
    segmentation.
  • 1969 Une équipe dIBM (David Sayre) prouve que
    le concept de mémoire virtuelle est effectivement
    plus performant que les méthodes implémentées
    manuellement comme les overlays. Ceci fut fait
    en étudiant la performance de programmes réels
    utilisant les deux méthodes.
  • La segmentation ne fut pas implantée dans Unix ni
    Windows, en raison des moyens limités des
    premiers PC (Unix voulait être une version
    simplifiée et plus pratique de Multics)
  • Aujourdhui, larchitecture Intel supporte tant
    la segmentation que la pagination, mais la
    segmentation comme décrite avant continue de ne
    pas être implantée dans les systèmes comme Unix,
    Linux ou Windows
  • (Dommage).

45
Pentium segmentation paging (notes de cours par
Dave Reed, Creighton U)
  • segmentation
  • max segment size 4 GB
  • max of segments per process 16 KB
  • logical address is 48 bits long
  • 16-bit selector identifies the segment
  • 32-bit offset specifies location in segment
  • paging
  • page size 4 KB or 4MB
  • utilizes 2-level paging scheme
  • first 10 bits index a page directory
  • next 10 bits index corresponding page table
  • remaining 12 bits specify offset in page

46
Linux on Pentium Systems
  • since some processors don't support segmentation,
    Linux doesn't rely on it
  • on the Pentium, Linux uses only 6 segments
  • kernel code, kernel data, user code, user data,
    task-state, local-descriptor table
  • since some processors support 64-bit addresses,
    2-level paging is not sufficient
  • in general, Linux uses 3-level paging
  • but uses 0 bits for middle table if only 32-bits
    are supported (as with Pentium)
Write a Comment
User Comments (0)
About PowerShow.com