Gestion Mémoire Paginée

Documents pareils
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

Partie 7 : Gestion de la mémoire

Structure fonctionnelle d un SGBD

Architecture des ordinateurs

GESTION DE LA MEMOIRE

Systemes d'exploitation des ordinateurs

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

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

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

INSTALLATION ET CONFIGURATION DE HYPER V3

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

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

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

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Introduction aux SGBDR

Conventions d écriture et outils de mise au point

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

SYSTÈME DE GESTION DE FICHIERS

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

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

(Third-Man Attack) PASCAL BONHEUR PASCAL 4/07/2001. Introduction. 1 Domain Name Server. 2 Commandes DNS. 3 Hacking des serveurs DNS

Gestion de la mémoire

Cours A7 : Temps Réel

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

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

Mise en place Active Directory / DHCP / DNS

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

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

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Concept de machine virtuelle

Cours de Systèmes d Exploitation

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel


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

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

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

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

L AUTOMATISME LE SIGNAL

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours d initiation à la programmation en C++ Johann Cuenin

Séquencer une application

Consolidation de stockage

Mise en oeuvre TSM 6.1

I00 Éléments d architecture

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Windows Internet Name Service (WINS)

Utiliser Glary Utilities

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

Optimisations des SGBDR. Étude de cas : MySQL

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Introduction à MATLAB R

Représentation des Nombres

Rappels d architecture

Bases de programmation. Cours 5. Structurer les données

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Initiation à la sécurité

Génie Logiciel avec Ada. 4 février 2013

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

1.1 L EXPLORATEUR WINDOWS

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)

Architecture matérielle des systèmes informatiques

FONCTION DE DEMANDE : REVENU ET PRIX

Gestion des sauvegardes

IFT2880 Organisation des ordinateurs et systèmes

COACH-II Manuel d utilisation

Documentation RBS Change E-Commerce Core

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

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

4 Exemples de problèmes MapReduce incrémentaux

Prise en main. Prise en main - 0

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Optimisation de 4D Server et 4D Web Server. Résumé. 4D Notes techniques

Comparatif entre Matrox RT.X2 et Adobe Premiere Pro CS3 (logiciel seul)

Feuille TD n 1 Exercices d algorithmique éléments de correction

Système de Gestion de Fichiers

ASR1 TD7 : Un microprocesseur RISC 16 bits

WinBooks Logistics 5.0

Réseaux grande distance

Clients et agents Symantec NetBackup 7

1. Introduction Sauvegardes Hyper-V avec BackupAssist Avantages Fonctionnalités Technologie granulaire...

Compilation (INF 564)

Oracle Maximum Availability Architecture

Matériel & Logiciels (Hardware & Software)

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

Chap III : Les tableaux

Transcription:

Gestion Mémoire Paginée 1

Plan Principe de la pagination Comportement des programmes Notion défaut de page Politiques de remplacement de pages 2

Espace Virtuel Paginé Mémoire centrale découpée en cases de taille fixe Espace virtuel divisé en pages de même taille Chaque page définie dans espace virtuel associée à une case de mémoire centrale Opération d'association dynamique 2 pages contigües ne sont pas nécessairement rangées dans des cases contigües Conversion adresse virtuelle en adresse physique Réalisé par Memory Management Unit (MMU) 3

Espace Virtuel Paginé Espace Virtuel MMU Translation Lookaside Buffer Mémoire Physique page case pte 4

Memory Management Unit MMU décompose adresse virtuelle en 2 parties Partie déplacement dans la page (de valeur maximale égale à la taille de page) Partie numéro de page interprétée par MMU pour obtenir adresse de case correspondante Adresse physique = adresse case déplacement Numéro de page Index direct dans table de pages structure "arborescente" multi niveaux 2 niveaux dans MMU Intel Page Directory + Page Tables 5

Page Table Entry Page Table Entry (PTE) décrit une page d'un espace virtuel Adresse case physique associée, si valide Bits de contrôle Validité (si une case physique associée) Droits d'accès (lecture, écriture, exécution) Bits de status Page accédée Page modifiée 6

MMU Intel Adresse virtuelle 31 22 21 12 11 10 bits 10 bits 12 bits Directory Index Page Table Index Page Offset 0 4KB page 0 0 cr/st cr/st 32 bit word 1023 Directory Page 1023 CR3 Directory Address cr/st cr/st = control & status Page Table Entry (PTE) Translation Lookaside Buffer (TLB) = cache for PTEs Mémoire physique 7

