Cours 3. Gestion de la mémoire (2/2)

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

Partie 7 : Gestion de la mémoire

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

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

GESTION DE LA MEMOIRE

Systemes d'exploitation des ordinateurs

Structure d un programme

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

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

Gestion de la mémoire

Structure fonctionnelle d un SGBD

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

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

Architecture des ordinateurs

Logiciel de base. Première année ENSIMAG

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

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

Architecture des ordinateurs

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Ordinateurs, Structure et Applications

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

26 Centre de Sécurité et de

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

Gestion répartie de données - 1

Introduction à la Programmation Parallèle: MPI

Système de Gestion de Fichiers

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Limitations of the Playstation 3 for High Performance Cluster Computing

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

Initiation à la sécurité

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

PG208, Projet n 3 : Serveur HTTP évolué

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

Programmation assembleur : aperçu

Rappels d architecture

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

LES SYSTÈMES DE FICHIERS

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

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)

WEA Un Gérant d'objets Persistants pour des environnements distribués

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

Chapitre 4 : Les mémoires

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

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

Optimisations des SGBDR. Étude de cas : MySQL

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

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

4D v11 SQL Release 5 (11.5) ADDENDUM

Clé USB. Quel type de données peut contenir une clé USB?

Bases de données documentaires et distribuées Cours NFE04

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Windows Server Chapitre 1: Découvrir Windows Server 2008

Séquencer une application

Traitement de données

Algorithmique et Programmation, IMA

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

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

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

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

Les vulnérabilités du noyau. LECORNET Olivier LEGROS Bruno VIGIER Nicolas Promo 2005

CAHIER DES CHARGES D IMPLANTATION

Cours Informatique 1. Monsieur SADOUNI Salheddine

cbox VOS FICHIERS DEVIENNENT MOBILES! POUR ORDINATEURS DE BUREAU ET PORTABLES WINDOWS ÉDITION PROFESSIONNELLE MANUEL D UTILISATION

Le Network File System de Sun (NFS)

Tester Windows 8 sans l'installer avec Virtualbox

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

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Anatomie d'un cloud IaaS Représentation simplifiée

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

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

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

Préconisations Techniques & Installation de Gestimum ERP

Installation et Administration de SolidWorks Electrical CadWare Systems

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

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

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

Concept de machine virtuelle

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

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

1/6. L icône Ordinateur

FreeNAS Shere. Par THOREZ Nicolas

GESTION DES FICHIERS C/UNIX

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

Installation 4D. Configuration requise Installation et activation

Systèmes d exploitation

Compilation (INF 564)

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

Utilisation du plugin AppliDis SLB (Smart Load Balancing)

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

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

Cours A7 : Temps Réel

Manuel d'installation

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Transcription:

Cours 3 Gestion de la mémoire (2/2) PolyTECH Thomas Lavergne Université Paris-Sud

Plan Cours 2 Fonctionnement de la mémoire Méthodes d'allocation Pagination Politique de remplacement Cours 3 Segmentation Mémoire virtuelle Gestion des pages Allocation

Rappels Maintenir plusieurs processus en mémoire Réduction des coûts Représentation de la structure mémoire ex : listes chaînées Méthodes Allocation contigüe partitions fixes, swapping Pagination table des pages Mesure : taux de fragmentation

Segmentation Représentation de la mémoire sous forme de blocs de données/routines indépendants Pile Table des symboles Programme principal Fonction f1 Sous-routine Etc. Donnée ou instruction main printf = adresse de base (segment) + offset (décalage) Pile Symboles Espace d'adresses logiques fibo printf (x86) mov eax, 4 ; Appel de sys_write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine à afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys_exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel

Compilation Construction des segments chaque segment est référencé par un numéro Exemples : Segments d'un programme Java Méthodes Tas Piles pour chaque Thread Class loader Segments d'un programme C Variables globales Fonctions de bibliothèques Programme principal

oui Memory Management Unit Adresse = numéro segment + offset Table des segments ensemble de couples (base,limite) UC seg. offset Adresse logique Interruption Adresse physique limite base < Erreur d'adressage (segmentation fault) non?... + Memory Table des segments Management Unit Mémoire physique

Exemples 0 Segment 0 Main Fonction limite base Segment 0 Segment 3 0 1 1500 1400 500 6300 Segment 4 pile Sousroutine Segment 4 Table des symboles 2 2000 4300 3 1000 8700 4 800 3000 Table de segments Segment 2 Segment 1 Segment 1 Segment 2 Espace d'adressage logique Mémoire physique Segment 3

Avantages & limites Partage de segments 0 1 processus = 1 table Partage de code (bibliothèques, programmes multi-utilisateurs) Main Segment 0 Données Segment 1 Mémoire logique processus 1 Main Segment 0 Données Segment 1 Mémoire logique processus 2 0 1 limite base 4000 2500 500 2000 Table de segments processus 1 0 1 limite base 4000 2500 500 8000 Table de segments processus 2 Données 1 Code partagé Données 2 Mémoire physique

Avantages & limites Partage de segments 1 processus = 1 table Problème : référencement du segment «commun» Appel de la routine = saut d'adresse Tous les codes doivent référencer le segment commun de la même manière! Trouver une référence qui convienne à tout le monde... Protection Segments R, W ou RW (ex : instructions vs données) Table d'association bits de protection RW 1 tableau = 1 segment vérification automatique des débordements!

