Chapitre 5 Gestion de la 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

GESTION DE LA MEMOIRE

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

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

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

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

Système de Gestion de Fichiers

Gestion de la mémoire

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

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

Gestion répartie de données - 1

Introduction aux SGBDR

Systemes d'exploitation des ordinateurs

Chapitre 10 Arithmétique réelle

Conventions d écriture et outils de mise au point

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

Initiation à la sécurité

Présentation du module Base de données spatio-temporelles

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

Initiation au HPC - Généralités

Concept de machine virtuelle

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Architecture des ordinateurs

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

IV- Comment fonctionne un ordinateur?

Technologie SDS (Software-Defined Storage) de DataCore

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Structure fonctionnelle d un SGBD

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

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

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

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

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

SYSTÈME DE GESTION DE FICHIERS

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Sécurité et fiabilité des SI : Chiffrement de disques durs

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

La carte à puce. Jean-Philippe Babau

Introduction à la Programmation Parallèle: MPI

Métriques de performance pour les algorithmes et programmes parallèles

Compilation (INF 564)

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Notion de base de données

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

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

Performances d un système virtualisé avec VMware ESX-ESXi

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

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Licence Sciences et Technologies Examen janvier 2010

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Fiche Technique. MAJ le30/03/2011

Effacement des supports de données

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Systèmes d exploitation

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

La technologie Java Card TM

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Utiliser Glary Utilities

Exercices INF5171 : série #3 (Automne 2012)

Administration de Parc Informatique TP07 : Installation de Linux Debian

L informatique en BCPST

Contributions à l expérimentation sur les systèmes distribués de grande taille

CH.3 SYSTÈMES D'EXPLOITATION

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

Cours A7 : Temps Réel

PANORAMA DES MENACES ET RISQUES POUR LE SI

Éléments d'architecture des ordinateurs

L exclusion mutuelle distribuée

Démarrer et quitter... 13

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Petit guide des sous-réseaux IP

Tests de performance du matériel

Programmation C. Apprendre à développer des programmes simples dans le langage C

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

gestion des processus La gestion des processus

LES SYSTÈMES DE FICHIERS

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Comité conseil en matière de prévention et sécurité des personnes et des biens Octobre 2013

NOTIONS DE RESEAUX INFORMATIQUES

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

PPE 1 PRISE EN MAIN DE VMWARE VSPHERE 5.5 & CONFIGURATION D UNE MACHINE VIRTUELLE

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

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Acquisition des données

Windows Server Chapitre 1: Découvrir Windows Server 2008

Transcription:

Chapitre 5 Gestion de la mémoire Jean Privat Université du Québec à Montréal INF3172 Principes des systèmes d exploitation Automne 2016 Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 1 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 2 / 42

Rôles du SE (rappel) Gestion des processus Gestion de la mémoire Gestion des fichiers Gestion des entrées-sorties Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 3 / 42

Objectifs Comprendre Comment la mémoire est gérée par le SE (et le matériel) Les algorithmes liés à la gestion de la mémoire (utilisables dans d autre contextes) Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 4 / 42

Mémoire La bonne mémoire est rapide est grande est bon marché est non volatile mais elle n existe pas (encore) En attendant Hiérarchie de mémoire caches, ram, disques Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 5 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 6 / 42

Gestionnaire de mémoire Une composante du SE dédiée Le gestionnaire de la mémoire Son rôle : gérer la ressource mémoire Entre processus Entre processus et SE Son outil principal : le processeur Chaque processeur édicte ses propres règles Et ça facilite pas les choses Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 7 / 42

Rôles du gestionnaire de la mémoire Allocation Trouver où loger un nouveau processus Satisfaire ses demandes de mémoire supplémentaire Libérer l espace des processus terminés Le tout sans gaspiller Protection Ne pas laisser un processus accéder ou corrompre la mémoire qui n est pas à lui Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 8 / 42

Mémoire et programmes Un programme est constitué d adresses Données (ex. lecture d une variable globale) Instructions (ex. appel de fonction) Qui décide de la valeur de ces adresses? Le compilateur et l éditeur de liens Le choix est-il immuable? Non, sinon adieu multi-programmation Un mécanisme est nécessaire pour translater les adresses Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 9 / 42

Relogement (ou relocation) Principe Un processus doit pouvoir être situé n importe où en mémoire (voire changer de place) Adresses virtuelles (ou relative) Le compilateur et éditeur de liens déterminent les adresses à partir de 0 Adresses réelles Un mécanisme matériel permet de passer de l adresse relative à l adresse réelle De nombreux mécanismes différents existent Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 10 / 42

base/limit Coté processeur Un registre processeur particulier : base Accessible en mode noyau uniquement Le MMU (Memory Managment Unit) fait adresse absolue = adresse relative + base Coté SE Adresse base connue pour chaque processus Base est correctement positionné lors des changement de contexte Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 11 / 42

base/limit - protection Coté processeur Un registre privilégié en plus : limit Le MMU fait si adresse relative>limit alors erreur (interruption) sinon adresse absolue = adresse relative + base Coté SE limit dans la table des processus veiller aux changement de contextes si interruption alors envoyer SIGSEGV au processus fautif Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 12 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 13 / 42

Problèmes d allocation Problème On a un espace mémoire On a des demande d allocation et de déallocation Comment faire ça au mieux? Applications Gestion de la mémoire par le SE Gestion de l espace disque par le SE Gestion du tas par les processus Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 14 / 42

Allocation contiguë des processus Chaque processus a un bloc de mémoire Les blocs sont alloués et déalloués au fur et à mesure Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 15 / 42

