CNAM. Gestion Mémoire. 2007/2008 Ivan Boule

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

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

Partie 7 : Gestion de la mémoire

GESTION DE LA MEMOIRE

Gestion de la mémoire

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

Structure fonctionnelle d un SGBD

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

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Conventions d écriture et outils de mise au point

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Introduction à la Programmation Parallèle: MPI

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

Cours A7 : Temps Réel

Concept de machine virtuelle

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Initiation à la sécurité

Système de Gestion de Fichiers

Systemes d'exploitation des ordinateurs

Rappels Entrées -Sorties

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

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

Optimisations des SGBDR. Étude de cas : MySQL

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

Rappels d architecture

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

Informatique Générale

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

Compilation (INF 564)

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

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

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

SYSTÈME DE GESTION DE FICHIERS

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

Exigences système Commercial & Digital Printing

INSTALLATION ET CONFIGURATION DE HYPER V3

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

La mémoire. Un ordinateur. L'octet. Le bit

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

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

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)

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

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

UE Programmation Impérative Licence 2ème Année

Exécutif temps réel Pierre-Yves Duval (cppm)

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

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Programmation impérative

1.1 L EXPLORATEUR WINDOWS

Introduction à la programmation concurrente

SRS DAY: Problématique liée à la virtualisation

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

Compression de Données - Algorithme de Huffman Document de Conception

Architecture des ordinateurs

Cours de Système : Gestion de Fichiers

IV- Comment fonctionne un ordinateur?

Codage d information. Codage d information : -Définition-

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

L exclusion mutuelle distribuée

NOTIONS DE RESEAUX INFORMATIQUES

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Tests de performance du matériel

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

Avira System Speedup. Guide

Ordinateurs, Structure et Applications

Plan du cours. Historique du langage Nouveautés de Java 7

REALISATION d'un. ORDONNANCEUR à ECHEANCES

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Documentation RBS Change E-Commerce Core

Utiliser Glary Utilities

Les chaînes de caractères

Clients et agents Symantec NetBackup 7

Programmation parallèle et distribuée

Démarrer et quitter... 13

Prise en main. Prise en main - 0

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

Cours Programmation Système

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)

Chapitre 4 : Les mémoires

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

Le langage C. Séance n 4

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

nom : Collège Ste Clotilde

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

Chapitre 3 : Système de gestion de fichiers

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Transcription:

Gestion Mémoire 1

Plan Rôle de la mémoire Espace d'adressage Allocation régions mémoire de tailles variables Gestion de la mémoire centrale par zones Gestion de la mémoire centrale par pagination 2

Rôle de la mémoire Stocker instructions et données des programmes exécutés par le processeur Repérer les objets par leur adresse dans la mémoire Espace d'adressage ensemble des unités mémoire (octets) individuellement addressables depuis le CPU Mécanisme(s) de construction de l'adresse de chaque unité de l'espace 3

Unités mémoire Unités adressables octet de 8 bits (char) mot de 16 bits (short) mot de 32 bits (int) mot de 64 bits (long long) Alignement multiple de la taille Non imposé (Intel, PowerPC) mais plus efficace Imposé sinon exception (Sparc) 4

Représentation alignée struct test_t { int a; char b; short c; char d; int e; }; struct test_t test = {11, 22, 33, 44, 55};.globl test.data.align 4.type test, @object.size test, 16 test:.long 11.byte 22.zero 1.value 33.byte 44.zero 3.long 55 5

Avec attribut " packed " struct test_t { int a; char b; short c; char d; int e; } attribute (( packed )); struct test_t test = {11, 22, 33, 44, 55};.globl test.data.type test, @object.size test, 12 test:.long 11.byte 22.value 33.byte 44.long 55 6

Plan Rôle de la mémoire Espace d'adressage Allocation régions mémoire de tailles variables Gestion de la mémoire centrale par zones Gestion de la mémoire centrale par pagination 7

Espace d'adressage Espace d'adressage linéaire Adresse = valeur entre 0 et 2 n - 1 4 giga-octets avec adresse sur 32 bits Espace d'adressage segmenté ensemble d'espaces linéaires disjoints adresse = (numéro segment, position dans segment) (dernière position S) + 1 première position(s + 1) segment instructions, données globales, pile 8

Programme et espace adressage Objets d'un programme fonctions, variables, constantes désignés par un nom symbolique unique taille des objets calculée par compilateur éditeur de liens attribue position absolue (adresse) des objets dans espace d'adressage Taille et adresses des instructions et des données stockés dans programme binaire 9

Espace d'adressage physique Inclut mémoire centrale + espace d'e/s Adresses objets = adresses physiques Simple Premiers ordinateurs Petits systèmes enfouis 2 inconvénients Adresses des programmes inter-dépendantes Espace d'adressage limité à la taille de la mémoire physique disponible 10

Espace d'adressage Virtuel Adresses virtuelle objets adresses physiques Indépendantes des conditions d'exécution De la taille de la mémoire centrale De la présence d'autres programmes en mémoire Correspondance entre adresse virtuelle et adresse en mémoire physique établie dynamiquement par fonction de topographie S'appuie sur mécanisme matériel de translation adresse virtuelle -> adresse physique 11

