Mémoire virtuelle. Pagination sur demande. Copy-on-Write. Remplacement de pages. Allocation de frames. Thrashing. Fichiers mappés en mémoire

Documents pareils
Partie 7 : Gestion de la mémoire

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

<Insert Picture Here> Solaris pour la base de donnés Oracle

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Gestion répartie de données - 1

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Systemes d'exploitation des ordinateurs

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Projet Active Object

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Optimisations des SGBDR. Étude de cas : MySQL

Initiation au HPC - Généralités

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

Cours de Systèmes d Exploitation

Structure fonctionnelle d un SGBD

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Communications performantes par passage de message entre machines virtuelles co-hébergées

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Technologie SDS (Software-Defined Storage) de DataCore

GESTION DE LA MEMOIRE

Programmation C++ (débutant)/instructions for, while et do...while

Le data center moderne virtualisé

Parallélisme et Répartition

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

ASR1 TD7 : Un microprocesseur RISC 16 bits

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

REALISATION d'un. ORDONNANCEUR à ECHEANCES

environnements SQL Server?

Système de Gestion de Fichiers

LIVRE BLANC Pratiques recommandées pour l utilisation de Diskeeper sur les réseaux SAN (Storage Area Networks)

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Concept de machine virtuelle

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

ESXi: Occupation RAM avec VM_Windows et VM_Linux. R. Babel, A. Ouadahi April 10, 2011

Architecture des ordinateurs

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

Corrigé des TD 1 à 5

Tests de performance du matériel

Leçon 1 : Les principaux composants d un ordinateur

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Effacement des supports de données

LA mémoire principale est le lieu où se trouvent les programmes et les

Détection d'intrusions en environnement haute performance

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

1 Recherche en table par balayage

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

SQL Server 2008 et YourSqlDba

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Pourquoi superviser?

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

Les bases de l optimisation SQL avec DB2 for i

Session S12 Les bases de l optimisation SQL avec DB2 for i

Conception de circuits numériques et architecture des ordinateurs

A -Systèmes de fichiers 1 - FAT vs NTFS

Cours A7 : Temps Réel

«clustering» et «load balancing» avec Zope et ZEO

SYSTÈME DE GESTION DE FICHIERS

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

VIII- Circuits séquentiels. Mémoires


Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Big Data et Graphes : Quelques pistes de recherche

Introduction au pricing d option en finance

Cours d algorithmique pour la classe de 2nde

Manuel d'installation de GESLAB Client Lourd

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Comment tester la vitesse d un réseau Ethernet

LES SYSTÈMES DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Algorithmique et structures de données I

Configuration du matériel Cisco. Florian Duraffourg

Audit activité base Oracle / SAP

Chapitre 4 : Les mémoires

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Initiation à la sécurité

G.U.S.T.A.V. Gestion Unifiée des Systèmes de fichiers Transposée aux Appareillages Virtuels G U S T A V

Limitations of the Playstation 3 for High Performance Cluster Computing

Manuel de System Monitor

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Qualité du logiciel: Méthodes de test

Protéger une machine réelle derrière une machine virtuelle avec pfsense

Oracle Maximum Availability Architecture

Cours Informatique Master STEP

Architecture des calculateurs

Compilation (INF 564)

Réalisation d un OS 32 bits pour PC(x86)

Transcription:

Mémoire virtuelle Pagination sur demande Copy-on-Write Remplacement de pages Allocation de frames Thrashing Fichiers mappés en mémoire Allocation de mémoire du noyau Stefan Monnier IFT-2245 1

Schéma de mémoire virtuelle Stefan Monnier IFT-2245 2

Pourquoi virtuelle? Donner l illusion d une mémoire infinie Mémoire centrale est toujours trop petite Certaines parties du code ne sont jamais exécutées Certaines données/code momentanément inutiles Maximiser l utilité des données en mémoire centrale Pas besoin de prêter attention à la taille mémoire Stefan Monnier IFT-2245 3

Espace d adressage virtuel Espace d adressage avec des trous Trous pour faciliter allocations futures: Grandir la pile Libraires liées dynamiquement Pages partagées avec d autres processus Stefan Monnier IFT-2245 4