Allocation contiguë - Problèmes Problèmes en vrac Où allouer? Comment gérer l espace libre? Comment réduire la fragmentation? Que faire quand l espace est plein? Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 16 / 42

Gestion de la mémoire libre Impondérable Des structures de données pour gérer la mémoire libre Ces structures sont en mémoire Deux approches Table de bits Liste chaînée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 17 / 42

Table de bit Principe Un bit représente un bloc mémoire 0 = bloc libre ; 1 = bloc occupé Problèmes Recherche segment libre lent Fragmentation interne Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 18 / 42

Liste chaînée Principe Liste des segments libres et occupés Problèmes Plus compliqué Taille non bornée des données de gestion Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 19 / 42

Fragmentation Définition De l espace libre mais pas utilisable Fragmentation externe Les morceaux libres sont trop petits bien que la place totale libre est suffisante Solution : recompactage Fragmentation interne L unité allocation est le bloc Or tout bloc entamé est considéré comme utilisé Donc plus d octets que nécessaires sont alloués Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 20 / 42

Politiques d allocation Problème Comment choisit quelle zone libre à utiliser Approches Première zone libre (first fit) Zone libre suivante (next fit) Meilleure zone libre (best fit) Meilleur zone résiduelle (worst fit) Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 21 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 22 / 42

Pagination Idée Découper l espace mémoire réel en unités de taille fixe Les pages réelles (ou cadres) Découper l espace d adressage des processus en unités de même taille Les pages virtuelles Associer dynamiquement les pages virtuelles et les pages réelle (MMU) Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 23 / 42

Pagination - Exemple Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 24 / 42

Pagination MMU et SE Au niveau MMU Une adresse virtuelle est décomposée en Numéro de page Adresse dans la page (décalage ou offset) L association se fait par la table des pages Au niveau SE Une table des pages par processus Mettre à jour la table MMU lors des changement de contextes Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 25 / 42

Table des pages Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 26 / 42

Table des pages Où est la table? Registres? Non, la table est trop grande! Un gros bloc en mémoire? Où est ce bloc? Il faut aussi que le SE garde une table par processus (et que le changement de contexte ait un coup raisonnable) Solution (une parmi d autres) Registre privilégié pour l adresse de la table Tables d indirection en RAM Cache en MMU : Translation Lookaside Buffer Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 27 / 42

Pagination à deux niveaux Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 28 / 42

TLB et caches Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 29 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 30 / 42

Mémoire virtuelle Aller plus loin Pouvoir offrir à chaque processus une mémoire plus grande que celle disponible Idée Utiliser le disque comme mémoire supplémentaire Partition d échange ou swap Raisonnement Un processus n a pas forcément besoin d être entièrement en mémoire principale Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 31 / 42

Mémoire virtuelle et pagination Une page virtuelle peut être soit en mémoire (page réelle) ou sur le disque Lorsque la page est sur le disque, on la charge en RAM au besoin Lorsque la RAM est pleine, on migre des pages vers le disque Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 32 / 42

Mémoire virtuelle MMU et SE Coté MMU Un champ dans la table d indirection des pages indique si la page est en RAM ou pas Si on accède à une page hors RAM, une interruption défaut de page est lancée Coté SE Le swap doit être géré en plus du reste Un défaut de page implique le chargement de la page en mémoire Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 33 / 42

Défaut de page Lors d une interruption défaut de page Processus passé à bloqué Page manquante est localisée Demande chargement page manquante Possiblement, déchargement d une autre page L ordonnanceur est appelé Lorsque la page manquante est chargée Tables des pages mises à jour Processus demandeur est passe à prêt L ordonnanceur est appelé Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 34 / 42

Politique de gestion des pages Quelle pages migrer en swap? Problème bien étudié et bien généralisable Idées de base Idéal : Les pages non utilisées dans un futur proche migrent en swap Approximation : Les pages non utilisées récemment migrent en swap Approximation pire : Les pages anciennes migrent en swap Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 35 / 42

Algo naïf : FIFO Principe Un file des pages Les pages vieilles migrent en swap Problème : Anomalie de Belady 1,2,3,4,1,2,5,1,2,3,4,5 avec 3 et 4 cases Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 36 / 42

Algo de l horloge ou de la seconde chance Comme l algo naïf mais Un bit marque les page utilisés (MMU) Parcours circulaire des pages candidates Si son bit = 1, on le passe à 0 Si son bit = 0, on migre la page en swap Exemple 1,2,3,4,1,2,5,1,2,3,4,5 avec 3 et 4 cases Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 37 / 42

Plan 1 Mémoire, SE et processus 2 Problèmes d allocation 3 Pagination 4 Mémoire virtuelle 5 Pagination avancée Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 38 / 42

Pagination et protection Champs dans la page des pages Page invalide Lecture seule ou lecture/écriture Exécution ou non En cas de contrevenance Le processeur informe le SE par une interruption matérielle Le SE informe le processus fautif par un signal Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 39 / 42

Partage de pages Idée Un même cadre peut être associé à plusieurs dans plusieurs processus Applications Partage du code Partage des données en lecture seule Partage des bibliothèques Communication par mémoire partagée Implémentation des threads Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 40 / 42

Tables des inodes en mémoire Idée Les caches des fichiers peuvent êtres rendus visibles aux processus Applications Projection des fichiers en mémoire (mmap) Exécutables et bibliothèques Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 41 / 42

Copy-on-write Idée Deux pages différentes mais contenant les mêmes octets peuvent être associées à un même cadre Si l une des deux pages diffère, on duplique le cadre Application fork() efficace Implémentation Un cadre partagé est mit en lecture-seule Une écriture par un processus est interceptée par le SE qui duplique alors le cadre Jean Privat (UQAM) 05 Memoire INF3172 Automne 2016 42 / 42