Chapitre 4 Gestion de la Mémoire

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

Module Systèmes d’exploitation
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
A l’issue des conseils de classe de 3ème,
M. SAILLOUR Lycée Notre Dame du Kreisker St Pol de Léon
TECHNOLOGIE DES ORDINATEURS
Fonctions & procédures
Structures de données et complexité
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Gestion de la mémoire Chapitre 3.
Chapitre 3 Interblocages
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Les éléments de mémorisation
Mémoire & Processus Cours SE - SRC
Chap. 1 Structures séquentielles : listes linéaires
Architecture de machines La mémoire
Système d’exploitation : Assembleur
Initiation à la programmation et algorithmique cours 3
Améliorer les performances du chiffrage à flot SYND
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Mémoire cache ou antémémoire
Structures de données linéaires
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
Gestion des Périphériques
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
Serveurs Partagés Oracle
1.2 COMPOSANTES DES VECTEURS
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Architecture des Ordinateurs
Configuration de Windows Server 2008 Active Directory
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Hiérarchie de la mémoire
Programmation concurrente
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Module 3 : Analyse des performances du serveur
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Systèmes d’exploitation
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Ch. PAUL - Piles et Files à l'aide de listes chainées
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Module 8 : Surveillance des performances de SQL Server
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Cours de Systèmes d’exploitations
02/10/2013JC LP MD1 COURS_3. 02/10/2013JC LP MD2 Direct Memory Access DMA.
9 décembre 2014J.Callot L.Piedfort1 Chapitre_4 K60 Caches MMU.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Ordinateurs, Structure et Applications
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Memoire.
ARCHITECTURE DE L’ORDINATEUR Victor Alibert, ‘ZIo’ (avec l’aide des diapos de « night »)
CSI 3531 Systèmes d’exploitation Nathalie Japkowicz 1.
Transcription de la présentation:

Chapitre 4 Gestion de la Mémoire © Rim Moussa 2005-2006

Plan du chapitre Introduction Gestion Élémentaire de la Mémoire Va-et-vient (swapping) Mémoire Virtuelle Algo. de Replacements de Pages Conception des Systèmes de Pagination Problèmes d’Implantation Segmentation

1. Introduction Loi de Moore: les capacités de stockage doublent en taille tous les 18 mois. Loi de Parkinson: les programmes grossissent en taille aussi vite que la mémoire.  On aura toujours besoin de gestionnaires de mémoires performants. Le Gestionnaire de la Mémoire gère l’hiérarchie de mémoire (allouer, libérer, transfert … ) Mémoire du cache: volatile, rapide, chère Mémoire centrale: volatile, moins rapide, moins chère Mémoire de masse –disque: non volatile, lente, pas chère

2. Gestion Élémentaire Monoprogrammation: Multiprogrammation: Mémoire réservée au SE Mémoire réservée au seul processus en exécution. Multiprogrammation: La Multiprogrammation améliore le taux d’utilisation du CPU mais requiert un bon partitionnement de la mémoire. A l’initialisation du système, la mémoire est divisée en n partitions de taille fixe. De préférence, des partitions inégales en taille. Comment allouer les processus aux partitions? une file d’attente par partition –(a) une file d’attente pour toutes les partitions –(b)

…Multiprogrammation avec des partitions de taille fixe File vide File pleine

… Modélisation de la Multiprogram° un processus passe une fraction p en attente d’E/Ss la probabilité que n processus indépendants en mémoire soient en attente d’E/S est pn  Taux d’utilisation du CPU = 1- pn Degree of multiprogramming

…Ex. d’application Un ordinateur dispose de 32Mo de mémoire. L’OS occupe 16Mo Un processus utilisateur nécessite 4Mo Déterminer le niveau de multiprogrammation max? Déterminer le taux d’utilisation de CPU, si les processus sont indépendants et qu’un processus passe 80% de son temps en attente d’E/Ss ? De combien améliore-t-on ce taux si on ajoute 16Mo de mémoire?

3. Le va-et-vient (swapping) Stratégie pour pallier les pénuries en mémoire. Elle considère chaque processus dans son intégralité: Le processus est dans son intégralité en mémoire ou est supprimé intégralement de la mémoire

… va-et-vient Tableau de bits Comment conserver un trace d’utilisation de la mémoire? La mémoire est divisée en unités d’allocation Tableau de bits 0 si l’unité est vide, 1 si l’unité est occupée L’inconvénient c’est la complexité de recherche d’une séquence de k unités vides dans le tableau de bits.