Librairie partagée Stefan Monnier IFT-2245 5

Pagination à la demande Ne pas charger tout le programme au démarrage Amener les pages en mémoire centrale de manière paresseuse Moins d entrées/sorties, moins de mémoire utilisée Réponse plus rapide, plus de processus en mémoire Accès mémoire: 1. En mémoire = le CPU se charge de tout 2. Sinon, trap vers le SE 3. Le SE vérifie si la page existe: si non = coredump 4. Si oui, charger la page du disque et ressayer Stefan Monnier IFT-2245 6

Transfert du/vers le disque Stefan Monnier IFT-2245 7

Table de pages avec pages manquantes Stefan Monnier IFT-2245 8

Page fault 1. Le CPU utilise table des pages pour trouver l adresse physique 2. Si la table des pages indique une entrée invalide: page fault! 3. Le CPU passe en mode noyau et appelle le SE 4. Le SE cherche dans sa propre table 5. Si l adresse logique est vraiment invalide: coredump! 6. Sinon, trouver une frame libre 7. Transférer la page depuis le disque vers cette frame 8. Mettre à jour la table des pages 9. Réexécuter l instruction du programme Stefan Monnier IFT-2245 9

Schéma d une page fault Stefan Monnier IFT-2245 10

Besoins de la pagination sur demande MMU avec des bits valide/invalide par page Une mémoire secondaire La capacité de réexécuter une instruction Instructions atomiques Garder trace de la partie déjà exécutée Stefan Monnier IFT-2245 11

Coût d un page fault Trap vers le SE Trouver une frame libre Potentiellement évincer une frame Envoyer la commande au disque Context switch à un autre processus en attendant Interruption vers le SE Autre Context switch pour revenir au processus Corriger la table des pages Relancer l exécution Stefan Monnier IFT-2245 12

Temps d accès effectif ρ: miss rate de la mémoire centrale M : Temps d accès à la mémoire centrale D: Temps de service d un page fault EAT = (1 ρ)m + ρ(m + D) = M + ρd D est principalement déterminé par le temps d accès au disque D latence-disque + accès-disque Stefan Monnier IFT-2245 13

Optimisations Garder des frames libres Charger plusieurs pages d un coup Un accès disque pour 4KB n est pas plus rapide que pour 64KB Prefetching Stefan Monnier IFT-2245 14

Copy-on-Write (CoW) Copie paresseuse via la table des pages La copie partage la même mémoire physique que l original 1. Pages marquées read-only 2. En cas de store, la page affectée est copiée 3. La table des pages est ajustée et marquée read-write 4. Et ensuite seulement le store est relancé Indispensable pour fork Utilisé aussi pour l initialisation à 0 Stefan Monnier IFT-2245 15

Schéma de Copy-on-Write Stefan Monnier IFT-2245 16

Plus de frame libre Que faire s il n y a plus de frame libre? Tuer un ou des processus Swap out un processus Évincer une page Pour évincer, il est très important de trouver un bon condidat Stefan Monnier IFT-2245 17

Remplacement de page Pour évincer une page il faut la remettre sur le disque On utilise un dirty bit pour savoir si la page a été modifiée Si elle n a pas été modifiée, pas besoin de la réécrire sur le disque Besoin de statistiques sur l usage de chaque page pour un bon choix Note: une page fault peut maintenant faire 2 transferts de page Le temps d accès effectif en est augmenté en conséquence Stefan Monnier IFT-2245 18

Esquisse de remplacement de page Stefan Monnier IFT-2245 19

Algorithmes de remplacement de page Minimiser le nombre de page faults futures Soit globalement Soit par processus ou utilisateur ou groupe de processus Évalué sur une séquence de pages E.g.: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Stefan Monnier IFT-2245 20

Remplacement par Random On choisit une frame au hasard Facile à implémenter Pas très bon en général Mais, dans le pire des cas n est pas pire que les autres Stefan Monnier IFT-2245 21

On choisit toujours la frame suivant la précédente: Remplacement par FIFO Dans cet exemple, on a donc 15 page faults Facile à implémenter Pas idéal. Mais, dans le pire des cas n est pas mauvais Anomalie de Belady: plus de faults avec plus de frames! Stefan Monnier IFT-2245 22