Gestion Espace d'adressage Espace d'adressage virtuel découpé en régions Adresses contigües, tailles variables Régions allouées statiquement au chargement du programme : code, données globales, piles Régions gérées dynamiquement pendant exécution du programme Objets créés dans le tas (malloc/free, new/delete) Objets mappés par programme Fichiers Mémoire partagée 12

Plan Rôle de la mémoire Espace d'adressage Allocation régions mémoire de tailles variables Gestion de la mémoire centrale par zones Gestion de la mémoire centrale par pagination 13

Allocation Régions (1) Allocation de régions de tailles variables Espace libre = ensemble de blocs de tailles Taille bloc libre > taille demandée Reste bloc libre de plus petite taille Fragmentation externe Somme taille des zones libres > taille demandée Taille de chaque zone libre < taille demandée 14

Allocation Régions (2) Réunir 2 blocs libres adjacents Minimiser fragmentation Immédiatement, lors de la libération d'un bloc retrouver éventuel bloc libre adjacent du bloc libéré Liste des blocs libres par adresses croissantes Pénalise opération de libération Plus tard À partir d'un seuil minimum de blocs libres Lorsque allocation non satisfaite immédiatement 15

Allocateur "First-Fit" (1) Alloue depuis le premier bloc libre qui convient Liste de blocs libres gérée en FIFO ou par adresses croissantes Chaque bloc libre contient Sa taille Adresse bloc suivant dans la liste Allocation doit au pire parcourir toute la liste 16

Allocateur First-Fit (2) bloc libre bloc occupé 190 : adresse 40 : taille 50 110 190 300 370 300 50 190 370 NIL 40 30 50 20 17

Allocateur First-Fit (3) Libération bloc de taille 40 à l'adresse 110 50 110 190 300 370 110 300 50 190 370 NIL 40 40 30 50 20 18

Allocateur "Best-Fit" (1) Alloue depuis le bloc libre qui laisse le plus petit résidu Liste de blocs libres gérée par tailles croissantes Chaque bloc libre contient Sa taille Adresse bloc suivant dans la liste Libération rapide Allocation doit au pire parcourir toute la liste 19

Allocateur Best-Fit (2) bloc libre bloc occupé 190 : adresse 40 : taille 50 110 190 300 370 370 50 300 190 NIL 20 30 40 50 20

Allocateur Best-Fit (3) Libération bloc de taille 40 à l'adresse 110 50 110 190 300 370 370 50 300 110 190 NIL 20 30 40 40 50 21

Plan Rôle de la mémoire Espace d'adressage Allocation régions mémoire de tailles variables Gestion de la mémoire centrale par zones Gestion de la mémoire centrale par pagination 22

Gestion espace virtuel par zones (1) Traduction addresses basé sur registres de translation d'adresse Adresse physique début de zone Taille multiple d'une taille minimum (puissance de 2) Droits d'accès (lecture/écriture/exécution) Jeu de plusieurs registres code, données globales, pile, tas Allocation de la mémoire centrale en zones de taille variables, multiples d'une taille minimum 23

Gestion espace virtuel par zones (2) Chargement global des programmes Au lancement du programme Allocation dynamique Si espace libre après zone du tas, l'allouer et changer la taille du registre de translation Sinon, allouer nouvelle zone et copier contenu ancienne zone, puis changer adresse et taille registre de translation 24

Gestion espace virtuel par zones (3) Mémoire centrale étendue avec espace de va-etvient ("swap space") sur disque Stocker temporairement partie régions mémoire des programmes bloqués (données, tas et pile) Code rechargeable depuis fichier binaire Allouer nouvelles zones mémoire après réveil du programme Si nécessaire, doit vider programme bloqué dans espace de va-et-vient pour libérer de la mémoire 25

Gestion espace virtuel par zones (4) Technique simple au niveau matériel Pas souple au niveau gestion mémoire Fragmentation potentielle Allocation dynamique pas simple Coûteuse à l'exécution Chargement global => latence au démarrage 26

Plan Rôle de la mémoire Espace d'adressage Allocation régions mémoire de tailles variables Gestion de la mémoire centrale par zones Gestion de la mémoire centrale par pagination 27

Espace Virtuel Paginé (1) 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 => adresse physique Réalisé par MMU (Memory Management Unit) 28

Espace Virtuel Paginé (2) Espace Virtuel MMU Translation Lookaside Buffer Mémoire Physique Tables de Pages PTE page case mémoire 29

Espace Virtuel Paginé (3) MMU décompose adresse virtuelle en 2 parties Partie déplacement dans la page (de taille maximum é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 Intel : 2 niveaux (1 Directory + Page Tables) 30

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

MMU Intel Adresse virtuelle 31 22 21 12 11 10 bits 10 bits 12 bits Directory Page Table Index 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 32

Espace Virtuel Paginé (5) 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 33