… va-et-vient Liste chaînée 4 champs: P (processus) ou T (trou, hole) Adresse de départ Taille en nombre d’unités d’allocation Un pointeur vers l’élément suivant de la liste Gestion de la liste: fusion de trous, MAJ de champs d’éléments … Algo pour allouer de la mémoire à un nouveau processus: Algo de la 1ére zone libre, Algo de la zone libre suivante (débute la recherche là où il s‘est arrêté la dernière fois), Algo du meilleur ajustement …

4. La Mémoire Virtuelle Principe Pagination Taille programme + données + pile peut être > Taille mémoire disponible  Le SE conserve les parties en cours d’utilisation en mémoire et le reste sur disque. Quand un programme attend le chargement d’une partie de lui-même  il est en attente d’E/S Pagination Les adresses générées par un programme s’appellent des adresses virtuelles, et forment l’espace d’adressage virtuel. La MMU (Memory Management Unit, unité de gestion mémoire) fait la correspondance entre les adresses virtuelles et les adresses physiques.

… Pagination Espace d’adressage virtuel est divisé en pages. Les unités correspondantes dans la mémoire physique sont appelées cadres de pages (page frame).

… Pagination Table de Pages Processeur 16 bits  216 adresses virtuelles et 64Ko Mémoire physique de 32Ko Page de 4Ko Nbr pages virtuelles = 64/4 = 16 Nbr cadres de pages = 32/4 = 8 8192 - 12287 4096 - 8191 0 - 4095

… Pagination Les mémoires sont composées d’un nombre de bits égal à une puissance de 2. 1Ko = 210 octets (1,024) 1Mo = 220 octets (1,048,576) 1Go = 230 octets (1,073,741,824) Déterminer l’adresse physique calculée par la MMU: adresse virtuelle 0 adresse virtuelle 8192 Défaut de Page: La page virtuelle 8 commence à 32768 MOV REG, 32780 correspond à l’octet 12 de la page virtuelle 8 La MMU note que la page est absente

… Tables de pages 3 bits pour le num cadre de page 4 bits pour le num page virtuelle page de 4Ko (12 bits)

… Tables de pages multiniveaux Processeur 32bits, page de 4Ko  nombre de pages = 232/ 212 = 220 pages: une table de pages de plus que un million d’entrées! Sans oublier que chaque processus a son propre espace d’adressage et donc sa propre table de pages!  Tables de pages multiniveaux: On ne garde pas en mémoire toutes les tables de pages  Tables de pages inversées  Mémoire Associative ou TLB (Translation Lookaside Buffer): une petite table des pages les plus référencées

… Tables de pages multiniveaux Second-level page tables Exple: une adresse virtuelle sur 32 bits est partitionnée en 3 champs A quoi correspond l’adresse virtuelle sur 32 bits 0x00403004 ?

… Tables de pages inversées Cas d’un processeur 64 bits, 256Ko de mémoire et page de 4Ko

… Structure d’une entrée de la Table des pages Présent/ Absent: 1 bit, indique si la page est en mémoire ou non. Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX). Modifié: 1 bit, une page modifiée doit être écrite sur le disque. Référencé: 1 bit, chaque fois que la page est référencée (lue ou écrite) il est mis à 1. Cache inhibé: 1 bit, permet d’inhiber le cache pour une page.

5. Algo de remplacement de pages Défaut de page Chercher une page à évincer, pour faire de la place pour la page à charger en mémoire. Si le bit M de la page à évincer = 1, la page doit être sauvée sur disque. Algo. optimal Question de performances, afin d’éviter le rechargement de pages, la page à évincer doit être peu utilisée. Étiqueter chaque page avec le nombre d’instructions qui seront exécutées avant que cette page ne soit référencée  Evincer la page dont l’étiquette est la + grande (on repousse ainsi le défaut de page aussi tard que possible) Cet algo est irréalisable, le SE ne sait pas si la page serait référencée ou pas ultérieurement. Par contre, pour une 2éme exécution, il est possible d’implanter cet algo.

… Algo NRU (Not Recently Used) Principe R 1, chaque fois que la page est lue ou écrite. M 1, chaque fois que la page est modifiée. A chaque interruption, R  0, afin de distinguer les pages récemment référencées. Classes de pages Classe 0: non référencée, non modifiée Classe 1: non référencée, modifiée Classe 2: référencée, non modifiée Classe 3: référencée, modifiée La classe 1 est obtenue par conséq de l’effacement du bit R de la classe 3. L’algo NRU vire une page au hasard dans la + basse classe