Remplacement Optimal Remplacer la page qui restera inutilisée plus longtemps Seulement 9 page faults Malheureusement, il faut connaître le futur Bonne référence, cependant: on ne peut pas faire mieux Stefan Monnier IFT-2245 23

Remplacement par LRU Remplace la frame inutilisée depuis le plus de temps 12 page faults, dans notre exemple Généralement un des meilleurs algorithmes Ne souffre pas de l anomalie de Belady LRU est OPT à l envers équivalents si le futur reproduit le passé Stefan Monnier IFT-2245 24

Talon d Achille de LRU Longs accès séquentiels Sans répétition: le futur ne ressemble pas du tout au passé Avec répétition: accès à N+1 pages Lorsqu on arrive à N+1, on évince 0 Lorsqu on arrive à 0, on évince 1 Random fonctionnerait beaucoup mieux ( 1 fault par boucle) Stefan Monnier IFT-2245 25

Implémentation de LRU Horloge: Chaque frame garde l heure du dernier accès L horloge est incrémentée à chaque accès Lors du remplacement, cherche la frame avec la plus vieille heure Liste (généralement appelée pile): Garde une liste ordonnée de toutes les frames À chaque accès, déplace la frame en première position Lors du remplacement, prend la dernière frame de la liste Stefan Monnier IFT-2245 26

Approximation de LRU: referenced bit LRU requiert trop de travail à chaque accès Certains CPU donnent une approximation Un bit referenced dans la table de page Lors de l accès à une page, le CPU met ce bit à 1 Périodiquement, le SE collecte tous ces bits et les remet à 0 Le SE ne peut plus distinguer l ordre d accès dans une même période Parmi les frames d une même période on peut utiliser FIFO Stefan Monnier IFT-2245 27

Approximation de LRU: Clock Aussi appelé algorithme de la deuxième chance Comme FIFO, prend la frame suivante, mais vérifie son referenced bit: Si referenced est 0, alors remplace cette page Si referenced est 1, alors remet referenced à 0 et passe à la frame suivante Dégénère à FIFO si les referenced sont tous à 0 (ou tous à 1) Stefan Monnier IFT-2245 28

Exemple de Clock Stefan Monnier IFT-2245 29

Implémentation de referenced bit Certains CPU implémentent les bits referenced et dirty Sinon, on peut le faire à la main: Pour mettre referenced à 0, marquer la page comme invalide Lors d un page fault, mettre referenced à 1 De même pour dirty Pour mettre dirty à 0, marquer la page comme read-only Lors d un page fault en écriture, mettre dirty à 1 Parfois plus efficace et pratique de le faire à la main Stefan Monnier IFT-2245 30

Algorithmes de page-buffering Découpler les opérations pour répondre plus vite à un page-fault Garder des frames libres Choisir à l avance les victimes futures Si elle est dirty, écrire le contenu dans le disque Marquer invalide. Mais si accédée, on peut la ressusciter à bon prix Ne pas laisser les pages dirty trop longtemps Quand le disque est inactif, écrire le contenu des pages dirty Ainsi la page peut être évincée plus rapidement Garder des frames pré-initialisées à 0 Stefan Monnier IFT-2245 31

Allocation de frames Combien de frames allouer à chaque processus Évincer une page qui appartient à un autre processus? Allocation globale: oui sans équivoque Temps d exécution d un processus dépend beaucoup des autres Populaire: généralement meilleur throughput Allocation locale: non, (voire: oui mais) Performance d un processus plus prévisible Risque de sous-utiliser la mémoire Populaire quand on partitionne une machine Stefan Monnier IFT-2245 32

NUMA (Non-Uniform Memory Access) Le temps d accès à la mémoire peut dépendre de la distance E.g. plusieurs nœuds (CPU+mémoire) interconnectés Meilleure performance avec allocation proche Affecte l ordonnanceur, bien sûr Lors du remplacement de page, choisir une frame proche Stefan Monnier IFT-2245 33

Thrashing S il y a trop peu de mémoire physique Chaque page-fault évince une page dont aura bientôt besoin CPU sous-utilisé Sous utilisation du CPU peut inciter à lancer plus de programmes! Le système peut paraître figé pendant plusieurs minutes Stefan Monnier IFT-2245 34