Défaut de page Si PTE(page) présente dans TLB, MMU génère adresse physique et met à jour bits d'accès et de modification (si écriture) dans PTE Sinon, MMU provoque déroutement vers OS : a)vérifier validité adresse virtuelle b)déterminer page manquante (type, localisation) c)trouver case libre en mémoire centrale, en libérant une case occupée si nécessaire d)provoquer le chargement de la page manquante dans la case précédemment allouée, si nécessaire e)mettre à jour la PTE de la page 8

Déterminer page manquante Régions espace adressage décrivent type et localisation des pages correspondantes : Code -> [offset] fichier binaire du programme exécuté Données initialisées (avant modification) -> idem Piles, données globales, tas -> espace de swap en mémoire dite secondaire Informations gérées par OS dans le contexte des processus 9

Avantages & Inconvénients Résoud problème de fragmentation de la mémoire centrale et de l'espace de va-et-vient Gestion dynamique fine et efficace Autres avantages Partage de pages entre espaces virtuels Permet de "mapper" des fichiers dans espace virtuel d'un processus Inconvénients Mécanisme matériel complexe Fragmentation interne : pages non complètement occupées 10

Plan Principe de la pagination Comportement des programmes Notion défaut de page Politiques de remplacement de pages 11

Comportement des Programmes Référence à une page Accès à un emplacement de la page Plusieurs références distinctes par instruction page(s) contenant l'instruction elle-même page(s) contenant les opérandes de l'instruction Comportement d'un programme Temps virtuel dont l'écoulement est repéré par ensemble des instructions successives exécutées Chaîne de références : séquence des pages référencées successivement durant son exécution 12

Propriétés Chaînes de Références Non-uniformité Répartition du nombre de références à chaque page n'est pas uniforme Fraction faible des pages cumule part importante du nombre total de références Localité Répartition des références stable sur courte période Séquences d'instructions d'adresses successives, parcours de boucles Manipulent données «proches» : champs d'une structure, éléments successifs d'un tableau, etc 13

Phases & Transitions (1) Déroulement d'un programme défini par succession de phases séparées par transitions Phase P i Période de comportement stable et prévisible Ensemble de pages S i Intervalle de temps T i Transitions entre phases S i et S i+1 Période de comportement plus erratique durant laquelle les références sont dispersées 14

Phase & Transitions (2) Majeure partie temps virtuel total occupée par phases de [relative] longue durée Ensemble périodes de transition fraction faible du temps virtuel total d'un programme Importantes par dispersion des références Ensemble de travail («working set») W(t, T) = pages référencées entre t et t T Pages de W(t, T) ont plus grande probabilité d'être référencées à l'instant t+1 si T «bien choisie» T <= T i quand programme est dans phase P i 15

Plan Principe de la pagination Comportement des programmes Notion défaut de page Politiques de remplacement de pages 16

Notion de Défaut de Page Programmes partiellement chargés en mémoire Chargement des pages «à la demande» Défaut de page Référence à une page absente de la mémoire centrale Page «fautive» doit être chargée en mémoire Si pas de case disponible, remplacement de page : page chargée doit reprendre la case allouée à une page déjà présente appellée «page victime» Durée de vie = intervalle de temps moyen entre 2 défauts de page successifs 17

Observation Défaut de Page Taille mémoire optimale pour un programme Lorsqu'on diminue la taille mémoire : Nombre de défauts de page augmente lentement, puis explose au dessous d'une taille minimum La durée de vie du programme diminue, puis chute rapidement en dessous de la taille minimum Phénomène d'écroulement («trashing») Forte croissance du taux de remplacement de pages Chute du taux d'utilisation du processeur 18

Traitement Défaut de Page Si PTE(page) présente dans TLB, MMU : Translate adresse virtuelle -> adresse physique Met à jour bit d'accès, bit de modification Sinon, MMU provoque déroutement de défaut de page a) Déterminer page «fautive» (type, localisation) b) Trouver case libre en mémoire centrale Si nécessaire, libérer une case occupée après avoir éventuellement sauvegardé son contenu c) Charger contenu page fautive dans la case allouée d) Mettre à jour PTE de la page fautive 19

Localisation d'une page Ensemble des régions de l'espace d'adressage de chaque processus géré par OS Région associée à objet en mémoire secondaire Code -> fichier binaire du programme exécuté Données initialisées (avant modification) -> idem Piles, données globales, tas -> espace de swap Espace de swap : partie de mémoire secondaire Structuré en blocs de la taille d'une page Géré comme extension mémoire centrale Utilisé pour stockage temporaire de pages modifiées 20

Localisation page fautive pile adresses invalides tas bss data code Chercher région contenant la page fautive Si pas trouvée, adresse invalide Sinon, déterminer localisation de la page Code, données Position relative page dans région -> position dans fichier binaire Autres régions : Si 1 er accès : page sans contenu prédéfini Sinon, page -> numéro de bloc dans espace de swap 21