… Algo FIFO (1st In, 1st out) Le SE conserve une liste de pages couramment en mémoire. En cas de défaut de page, la + ancienne étant en tête de liste est évincée. (-) cet algo peut virer des pages importantes. En effet, la page la + ancienne peut être la page la + utilisée. Algo. seconde chance C’est l’algo FIFO modifié, tel que le bit R de la page la + ancienne est inspecté, Si R = 1 de la page en tête de liste, la page est référencée, et est placée à la fin de la liste avec R  0 et un instant de chargement actualisé Si R = 0, page à virer (ancienne et non référencée). (-) cet algo déplace constamment des pages de la liste.

… Algo de l’horloge Algo de l’horloge Page chargée récemment Page chargée en premier En cas de défaut de page et A tel que R = 1 Algo de l’horloge C’est l’algo de seconde chance avec une liste circulaire (horloge) et un pointeur sur la page la + ancienne. Quand un défaut de page survient, la page pointée est examinée: Si R = 0, la page est évincée Sinon, R  0, le pointeur avance vers la page suivante, Le processus se répète jusqu’à trouver une page avec R = 0

… Algo LRU (Least Recently Used) Principe Cet algo est fondé sur l’observation les pages les + référencées lors des dernières instructions seront probablement utilisées. Un défaut de page évince la page qui n’a pas été utilisée pendant le plus de temps. Implantations Compteur de 64 bits / cadre de page Un défaut de page  examen de tous les compteurs de la table des pages à la recherche du plus petit compteur Matrice (n  n), n cadres Cellules initialisées à 0 Quand une page k est référencée, tous les bits de la rangée k  1, tous les bits de la colonne k  0 Un défaut de page évince la page dont la rangée est la + petite

– pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3 … Algo LRU – pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3

… Algo de vieillissement Principe Cet algo nécessite un compteur/ page (init: 0) A chaque interruption, le SE examine toutes les pages en mémoire, et pour chaque page son bit R est ajouté à son compteur, comme suit: D’abord, le compteur est décalé d’un bit à droite Puis, le bit R est ajouté au bit de poids le plus fort (de gauche) Une page qui n’a pas été référencée depuis 4 tops d’horloge a 4 zéros dans son compteur, et aura une + petite valeur qu’une page qui n’a pas été référencée depuis 3 tops d’horloge. Défaut de page: évincer la page dont le compteur est le + petit

… Algo de vieillissement

… Algo de vieillissement vs LRU Différence 1: Slide 27 –(e)>> les pages 3 (00100000) et 5 (00101000) n’ont pas été référencées depuis 2 tops d’horloge LRU: aucun moyen de distinguer les 2 pages car on ne mémorise qu’un seul bit/ intervalle de temps Algo. Vieillissement: la page 3 est virée Différence 2: Le compteur de l’algo de vieillissement a un nombre fini de bits (8 dans l’exple), on ne peut pas distinguer 2 pages ayant la même val du compteur. Dans la pratique un compteur sur 8 bits est suffisant pour des tops d’horloge qui se produisent toutes les 20ms, une page non référencée depuis 160ms n’est pas très utilisée

… Algo « ensemble de travail» Pagination à la demande Les pages sont chargées à la demande et non à l’avance  beaucoup de défauts de page au début Ensemble de Travail C’est l’ensemble de pages exploitées par le processus lors des k références en mémoire les + récentes Il est intéressant que le SE mémorise l’ensemble de travail de chaque processus et pré-charge en mémoire l’ensemble de travail du processus En cas de défaut de page, évincer une page qui  à l’ensemble de travail du processus

… Algo « ensemble de travail»

… Algo WSClock Working Set Clock (ensemble de travail + horloge) Optimisation de l’algo basé sur l’ens. de travail, qui nécessite le parcours de toute la table des pages à chaque défaut de page. Chaque entrée contient: le Temps de la dernière utilisation, le bit R et le bit M. A chaque défaut de page, la page pointée est examinée: Si R = 1, càd la page a été utilisée pendant le top courant, R  0, màj d temps et le pointeur avance d’une page. Si R = 0 et age > et M = 0, càd la page  à l’ens de travail  cadre de page à libérer Si R = 0 et age > et M = 1, càd la page  à l’ens de travail  une écriture sur disque de la page est ordonnancée, le pointeur avance d’une page. Ainsi, même si le pointeur revient à son point de départ, l’écriture serait terminée.

… Algo WSClock