Pagination et thrashing Pagination marche parce que: Exécution migre de localité à localité Localités peuvent se chevaucher On peut revenir à une localité Thrashing Taille de localité > mémoire Peut se limiter aux processus coupables Stefan Monnier IFT-2245 35

Modèle du working-set = fenêtre du working-set: un certain intervalle de temps Un trop petit ne couvre pas toute la localité Un trop grand sera pessimiste dépend typiquement du temps d accès au disque Peut se mesurer en instructions ou en accès mémoire W SS i = Nombre de pages référencées par P i pendant D = ΣW SS i : Taille totale des localités courantes D > Mémoire thrashing: il faut suspendre des processus Stefan Monnier IFT-2245 36

Fréquence de page-fault Autre approche, plus directe, basée sur un remplacement local Décide d une fréquence acceptable de page-faults Mesure fréquence de page faults pour chaque processus Fréquence trop basse: diminuer la mémoire allouée au processus Fréquence trop élevée: augmenter la mémoire allouée Se fréquence trop élevée, mais plus de mémoire disponible: suspendre Stefan Monnier IFT-2245 37

Working-set et fréquence de page-faults Stefan Monnier IFT-2245 38

Fichiers memory-mapped Rendre un fichier accessible comme une partie de la mémoire Réutilise la pagination sur demande Modifications écrites sur le disque par le code de pagination Partage efficace d un fichier via mmap entre processus Peut accélérer exécution en évitant appels systèmes read et write Moins de contrôle sur les accès disque; pas d accès asynchrone Stefan Monnier IFT-2245 39

Exemple de memory mapping Stefan Monnier IFT-2245 40

Allocation de mémoire noyau La mémoire du noyau est traitée différemment Mémoire des processus gérée par page Mémoire du noyau gérée par objet, comme avec malloc Certaines adresses sont spéciales Certaines parties doivent être contiguës Stefan Monnier IFT-2245 41

Allocation style buddy Utilise une zone mémoire contiguë de taille fixe Cette zone est divisée successivement par 2 Chaque chunk occupe un espace de taille 2 n objet < 1 / 2 chunk divise Avantage: facile de re-réunir des petits blocs (coalesce) Inconvénient: fragmentation, interne et externe Stefan Monnier IFT-2245 42

Allocation style Slab Slab: une ou plusieurs pages, physiquement contiguës Cache: ensemble de slabs Chaque cache dédié à un type (ou une taille) d objets Cache grandi par slab, divisée en objets (initialement libres) Utilise le fait que les tailles d objets ne sont pas aléatoires Peu de fragmentation, en pratique Efficace, pas besoin de coalesce Stefan Monnier IFT-2245 43

La taille des pages est parfois imposée, mais pas toujours Facteurs de choix: Fragmentation: mieux vaut des petites pages Taille de la table: mieux vaut de grosses pages Efficacité du TLB: mieux vaut de grosses pages Localité: mieux vaut des petites pages Résolution: mieux vaut des petites pages Coût I/O et page-faults: mieux vaut de grosses pages En général, les tailles devraient augmenter peu à peu Taille des pages Stefan Monnier IFT-2245 44

Prépagination Charger certaines pages d un processus à l avance Pour éviter page-faults au démarrage Gaspillage si ces pages ne sont pas utilisées Gaspillage d I/O peut être mineur (accès séquentiel) Minimiser le gaspillage de mémoire: candidats à l éviction Clustering: lors d un page fault, amener tout un cluster Forme de prefetching Simule des pages plus grandes, sans les inconvénients Stefan Monnier IFT-2245 45

TLB reach TLB reach: quantité de mémoire accessible depuis le TLB TLB reach = taille TLB taille de page Si trop petit, beaucoup de TLB-misses Utiliser des superpages là où c est possibles Stefan Monnier IFT-2245 46

Gérer la localité int data[128][128]; Quel accès choisir: for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i, j] = 0; ou: for (j = 0; j < 128; j++) for (i = 0; i < 128; i++) data[i, j] = 0; Beaucoup de manières d influencer la performance d un programme Stefan Monnier IFT-2245 47