Mémoire virtuelle. Abdelouahed Gherbi Hiver 2014

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

Architecture des ordinateurs

Structure fonctionnelle d un SGBD

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

Systemes d'exploitation des ordinateurs

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

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

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

GESTION DE LA MEMOIRE

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Concept de machine virtuelle

Séquencer une application

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

Initiation à la sécurité

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

Technologie SDS (Software-Defined Storage) de DataCore

Fiche Produit. Plateforme de sauvegarde en marque blanche Kiwi Business

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Système de Gestion de Fichiers

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Introduction aux SGBDR

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

environnements SQL Server?

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

GPA770 Microélectronique appliquée Exercices série A

Gestion de la mémoire

Limitations of the Playstation 3 for High Performance Cluster Computing

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

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Le e s tocka k ge g DAS,NAS,SAN

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

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

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Représentation des Nombres

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

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

Protection des données avec les solutions de stockage NETGEAR

Les technologies du Big Data

MSP Center Plus. Vue du Produit

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

PG208, Projet n 3 : Serveur HTTP évolué

VMWare Infrastructure 3

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

Plan de cette matinée

Cours A7 : Temps Réel

Service Cloud Recherche

Réseaux grande distance

Virtualisation & Sécurité

Xen. Quelques notes autour de Xen

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

Oracle Maximum Availability Architecture

ManageEngine EventLog Analyzer. Les bonnes critiques et recommandations

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

Conservation des documents numériques

2 disques en Raid 0,5 ou 10 SAS

Mise en oeuvre TSM 6.1

Concepts et systèmes de stockage

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Comment installer la configuration des salles sur son ordinateur personnel?

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

Les méthodes de sauvegarde en environnement virtuel

Pourquoi OneSolutions a choisi SyselCloud

Les liaisons SPI et I2C

Technologie de déduplication de Barracuda Backup. Livre blanc

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

Exigences système Edition & Imprimeries de labeur

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

Clients et agents Symantec NetBackup 7

La Continuité d Activité

Caches adaptables et applications aux systèmes de gestion de données répartis à grande échelle

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

SYSTÈME DE GESTION DE FICHIERS

Conditions Générales de Vente du Services d Hébergement Mutualisé Behostings.be

QUEL HEBERGEMENT POUR MON SITE WEB?

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

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

Tout d abord les pré-requis : Au menu un certain nombre de KB

