Gestion de la mémoire

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é

Systemes d'exploitation des ordinateurs

Structure fonctionnelle d un SGBD

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

Architecture des ordinateurs

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

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Introduction aux SGBDR

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

GESTION DE LA MEMOIRE

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

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

PG208, Projet n 3 : Serveur HTTP évolué

Gestion de la mémoire

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

INF4420: Éléments de Sécurité Informatique

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

IV- Comment fonctionne un ordinateur?

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

Chapitre 4 : Les mémoires

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

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

Création de maquette web

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

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

Premiers pas sur l ordinateur Support d initiation

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

Définitions. Numéro à préciser. (Durée : )

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

Capacité de mémoire Tablettes

Programmation parallèle et distribuée

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

Architecture des ordinateurs Introduction à l informatique

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

Conventions d écriture et outils de mise au point

Créer le schéma relationnel d une base de données ACCESS

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Programmation parallèle et distribuée

Structure de base d un ordinateur

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

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

la virtualisation pour quoi faire?

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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

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

CPLN 20/08/2009 MBO Service ICT et Pédagogie

Transmissions série et parallèle

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP a Notions de base sur le découpage en sous-réseaux

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

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

Système de Gestion de Fichiers

Windows Server Chapitre 1: Découvrir Windows Server 2008

Dynamic Host Configuration Protocol

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Support Agile avec Kanban quelques trucs et astuces par Tomas Björkholm

Notion de base de données

Evaluation de la conformité du Système de validation Vaisala Veriteq vlog à la norme 21 CFR Part 11

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

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Les Réseaux sans fils : IEEE F. Nolot

Cours A7 : Temps Réel

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)

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Chap17 - CORRECTİON DES EXERCİCES

Annexe : La Programmation Informatique

Serveur d application WebDev

Logique séquentielle

Configuration automatique

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

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

Chapitre I Notions de base et outils de travail

Chapitre 4 : Exclusion mutuelle

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

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

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Algorithmique avec Algobox

Relever le défi du Web mobile

Initiation. àl algorithmique et à la programmation. en C

Transcription:

Gestion de la mémoire

Rappels Le CPU accède à la mémoire RAM en lisant des mots de 16, 32, 64, voire 128 bits (2, 4, 8, 16 octets). Chaque octet de 8 bits est rangé dans une «case» de la mémoire. Chaque case d un octet est numérotée (de zéro à N-1, N étant la taille en octet de la mémoire physique disponible) ; ce numéro est appelé «adresse physique» de la case mémoire qui contient la donnée. Le CPU accède aux données de la RAM en positionnant l adresse du mot à lire (ou à écrire) dans un registre d adresse. Espace d adressage Espace de la RAM où un processus a le droit d écrire ou de lire des données. Cet espace contient plusieurs zones : le code machine à exécuter par le CPU, la pile à l exécution du CPU, l espace de données.

Espace d adressage physique : C est l ensemble des adresses physiques de la RAM. Espace d adressage logique (virtuel) C est l ensemble des adresses logiques accessibles par un processus. A partir de cet espace on peut pointer vers des zones de l espace d adressage physique, ou sur une zone sur le disque dur qui s appelle le fichier d échange de mémoire virtuelle, ou fichier de swap. Le processeur doit convertir chaque adresse logique manipulée par le processus en adresse physique. Cette conversion est appelée mapping et est réalisé par le MMU (Memory Management Unit). La mémoire est virtuellement découpée en zones. Il existe deux philosophies différentes : La segmentation : Découpage de la mémoire en morceaux de tailles variables appelés segments, caractérisés par leur adresse de début (décalage) et leur taille. La pagination : la mémoire est découpée en «blocs» de taille fixe appelés pages.

La segmentation L adresse virtuelle possède deux composantes : Un numéro de segment, Un déplacement dans ce segment. Le MMU contient une table des segments, qui est indexée par le numéro de segment, et qui, pour chaque entrée, contient : La taille du segment, et son adresse de base. Traduction d une adresse virtuelle : 1.Le MMU cherche l entrée correspondant au numéro de segment dans la table des segments. 2.Vérifie que le déplacement contenu dans l adresse virtuelle est inférieur à la taille du segment. 3.Si c est le cas, il additionne le déplacement à l adresse de base du segment pour obtenir l adresse physique

La pagination Le processeur émet des adresses virtuelles indiquant la position d'un mot dans la mémoire virtuelle ; Cette mémoire virtuelle est formée de zones de même taille, appelées pages. Une adresse virtuelle est donc un couple (numéro de page, déplacement dans la page). La mémoire physique est également composée de zones de même taille, appelées «cadres» (frames en anglais), dans lesquelles prennent place les pages. A noter que la taille d un cadre est égale à la taille d une page ; Le MMU assure la conversion des adresses virtuelles en adresses physiques, en consultant une «table des pages» pour connaître le numéro du cadre qui contient la page recherchée. L'adresse physique obtenue est le couple (numéro de cadre, déplacement) ; Il peut y avoir plus de pages que de cadres : les pages qui ne sont pas en mémoire sont stockées sur un autre support (disque dur), elles seront ramenées dans un cadre si besoin. Chaque processus possède sa propre table des pages, qui est indexée par le numéro de page.

