La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chap 10-21 Chapitre 10: 2ème partie Gestion de la mémoire virtuelle.

Présentations similaires


Présentation au sujet: "Chap 10-21 Chapitre 10: 2ème partie Gestion de la mémoire virtuelle."— Transcription de la présentation:

1 Chap Chapitre 10: 2ème partie Gestion de la mémoire virtuelle

2 Chap Allocation de cadres MP n Pour exécuter, un processus a besoin dun nombre minimal de cadres de MP u par exemple, quelques instructions pourraient avoir besoin de plusieurs pages simultanément pour exécuter! n 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 n Comment s`assurer quun proc soit alloué son minimum u allocation égale: chaque processus a droit a une portion égale de la mémoire physique u allocation proportionnelle: chaque processus a droit à une portion proportionnelle à sa taille F le critère devrait plutôt être le besoin de pages: v. working set

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

4 Lécroulement et lensemble de travail Chap 10-24

5 5 Écroulement ou thrashing (liter.: défaite) n Un proc qui na pas assez de MP finira par passer trop de temps dans les files d`attente n Si cette situation se généralise à plusieurs procs, lUCT se trouvera à être sous- utilisée n Le SE pourra chercher de remédier à cette situation en augmentant le niveau de multiprogrammation u plus de procs en mémoire! u moins de mém par proc! u plus de défauts de pagination! n Désastre: écroulement u le système devient entièrement occupé à faire des E/S de pages, il ne réussit plus à faire de travail utile

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

7 Chap Ensemble de travail (working set) n 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 u Malheureusement, un concept théorique et flou

8 Comportement typique dun programme Chap Au début, un programme 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.

9 Exemple 1 n Chargement dune page web n Consultation de la page chargée n Chargement dune autre page web n Consultation de la page chargée n Etc. Chap 10-29

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

11 Chap Chercher à prévoir les demandes de pages sur la base des demandes passées Fixer un intervalle Les pages intéressées par les dernières operations de mémoire sont dans lensemble de travail déterminé par WS(t 1 ) = {1, 2, 5, 6, 7} t1t1 WS(t 2 ) = {3, 4} t2t2 … … Figure Working-set model. =10 opér Chaîne de réf. = 4 donnerait le même résultat pour t 2 !

12 Chap Modèle de lensemble de travail une fenêtre densemble de travail u = un nombre fixe de réf. de pages u p.ex opérations de mémoire n SI trop petit, il contiendra pas tout lensemble de pages couramment utilisées n Si trop grand, il contiendra plusieurs ensembles de pages n WSS i (ensemble de travail du proc. i) n D = WSS i nombre total de cadres demandés par tous les procs en exéc n Si D > MP Risque décroulement n Sassurer que ceci ne se vérifie pas u si nécessaire, suspendre un des processus Problème: choisir un bon u peut être fait par le gérant du système

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

14 Chap Le concept de WS en pratique n Deux types de difficultés: fixer le de façon différente pour chaque processus, pour représenter ses besoins n Du matériel spécial est nécessaire pour suivre le WS dun proc à un moment donné n Voyons une approche plus pratique

15 Chap Pour chaque processus, il existe une dimension de MP acceptable ceci suggère une approche plus pratique acceptable