Adopter une approche unifiée en matière d`accès aux applications

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Linux Partition Mini-HOWTO

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

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

1 Introduction au codage

Sommaire. AIDAUCLIC BACKUP : Solution de sauvegarde en ligne 3. Quelles problématiques résout la solution? 3. Fonctionnement de la solution 4

Optimisations des SGBDR. Étude de cas : MySQL

Présentation OpenVZ. Marc SCHAEFER. 9 janvier 2009

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

«Commande» se rapporte à un bon de commande ou à une commande créée sur un site Internet Interoute.

Transcription:

Mémoire virtuelle Abdelouahed Gherbi Hiver 2014 1

Plan Introduction Pagination Pagination à la demande Algorithme de remplacement de pages Écroulement 2

Mémoire virtuelle Introduction Technique qui permet l exécution de processus qui ne sont pas complétement chargés en mémoire physique Avantage Les programmes peuvent être bien plus larges que la mémoire physique La mémoire virtuelle crée une abstraction de la mémoire principale qui consiste en un tableau de stockage extrêmement large Libère le programmeur de la limitation de la mémoire La mémoire virtuelle n est pas facile à implémenter et peut causer une dégradation substantielle de la performance si elle est mal utilisée 3

Pagination Pagination : Méthode de gestion de la mémoire Permet que l espace d adresses physiques d un processus d être non contigü (discontinu) La mémoire physique est divisée en blocs de taille fixes appelés cadres de pages La taille est une puissance de 2 entre 512 bytes et 16 MB L image mémoire d un programme (mémoire logique) est divisée en blocs de la même taille appelés pages Pour exécuter un programme de n pages, on a besoin de trouver n cadres libres pour charger les pages du programme Modèle de mémoire paginée [1] Utiliser une table de pages pour translater les adresses logiques en adresses physiques (mapping) La pagination élimine le problème de fragmentation externe mais pas celui de la fragmentation interne 4

Pagination Support matériel nécessaire pour la pagination [1] 5

Pagination Translation d adresse L adresse générée par la CPU (adresse logique) est divisée en : Numéro de page (p) utilisé comme index dans la table de page d un processus. Cette table de page contient l adresse de base de chaque cadre de page (numéro du cadre) contenant la page correspondante en mémoire physique Décalage dans la page (offset) (d) Le déplacement par rapport au début de la page Combinée avec le numéro du cadre (adresse de base du cadre) pour former l adresse physique envoyée à l unité de mémoire Pour un espace d adresses 2 m et une taille de page 2 n 6

Pagination Exemple Soit une machine avec une adresse virtuelle sur 16bits Numéro de page : 4 bits Décalage dans une page : 12 bits Une adresse logique (virtuelle) 8196 0010000000000100 en binaire 2004 en hexa La translation de l adresse virtuelle en adresse logique 7

Pagination Exercices 01 et 02 8

Implémentation de la table des pages Le système d exploitation doit allouer une table de pages pour chaque processus Un pointeur vers la table des pages d un processus est gardé dans le PCB L implémentation matérielle de la table de pages peut se faire de plusieurs façons Dans un ensemble dédié de registres de la CPU Très rapide Espace limite (pas adéquat pour les pages de grandes tailles) En mémoire centrale Plus d espace pour accommoder des grandes tables de pages Quel est le problème d après vous avec cette approche? 9

Implémentation de la table des pages Le système d exploitation doit allouer une table de pages pour chaque processus Un pointeur vers la table des pages d un processus est gardé dans le PCB L implémentation matérielle de la table de pages peut se faire de plusieurs façons Dans un ensemble dédié de registres de la CPU Très rapide Espace limite (pas adéquat pour les pages de grandes tailles) En mémoire centrale Plus d espace pour accommoder des grandes tables de pages Plus lente que les registres Pour un accès à un place i en mémoire, on besoin de deux accès mémoire: Un accès à la table de page et un accès pour à i une fois l adresse physique déterminée Solution? 10

Implémentation de la table des pages Le problème du double accès à la mémoire peut être résolu En utilisant une mémoire cache de recherche rapide Une petite mémoire associative qui permet de faire une recherche parallèle Appelée Translation look-aside buffers (TLB) Le TLB est utilisé comme suit : Le TLB contient seulement quelques entrées de la table de page Pour une adresse logique générée par la CPU Le numéro de page correspondant est présenté au TLB Si le numéro est trouvé (TLB hit) numéro de cadre immédiatement disponible Si le numéro de page n est pas trouvé (TLB miss) : La table de page en mémoire doit être utilisée Le TLB est mis à jour 11

Protection La protection de la mémoire avec la pagination est implémentée en associant des bits de protection avec chaque cadre Un bit définit si la page est en mode Read-Write, Read-Only, execute, etc. Un bit Valid-Invalid est attaché à chaque entrée de la table des pages valid indique que la page correspondante est dans l espace d adresses du processus et donc une page légale invalid indique que la page n est pas dans l espace du processus est don illégale Exemple : Un système avec une adresse logique de 14-bits et une taille de page 2KB 11 bits pour le déplacement 3 bits pour le numéro de pages : 8 pages au total Un programme de taille 10468 bytes (5 x 2048 + 228) utilise seulement 6 pages (page 0 à page 5) Toute adresse générée pat le CPU qui réfère aux pages 6 et 7 sont illégales Bit de protection Valide- Invalide dans la table de page [1] 12

Structure des tables de pages Les ordinateurs modernes supportent des espaces d adresses très larges (2 32 à 2 64 ) Les tables de pages sont donc très larges Exemple Un système avec des adresses logiques de 32-bits Taille de page : 4KB (12bits) Table de pages comporte 2 32 /2 12 = 2 20 =1M entrées Si chaque entrée est de 4 bytes Table de page de 4MB! Il faut partager une telle page en plusieurs parties Table de page elle même paginée Table de pages à deux niveaux Table de page à deux niveaux[1] 13

Structure des tables de pages Une adresse logique (sur une machine 32 bits avec une page de taille 1K ) est divisée en : Un numéro de page de 22 bits Un décalage dans la page de 10 bits Comme la table de pages est paginée, le numéro de page est aussi divisé en : Un index dans la table de page du premier niveau 12 bits Un décalage dans une page de la table de page 10 bits Donc une adresse logique est comme suit : p1 est un index dans la table du premier niveau (the outer page table) p2 est un décalage dans une page de la table de page Translation d adresses avec une table de pages à deux niveaux [1] 14

Pagination à la demande Ce n est pas nécessaire de charger un programme entièrement en mémoire Stratégie alternative : Charger une page en mémoire seulement quand c est nécessaire Moins d entrées/sorties Temps de réponse amélioré Plus de programmes en mémoire (meilleure utilisation de la CPU) Lorsqu une page est demandée, on utilise le bit de validité Référence valide : page en mémoire; on continue Référence invalide : page non présente en mémoire (défaut de page) Approche paresseuse de chargement de page en mémoire (lazzy swapper ou lazzy pager) Table de page avec certaines pages non chargées en mémoire [1] 15

Défaut de page Qu est ce qui arrive si un processus essaye d accéder à une page non présente en mémoire? L accès au page non présente en mémoire (invalide) cause un défaut de page Un déroutement (interruption logicielle) vers l OS Traitement du défaut de page par l OS 1. OS vérifie la cause du déroutement en consultant la table des pages : Référence valide : page non présente (défaut de page) 2. Trouver un cadre de page libre 3. Charger la page du disque vers le cadre 4. Mise à jour de la table des page 5. Mettre le bit de validation à valide 6. Redémarrer l instruction qui a causé le défaut de page 16

Exercice 03 et 04 Pagination à la demande 17

Remplacement de page Qu est ce qui arrive si l OS ne trouve pas un cadre libre dans la mémoire lorsqu un processus essaye d accéder à une page non présente en mémoire? 18

Remplacement de page Qu est ce qui arrive si l OS ne trouve pas un cadre libre dans la mémoire lorsqu un processus essaye d accéder à une page non présente en mémoire? Utiliser un algorithme de remplacement de page pour sélectionner un page victime Transférer la page victime de la mémoire physique vers le disque Transférer la page voulue du disque dans le cadre libre et mettre à jour la table des pages Est ce que la page victime doit absolument être sauvegardée sur le disque? 19

Remplacement de page Le problème de remplacement de page consiste à sélectionner un cadre dont la page sera retirée de la mémoire pour faire de la place à une autre page référencée par un processus Certaines cadres ne peuvent pas être sélectionnés comme victimes Pourquoi? Exemples? 20

Remplacement de page Le problème de remplacement de page consiste à sélectionner un cadre dont la page sera retirée de la mémoire pour faire de la place à une autre page référencée par un processus Certaines cadres ne peuvent pas être sélectionnés comme victimes Cadres réservés pour le noyau du OS Cadres contenant des tampons d E/S Comment sélectionner un cadre victime? Utiliser un algorithme de remplacement de page 21

Remplacement de page Critères d évaluation des algorithmes de remplacement de pages Il doit minimiser le nombre de défaut de pages Il doit être efficace (car il est souvent exécuté) Quelle page sélectionner? Page qui ne sera plus utilisée ou sera utilisée le plus tard possible? Page qui n est pas souvent utilisée? Page qui est en mémoire depuis un certain temps? 22

Remplacement de page On évalue un algorithme de remplacement de page en l exécutant sur une séquence particulière de références de pages (séquence de références) et on calcul le nombre de défaut de page pour la séquence Exemple : Dans les exemples qui suivent on utilise la séquence de références suivante : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 On s attend logiquement que le nombre de défaut de pages diminue avec l augmentation des cadres de pages 23

Remplacement de page Algorithme du remplacement de pages FIFO Algorithme de remplacement le plus simple La page la plus ancienne est celle est qui remplacée Simple à comprendre et à implémenter Performance de FIFO n est pas toujours bonne Exemple On considère notre séquence de référence : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 On exécute l algorithme de remplacement FIFO avec 3 cadres de pages L exécution de FIFO donne 15 défauts de pages pour cette séquence 24

Remplacement de page On considère la séquence : 1,2,3,4,1,2,5,1,2,3,4,5 On exécute l algorithme de remplacement FIFO sur cette séquence de références de pages Avec 3 cadres de mémoires Avec 4 cadres de mémoires Qu est ce qu on constate? 25

On considère la séquence : 1,2,3,4,1,2,5,1,2,3,4,5 Remplacement de page Exécution de FIFO avec 3 cadres On obtient 9 défaut de pages Exécution de FIFO avec 4 cadres On obtient 10 défaut de pages Anomalie de Belady 26

Remplacement de page L anomalie de Belady a motivé la recherche d un algorithme de remplacement optimal Algorithme qui donnerait le plus faible taux de défauts de pages Ne souffre pas de l anomalie de Belady Un tel algorithme existe Appelé OPT ou MIN «Consiste à remplacer la page qui ne sera pas utilisée pour la plus longue période de temps.»[1] En d autres termes qui sera utilisée le plus tard possible Cependant, l algorithme optimal est pratiquement impossible à implémenter. Pourquoi? Ca vous rappelles quelque chose? Il est utilisé pour des études de comparaisons des algorithmes de remplacement 27

Remplacement de page Algorithme de remplacement optimal On considère notre séquence de références : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 On utilise 3 cadres de pages On obtient : 9 défauts de pages Combien de défauts de pages on obtient avec l algorithme optimal pour la séquence 1,2,3,4,1,2,5,1,2,3,4,5 en utilisant 3 cadres de pages? 28

Remplacement de page Algorithme de remplacement du moins récemment utilisée LRU (Least recently used) Algorithme optimal est impossible à implémenter mais peut être approximer On utilise le passé récent comme approximation du future proche On remplace la page qui n aurait pas été employée pendant la plus longue période On considère notre séquence de référence : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 On utilise 3 cadres de pages On obtient : 12 défauts de pages 29

Remplacement de page Exercice 05 30

Écroulement Quand un processus n a pas assez de pages en mémoire, le taux de défaut de page est très élevé. Ceci conduit à : Faible utilisation de la CPU OS pense qu il doit augmenter le degré de multiprogrammation pour augmenter l utilisation de la CPU D autres processus sont ajoutés au système Écroulement (thrasing) : un processus est plus occupé à faire du swapping de pages que du traitement utile On peut limiter le risque d écroulement en surveillant le nombre de défauts de pages provoqués par un processus. Si un processus provoque trop de défauts de pages (au-dessus d une limite supérieure) on lui allouera plus de pages ; audessous d une limite inférieure, on lui en retirera. S il n y a plus de cadres disponibles et trop de défauts de pages, on devra suspendre un des processus. 31

Références [1] SILBERSCHATZ, A. et P.B. GALVIN, Operating System Concepts. 8 th Edition, Addison Wesley. 32