Politiques allocation de page Partition fixe Nombre fixe de cases attribué à chaque processus Peut-être différent selon le nombre de processus Partition variable Nombre de cases attribuées à chaque processus varie avec le temps Seul le nombre de cases est significatif, pas l'identité des cases allouées 22

Plan Principe de la pagination Comportement des programmes Notion défaut de page Politiques de remplacement de pages 23

Politiques remplacement de page Remplacement local Page victime choisie dans pages déjà allouées au processus «fautif» Remplacement global Page victime choisie parmi ensemble des pages chargées en mémoire centrale Choix de la page victime selon critéres de remplacement indépendants local/global 24

Critères de remplacement (1) Page «propre» Non modifiée depuis son chargement Possèdant une copie conforme en mémoire secondaire => pas besoin d'être sauvegardée Page «sale» Page modifiée depuis son chargement Doit être sauvegardée avant remplacement Utilise bit modification de PTE entretenu automatiquement par MMU 25

Critères de remplacement (2) Page partagées par plusieurs processus Choisir page utilisée par un seul processus avant page partagée par plusieurs processus Par généralisation, choisir page la moins partagée Pages «verrouillées» en mémoire centrale Protégées contre remplacement Pages utilisées comme tampons entrées/sorties (protection temporaire) Pages du système (protection permanente) 26

Remplacement Optimal (MIN) Choisir victime parmi pages plus jamais référencées ultérieurement Par généralisation, choisir page qui fera l'objet de la référence la plus tardive Irréalisable car suppose connaissance de la suite de références à l'exécution Utilisé pour base de comparaison pour évaluer les autres algorithmes 27

Remplacement par ordre chronologique (FIFO) Choisir comme victime la page la plus anciennement chargée en mémoire centrale Très simple à réaliser, en entretenant une liste des cases par ordre de chargement des pages Moment de la prochaine référence à une page est en général indépendant du moment (passé) de chargement de la page Par généralisation, probabilités de référence à des pages chargées convergent avec leur temps de présence 28

Remplacement LRU (1) Ordre chronologique d'utilisation (Last Recently Used) Choisir comme victime la page ayant fait l'objet de la référence la plus ancienne Basé sur propriété de localité des programmes : pages récemment utilisées ont une probabilité plus élevée d'être utilisées dans un futur proche Implique d'ordonner les cases par «dates» de référence aux pages qu'elles contiennent 29

Remplacement LRU (2) Datation d'une page par compteur de référence Compteur intégré dans PTE et incrémenté par MMU à chaque référence Remis à zéro après avoir atteint valeur maximum => solution approchée du LRU Mécanisme trop coûteux au niveau matériel par rapport aux avantages fournis 30

Remplacement LRU (3) Solution «de la seconde chance» ou FINUFO («First In Not Used, First Out») Approximation du LRU Basé sur bit de référence intégré dans PTE et mis à 1 par MMU à chaque référence Cases ordonnées dans une liste circulaire Tête de liste (last_loaded) = case de la dernière page chargée 31

Remplacement LRU (4) case = suivant(last_loaded); /* dans liste */ tantque ( bit_référence(case)!= 0 ) faire bit_référence(case) = 0; case = suivant(case); /* dans liste */ fin victime = case; last_loaded = victime; Cherche première case non référencée Donne seconde chance aux pages référencées parcourues de ne pas être choisies comme victime Appellé aussi algorithme de l'horloge («clock») 32

Évaluation avec partitions fixes Évaluation des méthodes de remplacement basé sur nombre total de défauts de page Classement par performances décroissantes MIN, LRU, FINUFO, FIFO Influence de taille mémoire largement supérieure à celle de méthode de remplacement => augmenter nombre de cases attribuées à un programme pour augmenter ses performances 33

Remplacement avec partitions variables Préférable d'adapter la mémoire allouée à un programme en fonction de son comportement => augmenter nombre de cases attribuées à un programme pour augmenter ses performances Allouer nombre de cases minimum compatible avec taux acceptable de défauts de pages Méthode basée sur «working set» Méthode basée sur mesure du taux de défauts de page («Page Fault Frequency», ou PFF) 34

Méthode du Working Set OS gère working set par processus Page victime choisie Parmi pages de working set non présentes en mémoire Puis dans working set de processus les moins prioritaires Mémoire allouée à un processus si assez de cases libres pour son working set Complexe car impose de déterminer et maintenir working set de chaque processus 35

Méthode du PFF Mesure taux de défauts de page des processus Si taux dépasse un seuil supérieur, OS attribue case supplémentaire au processus Inversement, si taux tombe en dessous d'un seuil inférieur, OS retire une case Simple à réaliser avec bit de référence par page, pour déterminer case à retirer 36