16 Chap Une méthode plus facile à implanter que WS n 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 n Si un travail en produit plus que sa juste partie, lui donner plus de MP n Si un travail en produit moins, lui donner moins de MP n Suspendre si possible des travaux qu`on ne peut pas satisfaire n Ou amorcer dautres travaux si les ressources sont disponibles

17 Optimisations Chap

18 Chap Optimisations n Un grand nombre de techniques doptimisation ont été proposées et implantées u Le manuel en discute plusieurs: F Prépagination, post-nettoyage F Stockage efficace F Taille optimale des pages

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

20 Chap Stocker les pages de façon efficace Si la MS est sur disque

21 Chap Tailles de pages (un pb de conception matériel) n Grande variété de tailles de pages aujourdhui u en pratique: de 4KB à 4MB n Avantages des petites pages: u moins de fragmentation interne u moins dinformation inutile en mémoire n Avantages des grandes pages: u tableaux de pages plus petits u si la MS est sur disque, le temps de disque le plus important est le temps de positionnement F une fois le disque positionné, il vaut la peine de lire une grande page n Tendance aujourdhui vers grandes pages car nous avons des grands MPs

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

23 Chap Différentes tailles de pages n Certains processeurs supportent plusieurs tailles. Ex: u R4000 supporte 7 tailles: 4KB à 16MB u Aujourdhui il y a des UCT qui admettent des tailles de pages jusquà 1G u dimensions différentes peuvent être en utilisation par des travaux différents, selon leur caractéristiques de localité F Travaux qui utilisent des grosses boucles et grosses structures de données pourront utiliser bien les grosses pages F Des travaux qui sautent un peu partout sont dans la situation contraire u 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

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

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

26 Chap Chap 10 Mém logique dun proc. ligne 1 = page 1 ligne 2 = page 2 ligne 3 = page 3 Col 1 Col 2 Col 3 Fautes de pagination répétées Tableau organisé par lignes, balayage par colonnes

27 Chap Mém logique dun proc. ligne 1 = page 1 ligne 2 = page 2 ligne 3 = page 3 Col 1 Col 2 Col 3 Fautes de pagination minimales Tableau organisé par lignes, balayage par lignes

28 Chap Effets de lorganisation du programme sur lefficacité de la pagination n Structure de programme u Array A[1024, 1024] u chaque ligne du tableau est stockée dans une page différente, F un cadre différent u Programme 1: balayage par colonnes: for j = 1 to 1024 do for i = 1 to 1024 do A[i,j] = 0; jusquà 1024 x 1024 défauts de pagination u Programme 2: balayage par lignes: for i = 1 to 1024 do for j = 1 to 1024 do A[i,j] = 0; jusquà 1024 défauts de pagination

29 Expérience pratique (article paru en 2010 ) n Un serveur web roulait sur 12 machines et les gardait très occupées n 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 n Il a utilisé un algorithme théoriquement moins optimal mais qui utilisait mieux la localité n Le matériel a pu être réduit à 3 machines! Chap Kamp, P.H.: Youre doing it wrong. Comm. ACM 53(7), 2010,

30 Chap 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) Les rectangles blancs représentent les pages

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

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

33 En pratique Chap

34 Chap Combinaison de techniques n Les SE réels utilisent les techniques que nous avons étudiées en combinaison, e.g. u Linux utilise le buddy system en combinaison avec la pagination (la plus petite portion de mémoire allouable est une page) u d`autres systèmes utilisent les partitions fixes avec la pagination, ce qui peut être fait de plusieurs façons: F 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 F 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 n Les SE réels sont complexes et variés, mais les principes étudiés dans ce cours en constituent la base.

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

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

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

38 Chap Dans un système réel Une lecture disque rotationnel sur un PC prend autour de 10ms u Donc la limite est autour de 100 fautes de pagination par seconde Dans un serveur avec mémoire secondaire éléctronique (p.ex. flash memory) u le taux de pagination peut arriver à milliers de pages par seconde n 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 n Mais ces données varient beaucoup dordi à ordi

39 Chap Concepts importants du Chap. 10 n Localité des références n Mémoire virtuelle implémentée par va-et-vient des pages, mécanismes, défauts de pages n Adresses physiques et adresses logiques n Temps moyen daccès à la mémoire u Récriture ou non de pages sur mém secondaire n Algorithmes de remplacement pages: u OPT, LRU, FIFO, Horloge u Fonctionnement, comparaison n Écroulement, causes n Ensemble de travail (working set) n Relation entre la mémoire allouée à un proc et le nombre dinterruptions n Relation entre la dimension de pages et les défauts de pages n Prépagination, post-nettoyage n Effets de lorganisation dun programme sur lefficacité de la pagination

40 Chap Par rapport au manuel… n Sections 10.3, , , 10.5,10.7: intéressantes, mais pas sujet dexamen

41 Recherche récente n Un article de 2010 présente un système dans lequel on a implémenté trois mécanismes pour sauver de la mémoire: u Partage de pages: comme nous avons vu. u '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. u Compression: les pages pas récemment utilisées sont comprimées et peuvent être transférées sur disque plus tard. u Lalgorithme de remplacement pages utilisé est essentiellement l horloge u 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. n 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) Chap

42 Un peu dhistoire n 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 n 1959: système Manchester Atlas invente le concept de mémoire virtuelle. Implémente la pagination et la mémoire associative TLB. n 1964 : Burroughs B5500 implémente la segmentation. n 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. n 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. n 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) n 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 u (Dommage…). Chap

43 Chap 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

44 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 F 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 F but uses 0 bits for middle table if only 32-bits are supported (as with Pentium) Chap


Télécharger ppt "Chap 10-21 Chapitre 10: 2ème partie Gestion de la mémoire virtuelle."

Présentations similaires


Annonces Google