Protection des accès mémoire entre processus Il existe trois bits de gestion des accès pour chaque partie de l espace d adressage d un processus: (lecture, écriture et exécution de code) Chaque processus ne peut accéder qu à sa propre table des pages. Lors de chaque accès à la mémoire, les droits sont vérifiés. S il y a besoin de partager des zones de mémoire (exemple : shared memory ), dans ce cas, chacun des processus référence les pages communes dans sa propre table des pages. Les deux processus doivent être indiqués comme propriétaires dans la table des pages pour chacune de ces pages. N de cadre/frame N de page Processus propriétaire number Cadre 1 1 Processus 1 Exemple : Table des pages avec des pages partagées en lecture/écriture : Cadre 2 3 Processus 1 Cadre 3 2 Processus 1, Processus 2 Cadre 4 5 Processus 2

Principe de la mémoire virtuelle swap Allouer en premier tous les cadres disponibles dans la mémoire physique. Manque de cadre disponible: Libérer certains cadres en plaçant leurs contenus sur disque. Le processus élu avec des pages swapées sur le disque devra connaître cette information. Le bit validation «bit V» est à 1 si la page fait référence à un cadre en mémoire centrale, et vaut 0 si le contenu de la page a été stocké sur disque. Les pages contenant du code (programme) ne sont jamais swapées.

Algorithmes de remplacement de pages : l algorithme optimal, l algorithme FIFO (First In, First Out/premier entré, premier sorti), l algorithme LRU (Least Recently Used/la moins récemment utilisée), l algorithme de la seconde chance, L algorithme de l horloge l algorithme LFU (Least Frequently Used, «la moins souvent utilisée»)..

L algorithme optimal ( de Belady) Consiste à retirer la page qui sera référencée le plus tard possible dans le futur. Impossible à mettre en œuvre: Difficile de prévoir les références futures d'un programme. Référence pour les autres stratégies, car il minimise le nombre de défauts de page. Exemple: Soit un système avec m= 3 cases de mémoire et une suite de références w={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}. La figure montre une ligne pour chaque case et une colonne pour chaque référence. Chaque élément de ligne i et colonne j montre la page chargée dans la case i après avoir été référencée. Les entrées soulignées en rouge sont des pages chargées après un défaut de page. L'algorithme optimale fait donc 9 défauts de page.

L algorithme FIFO : Il mémorise dans une file de type FIFO (premier entré, premier sorti) les pages présentes en mémoire. Lorsqu'un défaut de page se produit, on retire la plus ancienne, c'est à dire celle qui se trouve en tête de file. Exemple: La suite de références w={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1} Avec m=3 cases fait 15 défauts de page avec l'algorithme FIFO comme le montre la figure

L algorithme LRU (Least Recently Used) L'algorithme LRU mémorise dans une liste chaînée toutes les pages en mémoire. La page la plus utilisée est en tête de liste et la moins utilisée est en queue. Lorsqu'un défaut de page se produit, la page la moins utilisée est retirée. Pour minimiser la recherche et la modification de la liste chaînée, ces opérations peuvent être réalisées par le matériel. Cet algorithme est coûteux. Problème: Difficulté d'implémentation, qui requiert un support du hardware. Il faut une manière de mémoriser le temps à chaque fois qu'une page est référencée Exemple: La suite de références w={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1} Avec m= 3 cases fait 12 défauts de page avec l'algorithme de remplacement de la page la moins récemment utilisée, comme le montre la figure

L'algorithme de remplacement de page de la seconde chance Modification simple à l'algorithme FIFO afin d'éviter la suppression d'une page à laquelle on a couramment recours Il s'agit d'inspecter le bit R de la page la plus ancienne. R=0 : La page est à la fois ancienne et inutilisée, elle est donc remplacée immédiatement. R=1 : le bit est effacé, la page est placée à la fin de la liste des pages, et son temps de chargement est mis à jour comme si elle venait d'arriver en mémoire. La recherche continue alors. Exemple: Les pages de A à H se trouvent dans une liste chaînée, triées par leur temps d'arrivée en mémoire. Supposons qu'un défaut de page se produise à l'instant 20. La page la plus ancienne est A, qui est arrivée à l'instant 0, quand le processus a démarré. Si le bit R de la page A est à 0, elle est évincée de la mémoire. Si le bit R est à 1, A est placée à la fin de la liste et son temps de chargement est mis à jour avec le temps courant (20). Le bit R est aussi mis à 0. La recherche d'une page convenable continue alors avec B.

L'algorithme de remplacement de page de l'horloge Consiste à garder tous les cadres de pages dans une liste circulaire formant une horloge, comme l'illustre la figure ci-dessous. Un pointeur se trouve sur la page la plus ancienne. Quand un défaut de page survient, la page pointée est examinée. Si son bit R est à 0, la page est évincée, la nouvelle page est insérée dans l'horloge à sa place, et le pointeur est avancé d'une position. Si le bit R est à 1, il est effacé et le pointeur est avancé sur la prochaine page. Ce processus est répété jusqu'à ce qu'une page R = 0 soit trouvée. Cet algorithme de l'horloge diffère de l'algorithme de la seconde chance uniquement dans son implantation.

L algorithme LFU Dans cet algorithme, le système garde un compteur qui est incrémenté à chaque fois que le cadre est référencé. La victime sera le cadre dont le compteur est le plus bas. Cet algorithme, bien qu intuitivement correct, souffre de deux inconvénients, qui le rendent peu utilisé : Au démarrage des programmes, quelques pages peuvent être intensément utilisées, puis plus jamais par la suite. La valeur du compteur sera si élevée qu'ils ne seront remplacés que trop tardivement ; Il faut aussi gérer le cas de dépassement de capacité du compteur, ce qui est coûteux en CPU.