Gestion de la mmoire - 9 Gestion de la mmoire LA mmoire principale est le lieu o se trouvent les programmes et les donnes quand le processeur les excute

Embed Size (px)

Text of Gestion de la mmoire - 9 Gestion de la mmoire LA mmoire principale est le lieu o se trouvent les...

  • Chapitre 9

    Gestion de la mmoire

    LA mmoire principale est le lieu o se trouvent les programmes et lesdonnes quand le processeur les excute. On loppose au concept demmoire secondaire, reprsente par les disques, de plus grande capacit,o les processus peuvent sjourner avant dtre excuts. La ncessit degrer la mmoire de manire optimale est toujours fondamentale, car endpit de sa grande disponibilit, elle nest, en gnral, jamais suffisante.Ceci en raison de la taille continuellement grandissante des programmes.Nous verrons quil y a plusieurs schmas pour la gestion de la mmoire,avec leurs avantages et inconvnients.

    9.1 Introduction

    9.1.1 Rappels sur la compilation

    La production dun programme passe par plusieurs phases, commeillustr la figure 9.1 :

    criture en langage source (C/C++, Pascal,... ). Compilation en module objet (langage machine).

    Peuvent inclure des bibliothques. Appel aux bibliothques : point de branchement.

    Assemblage en image binaire. dition de liens statiques. dition de liens dynamiques.

    Chargement en mmoire pour excution.

    1

  • 2 CHAPITRE 9. GESTION DE LA MMOIRE

    Bibliothquestatique

    Modulesobjet

    diteur de liens

    Imagemmoire

    Chargeur

    Moduleexcutable

    Modules source

    Traducteur

    Bibliothquedynamique

    Liaison et Chargementdynamiques

    FIG. 9.1 Phases de la compilation.

    Reprsentation des adresses mmoire

    Code source : adresses symboliques. Par exemple : int compteur Module objet : adresses traduites. Par exemple le 50me mot depuis

    le dbut despace mmoire. Module excutable, chargement : adresses absolues. Par exemple lem-

    placement mmoire situ ladresse FFF7

    Liaison dadresses

    Le programme rside sur disque comme Fichier excutable. Il est en-suite charg en mmoire pour tre excut. Il peut rsider, le plus souvent,dans une partie quelconque de la mmoire. On les appelle Programmestranslatables1. Les programmes .com de MS/DOS constituent cependantune exception car la compilation est statique.

    1Translation sera synonime de traduction dans notre contexte, et pourront tre utilissindistinctement.

  • 9.1. INTRODUCTION 3

    Liaison des instructions des adresses mmoire

    Pendant la compilation : Si lemplacement du processus en mmoireest connu, le compilateur gnre des adresses absolues.

    Pendant le chargement : Code translatable si lemplacement du pro-cessus en mmoire nest pas connu.

    Pendant lexcution : dplacement dynamique du processus possible.Utilise des fonctions du matriel.

    Espace dadressage logique ou physique

    Lunit centrale manipule des adresses logiques (emplacement relatif).Les programmes ne connaissent que des adresses logiques, ou virtuelles.Lespace dadressage logique (virtuel) est donc un ensemble dadressespouvant tre gnres par un programme.

    Lunit mmoire manipule des adresses physiques (emplacement m-moire). Elles ne sont jamais vues par les programmes utilisateurs. Lespacedadressage physique est un ensemble dadresses physiques correspondant un espace dadresses logiques.

    9.1.2 La gestion de la mmoire

    La mmoire centrale peut avoir une reprsentation Linaire et uniformeou Diffrencie :

    Linaire et uniforme : Mmoire non diffrencie, avec un espacedadressage linaire ou plat (One level flat address space).

    Diffrencie : Avec des segments linaires spcifiques et disjointspour les procdures, la table de symboles, les programmes, etc. ouavec un adressage segment laide de deux index, un qui contrlele numro de segment et un autre qui contrle ladresse dans le seg-ment.

    La gestion de la mmoire a deux objectifs principaux : dabord le par-tage de mmoire physique entre les programmes et les donnes des proces-sus prts, et ensuite la mise en place des paramtres de calcul dadresses,permettant de transformer une adresse virtuelle en adresse physique. Pource faire le gestionnaire de la mmoire doit remplir plusieurs tches :

    Connatre ltat de la mmoire (les parties libres et occupes de lammoire).

    Allouer de la mmoire un processus avant son excution. Rcuprer lespace allou un processus lorsque celui-ci se termine.

  • 4 CHAPITRE 9. GESTION DE LA MMOIRE

    Traiter le va-et-vient (swapping) entre le disque et la mmoire prin-cipale lorsque cette dernire ne peut pas contenir tous les processus.

    Possder un mcanisme de calcul de ladresse physique (absolue) car,en gnral, les adresses gnres par les compilateurs et les diteursde liens sont des adresses relatives ou virtuelles.

    En gnral, pour ne pas ralentir laccs la mmoire le calcul des adre-sses est ralis par le matriel. Comme nous allons le voir, les techniques degestion de la mmoire sont trs conditionnes par les caractristiques dusystme (monoprogramm ou multiprogramm) et du matriel (registresde base et limite, MMU). Nous passerons en revue un certain nombre demthodes de gestion de la mmoire.

    9.2 Systme monoprogramm

    9.2.1 Machine nue

    Il sagit dun des schmas de gestion de mmoire les plus simples. Luti-lisateur a tout le contrle sur lespace de mmoire, comme le montre la fi-gure 9.2. Cette gestion a comme avantages la flexibilit : lutilisateur peutcontrler sa guise lusage de la mmoire et un cot minime, car il nya pas besoin de matriel spcifique pour limplanter. Parmi ses limitations,on peut citer linexistance des services dentres-sorties, des priphriquesexternes et de gestion derreurs. Ce schma est utilis en systmes ddis des tches spcifiques dune grande simplicit.

    01

    ...

    n-1

    FIG. 9.2 Machine nue.

    9.2.2 Moniteur rsident

    Le schma suivant est celui qui divise la mmoire en deux sections, unepour les programmes des utilisateurs et une autre pour le moniteur r-sident du systme. Le moniteur rsident se retrouve typiquement dans les

  • 9.2. SYSTME MONOPROGRAMM 5

    premires adresses du systme, comme illustr la figure 9.3. Les com-posantes principales dun systme dexploitation prsentes dans la sectiondu moniteur sont le vecteur dinterruptions qui donne accs aux servicesdE/S et les tables PCB (Bloc de Contrle de Processus).

    0Moniteur

    Programmes...

    n-1

    FIG. 9.3 Moniteur rsident.

    Un exemple de tel type de moniteur est celui de MS-DOS. Un seul pro-cessus utilisateur est en mmoire un instant donn (cette technique nestplus utilise de nos jours). On trouve en mmoire, par exemple, le systmedexploitation en mmoire basse, les pilotes de priphriques en mmoirehaute (dans une zone allant de 640 Ko 1 Mo) et un programme dutilisa-teur entre les deux (voir figure 9.4).

    Pilotes en ROM(BIOS)

    Programmedutilisateur

    (RAM)Systme dexploitation

    (RAM)

    FIG. 9.4 Organisation de la mmoire du PC sous MS-DOS.

    Lorsque la mmoire est organise de cette manire, il ne peut y avoirquun seul processus qui sexcute un instant donn. Lutilisateur entreune commande sur un terminal et le systme dexploitation charge le pro-gramme demand en mmoire puis lexcute. Lorsquil se termine, le sys-tme dexploitation affiche une invitation sur le terminal et attend la com-mande suivante pour charger un nouveau processus qui remplace le pr-cdent.

    Pour protger le code et les donnes du systme dexploitation deschangements que peuvent provoquer les programmes des utilisateurs, il

  • 6 CHAPITRE 9. GESTION DE LA MMOIRE

    y a un registre limite (montr la figure 9.5) qui contient ladresse partirde laquelle commencent les instructions et donnes des programmes desutilisateurs. Chaque adresse (instruction ou donne) gnre par un pro-gramme est compare avec le registre limite. Si ladresse gnre est sup-rieure ou gale la valeur du registre, on laccepte, sinon on refuse laccset on interrompt le processus avec un message daccs illgal de mmoire.

    MmoireUCT

    Registre limite

    Erreur: Adressage illgal

    adresse reg. lim

    FIG. 9.5 Registre limite.

    Toute rfrence la mmoire doit tre vrifie, ce qui implique un ra-lentissement du systme.

    Il y a plusieurs stratgies pour implanter le registre limite. Lune dentreelles consiste utiliser une valeur fixe, enregistre au niveau matriel ouau dbut du dmarrage du systme. Cependant si la valeur choisie est troppetite et que le systme dexploitation grandisse, il se retrouvera dans unezone non protge, ou au contraire, lespace pour les programmes seraitdiminu. Une solution est lexistence dun registre variable pour permettredinitialiser diffrentes valeurs dadresses au registre limite. Celui-ci peuttre charg par le systme dexploitation qui utilise des privilges spciaux,cest dire, on excute le systme dexploitation en mode moniteur.

    9.3 Systme multiprogramm

    La multiprogrammation permet lexcution de plusieurs processus lafois. Elle permet doptimiser le taux dutilisation du processeur en rdui-sant notamment les attentes sur des entres-sorties. Cette technique nces-

  • 9.3. SYSTME MULTIPROGRAMM 7

    site la prsence de plusieurs processus en mmoire. La mmoire est doncpartage entre le systme dexploitation et plusieurs processus. Il se posecependant le problme suivant : comment organiser la mmoire de manire faire cohabiter efficacement plusieurs processus tout en assurant la pro-tection des processus ? Deux cas sont alors distinguer :

    Multiprogrammation sans va-et-vient. Dans ce cas, un processus chargen mmoire y sjournera jusqu ce quil se termine (pas de va-et-vient entre la mmoire et le disque).

    Multiprogrammation avec va-et-vient. Dans ce cas, un processus peut tredplac temporairement sur le disque (mmoire de rserve : swaparea ou backing store) pour permettre le chargement et donc lex-cution dautres processus. Le processus dplac sur le disque sera ul-trieurement recharg en mmoire pour lui permettre de poursuivreson excution.

    Ce schma pose dautres difficults : tant donn que les processus sontchargs diffrente

Recommended

View more >