Avantages & limites Partage de segments 1 processus = 1 table Problème : référencement du segment «commun» Protection Lecture/écriture Protection de la mémoire Allocation Segments de longueur variable problème d'allocation (cf. mémoire contigüe) Fragmentation + risque d'attente (ou compactage) combiner pagination et segmentation!

Segmentation avec pagination Principe Paginer les segments réduit la fragmentation et les problèmes d'allocation permet le partage et l'adressage des segments Adresse logique = segment + offset Adresse linéaire = répertoire + page + offset' Adresse physique = cadre de page + offset' Memory Management Unit La table de descripteurs convertit les adresses logiques en adresses linéaires : segmentation Le répertoire + la table des pages permettent de déterminer les cadres de page : pagination

Segmentation avec pagination Adresse logique UC selecteur offset Adresse physique Adresse linéaire segfault < limite base + répertoire page offset' Table de descripteurs Cadre de page Répertoire de pages Table des pages Mémoire physique

Segmentation avec pagination Exemple : intel 80386 16 384 (2 14 ) segments possibles par processus, 1 segment = max 4Go 8192 «globaux» (partage de segments) et 8192 locaux (données & code propres au processus) Adresse logique = 16 bits selecteur + 32 bits offset Table Descripteurs (G ou L) = 8 Ko (2 13 ) 1 entrée = 8 octets dont base et limite (4) adresse linéaire 32 bits Segment (13) G (1) RW (2) 1 page = 4 Ko pagination à deux niveaux Répertoire (10) (10) Offset' (12)

Segmentation avec pagination Exemple (suite) : linux 2 sur 80386 Segmentation réduite (compatible plusieurs architctures) 6 segments Code du noyau Données du noyau Code utilisateur Données utilisateur État de la tâche Local Descriptors Table (LDT) par défaut Protection RW = 4 niveaux Linux : 2 niveaux seulement (utilisateur/noyau)

Mémoire virtuelle Mémoire d'un programme > mémoire physique on n'a pas besoin de tout le programme en même temps! Une partie des instructions et données seulement doivent être en mémoire physique Mémoire virtuelle Le programmeur voit un espace d'adressage «virtuel» L'espace d'adressage peut être plus grand que la mémoire physique La mémoire logique doit être plus petite! Utilisation du disque pagination à la demande

Mémoire virtuelle Schéma général : 0 1... Mémoire logique Mémoire physique n Mémoire virtuelle Espace de stockage (disque)

Avantages Exemples Code d'erreurs, fonctions rarement exécutées Table des symboles d'un programme Tableau (généralement sous-utilisé) Moins de mémoire utilisée plus de programmes en parallèle! Moins de perte E/S lors des commutations de contexte Grand espace d'adressage virtuel le programmeur ne se préoccupe plus de la mémoire gestion souple de la pile et du tas (tailles variable) «Espace creux» variable entre les deux

Avantages (suite) Partage de pages Bibliothèques (utilisées en lecture seule) Fork et création de processus pile pile Espace creux bibliothèque pages partagées bibliothèque tas tas données données code code Bit de validité de page déchargement des pages Recharger seulement les nouvelles pages requises Pagination à la demande

Fonctionnement Pagination à la demande 3. requête mémoire auxiliaire 3ter. fin d'e/s interruption OS 3bis. allocation UC à un autre processus 2. déroutement Mémoire auxiliaire... load A load B A+B store C... Processus 1. référence 6. instruction relancée défaut de page Table des pages 5. mise à jour table cadre disponible 4. lecture page manquante Mémoire physique

Temps d'accès Un peu de calcul... p = probabilité de défaut de page M = temps d'accès à la mémoire D = temps de traitement défaut de page temps d'accès = (1-p).M + p.d = M + p.(d-m) le temps d'accès est directement proportionnel à la probabilité d'avoir un défaut de page! d'où l'intérêt d'avoir un bon algorithme de remplacement! p.d/m ~= ralentissement dû à pagination à la demande

Remplacement de pages Rappel des algorithmes FIIFO, deuxième-chance, horloge LFU, LRU, NRU (peu utilisés en pratique) Bit de modification noter les pages non-modifiées et les remplacer en priorité Défaut de pages : anomalie de Belady Réduire les défauts sur-allocation hypothèse = les processus n'utilisent pas tous les cadres qui leur sont alloués charger plus de processus sans augmenter le nombre de défaut de pages Les cadres supplémentaires requis correspondent en réalité à des pages non utilisées

Allocation (1/3) Mémoire physique cadres de page Allouer N cadres sur P processus plus de cadres moins de P possibles moins de cadres défauts de page ralentissement de l'exécution Allocation équitable Chaque processus reçoit N/P Le reste N%P sert de tampon lors du remplacement de page, permet de charger une page et de relancer l'instruction, sans avoir à vider la page en mémoire tout de suite

Allocation (2/3) Allocation proportionnelle En fonction de la taille de la mémoire virtuelle de chaque processus Soit M i la taille du processus i (en mémoire virtuelle) et M = Σ M i P i reçoit N * M i / M cadres Allocation basée sur la priorité En fonction de la priorité de chaque processus Soit prio i la priorité du processus et prio tot la somme des priorités P i reçoit N * prio i / prio tot

Allocation 3/3 Remplacement local un processus ne peut «remplacer» que dans les cadres de pages qui lui sont alloués (plus le cache) Remplacement global un processus peut utiliser n'importe quel cadre de page, y compris ceux utilisés par d'autres Avantage : augmenter la vitesse d'exécution des processus prioritaires Inconvénient : risque de provoquer de nouveaux défauts de pages pour les autres processus