La mémoire virtuelle - Traduction dadresses et pagination à la
Address Translation & Demand Paging une mémoire pour moi tout seul : «mémoire virtuelle» ... pagination (en VO paging) = une unique taille de bloc.
Pagination (1/3) : la mémoire
Exemple : les adresses virtuelles et physique sont sur 32 bits les pages font 1K octets. La page virtuelle 4 est implantée sur la page physique 9. Voici les 3
Mémoire virtuelle
Elle est nécessaire pour la conversion des adresses virtuelles en adresses phy- siques. Page 5. 10.2. PAGINATION PURE. 5. Disque. Mémoire.
Gestion de la mémoire
Principe de la mémoire virtuelle: la taille de l'ensemble formé par le seulement du comportement de la pagination pour ce processus mais.
Module 8 – La mémoire virtuelle
Mémoire Virtuelle. ? Pagination sur demande. ? Problèmes de performance. ? Remplacement de pages: algorithmes. ? Allocation de cadres de mémoire.
Séance 7 Mémoire virtuelle et pagination
Objectifs. Comprendre la mémoire virtuelle. Mécanisme de pagination à la demande. Principe du défaut de page. Algorithmes de remplacement de page.
Cours 4: Gestion de la mémoire
20 oct. 2015 1 Mémoire virtuelle (premiers pas). 2 Mémoire virtuelle (moderne). Pagination. Algorithmes d'échange. 3 Appels syst`emes.
Travaux Dirigés
15 déc. 2016 considéré utilise une pagination à deux niveaux où les entrées du de la table ... contenant son code est disposée dans sa mémoire virtuelle.
620 Mémoire virtuelle - INF3173 Principes des systèmes dexploitation
Mémoire virtuelle sans pagination (historique). • Alias: swapping de processus Les pages virtuelles de l'espace mémoire utilisable d'un processus.
1. Introduction
Pagination. La pagination est l'une des deux techniques (qui peuvent être combinée) de la mémoire virtuelle. Le principe est de diviser l'espace d'adressage
Module 8 – La mémoire virtuelle
mémoire le bit M (modified ou dirty bit) qui indique si la page a été modifiée - pour trouver l'information cherchée on concatène la partie déplacement dans la page au numéro de page physique trouvé
8 – PAGINATION MÉMOIRE
aucune page n'est chargée décrire les actions de gestion de mémoire sous la forme d'une suite composée des opérations précédentes Donner la table des pages finale 2 SEGMENTATION PAGINÉE On considère une mémoire segmentée paginée La taille des pages est de 512 mots
Gestion de la mémoire par pages
par pagination • Mémoire virtuelle divisée en zones de taille fixe appelées pages – Taille typique d ’une page: 4 Koctets – Taille mémoire virtuelle : 32 ou 64 bits d ’adresse • Mémoire physique divisée en blocs de même taille que les pages appelés les cases • Une page peut être chargée dans n’importe quelle case
Searches related to pagination mémoire virtuelle PDF
La pagination consiste à diviser l'adressage de la mémoire en deux couches : • La couche logicielle utilise un espace d'adressage plus grand que la mémoire physique effectivement disponible (l'espace des adresses linéaires autrement appelé mémoire virtuelle ou mémoire linéaire) Par exemple l'allocateur de mémoire
Quelle est la différence entre la pagination et la segmentation à la mémoire virtuelle ?
De la pagination et segmentation à la mémoire virtuelle Un processus est constitué de morceaux (pages ou segments) ne nécessitant pas d’occuper une région contiguë de la mémoire principale Références à la mémoire sont converties en adresses physiques au moment de l’exécution
Qu'est-ce que la pagination de mémoire ?
Pouvant être définie comme l’action qui consiste à numéroter chaque page du rapport de stage, les unes après les autres, la pagination de mémoire facilite le repérage d’une partie, d’un chapitre, d’un titre ou d’un paragraphe contenus dans le rapport de stage proprement dit, qui est un document hiérarchisé.
Comment fonctionne la mémoire virtuelle?
L’implantation de la mémoire virtuelle gère automatiquement deux niveaux de hiérarchie de mémoire, la mémoire physique (RAM) et la mémoire secondaire (le disque).
Où se trouve la pagination ?
La pagination est indiquée en haut de la page à droite. Le chiffre se place seul, sans point, ni tiret, ni parenthèses. La première page de l'introduction constitue la page 1, mais sa pagination est invisible. Le développement, la conclusion, la bibliographie et les annexes sont paginés et visibles.
ClémentMATHIEU
GuillaumeERETEO
DRAFTv1.0 16/06/2004
Cedocument àétéproduit danslecadre d'untravaild'étude aucoursde lalicence d'informatique2003/2004 del'UNSAet présentelesconcepts etméchanismes fondamentauxde lagestionmémoire danslessystèmes d'exploitation.Lesques- tionsactuelle etlesévolutions encourssont aussiabordéesafin demontrerun panoramagénéral etactuelde cedomaine.Tableof Contents
1.Introduction ... ...................................................................................................1
2.Généralités ... ....................................................................................................2
2.1.Historique ... ...........................................................................................2
2.2.Avantages delamémoire virtuelle.. ... ... ... ...................................................3
2.3.Pagination ... ...........................................................................................3
2.4.Segmentation ... .......................................................................................7
2.5.Gestion delazone d'échange.. ... ... ... ..........................................................8
2.6.Séparation endeuxde l'espaced'adressage. ... ... ... ... ......................................9
2.7.Hiérarchie demémoirescaches ... ... ... .........................................................9
2.8.Exhausion del'espaced'adressage ... ... ... ....................................................11
2.9.L'évolution dumatériel. ... ... .....................................................................12
3.BSD ... ............................................................................................................13
4.Linux ... ..........................................................................................................13
4.1.Modèle depagination. ... ... .......................................................................13
4.2.Espace d'adressaged'unprocessus ... ... ... ....................................................14
4.3.Gestion desdéfautsde pages.. ... ... ... .........................................................18
4.4.Allocateurs mémoire.. ... ..........................................................................22
5.Sujets d'actualité.. ... ..........................................................................................23
5.1.Chez Linux.. ... ......................................................................................23
5.2.Support NX,NoeXecute, parpage. ... ... ... ... ...............................................28
Glossaire. ...........................................................................................................31
bibliographie. ......................................................................................................33
A.Comparaisons dedifférentsprocesseurs ... ... ... .......................................................36
1.Introduction
Cedocument présenteunpanorama généraldela gestionmémoire,souvent appeléeVMM(virtual memorymanagement), MMouVM, ainsiquel'état actueldesimplémentations notammentdansles systèmesde typeUNIX.Lapremière partieseraconsacrée àprésenterles butsetles principesgénérauxde lagestion
mémoireet nenécéssitepas deconnaissancepréalable dudomaine.Toutefois uneconnaissance minimaledes principesetdu fonctionnementdessystèmes d'exploitationpeuts'avérer utilepourcomprendrele tenantetles aboutissantsdesconcepts présentés.Cettepremière partieprésentera
aussile supportoffertpar lematérielpour lagestionmémoire notammentparle biaisde l'architecturela plusrépendueactuellement leX86mais surtoutgraceà sonsuccesseur: l'AMD64Uneseconde partieprésenterarapidement l'implémentationdesprincipes présentésgrâceà unevue
généralede cequia étéréalisédans Linux.Ilne s'agitpasd'une descriptionenprofondeur oud'un
commentairede codecettetâche ayantdéjàeffectuée avecbriopar deuxfoispar desgensbien plus 1 compétents. Enfinla dernièrepartieprésentera quelquesdomainesactifs delagestion mémoire.Etfera unzoom surquelques débatsetproblèmes récentsrencontrésdans lessystèmeUNIX.2.Généralités
Lessystèmes d'exploitationontpour missiondefournir uneinterfaceavec lematérielaux logiciels voulants'exécuter suruneplate-forme donnée.Aucours del'histoireles noyauxn'ontcessé d'évolueret leursfonctionnalitésn'ont cessédese modifierensuivant unlienassez étroitavecl'évolutiondu matériel.Desystèmes monoprogramméssanssécurité noussommespassés en
quelquesannées àdessystèmes multiprogramméspermettantune forteisolationentre lesprocessus.
Ainsiau coursdutemps lessystèmesd'exploitation ensontvenus àfournirune abstractionmatérielletrès élevée,lesprocessus n'ontplus(ne peuvent)àinteragir directementavectout une
partiedu matérielmaisutilise lacouched'abstraction qu'estlesystème d'exploitation.Cettecouche d'abstractionnécessite quelesystème fournissedesprimitives pourrépondreaux besoinsdespro- cessus.Un desbesoinsfondamentaux estlamémoire. Toutprogrammepour s'exécuteràbesoin de mémoirepour contenirsoncode etsesdonnées. Nousallonsnous intéresseràcomment unsystème d'exploitationgère lamémoirephysique disponiblepourl'utiliser etpermettreaux processusde l'utiliser.Pour celanousallons commencerparfaire unbrefrappel historiqueretraçantles différentesgrandes étapesdela gestionmémoire.2.1.Historique
Lespremiers systèmesn'offraientque trèspeud'abstraction aveclematériel etlesprogrammesétaientsouvent développésavecune trèsbonneconnaissance dumatérielcaché derrière.Nous
sommesau tempsdessystèmes monoprogrammés;unseul processuspeuts'exécuter àlafois. Un desproblèmes majeursestque lamémoireprincipale faitbiensouvent défaut;unprogramme etses donnéesne peuventtenirentièrement dedans,lesystème n'offrantaucuneaide. Leprocessusest al- orsfortement coupléàla machinesurlequel ilestdéveloppé. Eneffetle programmeurdoit s'occuperlui mêmededécouper sonprogrammeen segments(modules)indépendants etdemettre enplace lemécanismepermettant lereplacementde cessegmentsde l'exécution.Cettefaçon de procéderà beaucoupd'inconvénientsen voiciquelquesuns. Toutd'abordil fautquetout lesseg- mentssoient pluspetitsque lamémoireprincipale disponible,ainsile programmeestdéveloppé pourune machinedonnée;le découpageensegments complexifiebeaucouple développement puisqueles structuresdedonnées etlesalgorithmes doiventêtrepensés pournejamais fairede référenceà desdonnéesqui nesontpas danslesegment actueletsurtout chaqueprogramme implémentesa proprefaçonde chargersesdonnées etdeles sauvegarderdansla mémoiredemasse. Enplus ducaractèrefastidieux delachose ons'aperçoitque toutlesprogrammes réinvententlaroue etle résultatfinaln'est absolumentpasportable d'unemachineà l'autre.Comblede lachosele pro- grammerésultant estdeuxà troisfoisplus grosàcause delagestion dessegments! Noussommes alorsdans lesannées50 etlesconcepteurs despremierssystèmes d'exploitationrêventd'une chose: automatiserla gestiondela mémoirepourque lesprogrammesn'aient plusàgérer leswapin etle swapout dessegments.Cerêve estréaliséquelques annéesplustard audébutdes années60et lerésultatse nomme
mémoirevirtuelle ;la premièreimplémentationdate de1959par l'universitédeManchester. Cequi
correspondà lamémoirevirtuelle estappelé"one-level storagesystem"l'idée derrièrecenom est
simplemais trèsefficaceet consisteentrois points: •Construire unmatérielpermettant detransformerune adressepasséepar leprocesseuren laposi- tionactuelle desdonnéescorrespondant àcetteadresse. •Ajouter unemécanismede paginationà lademande.Lorsque lematérielindique quel'adresse demandéen'est pasenmémoire principalecemécanisme permetchargerles donnéesman- quantes,par exempledansla zoned'échangeou encorenonchargées. Silamémoire principale estsaturée ilfautaussi déporterdespages verslazone d'échange. TE 2 •Développer unalgorithmede remplacementquipermet dechoisirla zonemémoireà sélectionnerpour ladéportersur ledisque. Derrièreces troisconceptssimples secacheun idéeincroyablementpuissante; lesadresses manipuléespar lesprogrammesne décriventplusl'emplacement physiquedesinformations maisleuremplacement logiquequiest géréparune coopérationdusystème d'exploitationetdu matériel.
Lamémoire estdevenuevirtuelle pourleprocessus ! Cettevoie serafortementétudiée parlemonde universitairede1965 à1975.De nombreuxsystèmes reprennentce principe,lesfondeurs depucesincorporent lagestionmémoire danslesprocesseurs et lemilieu delarecherche s'occupedetrouver desalgorithmesde remplacementainsique derésoudre diversesproblème commeletrashingtouten étudiantleprincipede localité. Dansle mêmetempsles systèmesmultiprogrammésfont leurapparitionet permettentd'exécuter plusieursprocessus demanièrepseudo concurrenteouconcurrente selonlescaractéristiques dumatériel.Certain systèmessontde typecoopératif(on retrouvedessystèmes decetype jusqu'àassez
récemmentpar exempleavecles MacOS7,8,9) oupremptif.Les systèmesmultiprogrammésre- posenttous surl'abstractionintroduite parlamémoire virtuelleetselon l'usagequien estfaitune réelleisolation desdifférentsprocessus estatteinte.Jusqu'àassez récemmentlessystèmes grandpubliqueétaient incapablesd'utilisercorrectement les
notionsintroduites desannéesplus tôt(Win9x etMacOS parneciter qu'eux).Ainsiaucune isola-tiondes espacesd'adressagedes différentsprocessusn'était réaliséecequi posedegraves problèmes
desécurité etdestabilité. Toutefoisdesannées plustôtces problèmesétaientparfaitement maîtrisés
parde nombreuxsystèmes,ainsi MULTICSétaitdoté d'unedesgestions mémoirelesplus évoluées
jamaisimplémentée; lessystèmespost MULTICStelque lesUNIXen reprenantgénéralementles conceptsde manièresimplifié. Denos jourslessystèmes courantssontde typesmultitachespréemptifs onpeutainsi noterLinux, *BSD,Solaris, MacOSX, Win2k/XP.Sur cessystèmesl'espace d'adressagedechaque processus n'estmodifiable queparle processusluimême etlenoyau estprotégéen lectureetécriture.2.2.Avantages delamémoire virtuelle
Parmisles avantagesapportéspar lamémoirevirtuelle ontrouve:•Contribue àl'écriturede codeindépendantde lamachine.Portabilité, réutilisabilité.
•Gestion automatiquedela zoned'échange.Les programmespeuventutiliser plusdemémoire qu'iln'y ademémoire principale •Optimisation del'utilisationde lamémoire.Les pagesnonutiles engendréesparerreurs deges- tionmémoire commelesfuites oulesallocation inutilesseretrouverons danslazone d'échange etlibérerons descadresde pagepourdes donnéesutiles.•Possibilité d'utiliserdesbibliothèques partagées.Optimisationde l'utilisationmémoire
•Permet d'implémenterdessystèmes multiprogrammésdemanière sûre. •Optimisation del'utilisationmémoire etdesperformances grâceàdes techniquescommela copieà l'écritureetla paginitionàla demande.2.3.Pagination
Lapagination estl'unedes deuxtechniques(qui peuventêtrecombinée) delamémoire virtuelle.Le principeest dediviserl'espace d'adressageenblocs detaillefixée parleprocesseur; lataillede ces blocsvarie de4KBà 64KBvoir4MB danscertainscas. Chacundeces blocspeutêtre déplacédans lamémoire physique.Lesystème d'exploitationavecla coopérationdumatériel doitmaintenirunelistequi permetdelocaliser l'emplacementdechaque bloc,quipeut éventuellementêtredéplacé sur
ledisque. TE 3L'avantagede cetteapprocheest lasimplicitédes opérationsassociéesà desdonnéesdont lataille
estconnue d'avance.Introduiredes blocsdetailles variablesimpliqueraitl'utilisation d'algorithmes deplacement coûteuxetcomplexes.Aveccette adresselaméthode pourretrouveroù sesituenos donnéesestfacile ilsuffitde découper
uneadresse virtuelleendeux parties.Lesbits depoidsforts indiquentlapage àlaquellenous faisonsréférencealors quelesbits depoidsfaibles représententledécalage danslapage. Lorsqu'unead-
ressevirtuelle estprésentéeà laMMUelle extraitlesbits depoidsfort etcommenceà rechercher l'adresseréelle delapage. Sicettepage n'estpastrouvable alorsundéfaut depagese produitetestsignaléau systèmed'exploitationpar leprocessus.La tâchedecelui-ci estalorsde savoirquoifaire
selonle contexteassociéau défautdepage (voirSection4, "Linux").Si lapageest trouvéealorsles permissionssont vérifiéesetsi celles-cisontcorrectes l'adressephysiqueest envoyéesurle bus mémoire;si lespermissionssont faussesundéfaut depagese produit.Traductiond'adresse parlapagination
Notonsque dansceschéma dèsquela MMUrencontreun problèmepourfaire latraductiond'adresseun défautdepage estremontéau systèmed'exploitationce quiluidélègue lestâches
suivantes •Aller chercherlapage manquantedansla zonedezone etlamettre enmémoireprincipale •Implémenter unalgorithmede remplacementdepage quichoisijudicieusement lespagesàévincer
•Gérer lesdéfautsde pagegénérésvolontairement pardesmécanismes telquela copieà
l'écriture(COW),qui permetderetarder lepluspossible laduplicationde page. Cecilaisse unegrandeliberté auxsystèmesd'exploitation pourimplémenterdes fonctionnalitésavancéesou émulerdemanière logicielledesfonctionnalités nonprésentesmatériellement.
Ledécoupage enblocsde taillefixemalgré lasimplificationdes opérationsintroduitune fragmenta-
tioninterne. Dansunsystème paginélesprotections portentsurune pageainsisi deuxdonnéesne doiventpas êtreprotégéesde lamêmemanière celle-cidoiventse trouverdansdeux pages différentesce quipeutmener àdespages partiellementremplies.Plus latailledes pagesestpetite plusla fragmentationinternesera faiblemaisd'un autrecôtéplus lesstructuresde donnéesdunoyau serontnombreuses pourgérerla mêmequantitéde mémoire.Actuellementla plupartdesproces- seursoffres despagesde 4KBetl'on sedirigevers despagesun peuplusgrande, puisquela mémoireprincipale necessede grossiret4KB commenceàêtre problématiquepourles noyaux. Certainsprocesseurs telqueles X86fournissentaussi despagesde 4MBicila fragmentationinterne peutêtre trèsimportante! Lesprocesseursalpha permettentdechoisir despagesde 8à64K. TE 4 Lemécanisme detraductiond'adresse peutreposersur deuxprincipes.Soit untabledes pagesmulti- niveauxsoit unetabledes pagesinversée.Nous allonsprésenterrapidement cesdeuxtechniques.2.3.1.Table depagesmulti-niveaux
Lastructure laplussimple pourunetable depageest unsimpleindex ouchaqueentrée contientson emplacementmémoire etquelquesbits pourstockerles informationsutiles.Tablede pageàun niveau
Trouverl'adresse physiqueesttrès simpleilsuffit alorsderemplacer lesbitsde poidsfortdécrivant lapage virtuelleparla pagephysique.On peutdifficilementfaire plusrapide;cependant cette méthodea unénormeinconvénient latailleoccupée parlastructure. Imaginonsdesadresses sur32 bitsavec despagesde 4KB.Les12 bitsdepoids faiblescorrespondentdonc audécalagedans la pageet les20bits depoidsfort aunumérode lapagevirtuelle. Cecidonne2^20 entréesdansla ta- bledes pages.Uneentréede tabledepage occuperaen moyenne32bits (20bitsd'adresse et12bits designification diverse).Ainsiune seuletablede pageoccupe2^20 *32= 32MB;sachantqu'il ya unetable depagepar processuslaconsommation mémoireesténorme etsurles machinespeupour- vuesen mémoireprincipalela consommationmémoiredu telletablede pagepeutexcéder la mémoirephysique présente! Pourcontrer ceproblèmeon aintroduitles tablesdepages multiniveaux.Lebut estmultiple;toutd'abordseule latabledes pagesdeplus hautniveauà besoind'êtrerésidente enmémoireles autres
peuventelles mêmeêtredéplacées versl'espaced'échange, deplustoutes lestablesde pagesn'ont
pasbesoin d'existertantqu'elles nesontpas nécessaires.Onévite doncd'utiliserde lamémoire inutilement.Les tablesdepages rencontréesfontgénéralement deuxniveaux(X86)ou troisniveaux (alpha).Plus deniveauxd'indirection commencentafaire sentirunepénalité àl'exécution. Prenonsl'exemple desprocesseursX86 quiprésententune tabledespages àdeuxniveaux, unes- paced'adressage de32bits etdespages de4KB(nous laissonsdecôté PAEetPSE.Chaque entrée detable depage(PTE) fait4octets. Ilya donc2^20PTEs àréférencer.Au lieud'utiliserune simple tablenous utilisonsplusieursniveaux detable.La tabledeplus hautniveaucontient 1024entrées quipointent vers1024tables depagesde niveau1.Ainsi chaqueentréede latablede niveau0ad- resse4MB demémoire.Les tablesdeniveau 1contiennent1024 PTEquiindiquent lapositionde la pagevirtuelle. Onconstate quenonseulement cettereprésentationdemande moinsdemémoire quela représentationà unniveau,4MB +4KBcontre 20MB,maisen plusles4MB peuventêtrepaginés etseulela tableracinea besoind'êtrerésidente. Latraductiond'adresse sefaitaisément delamanière
suivante. TE 5Tablede pageàdeux niveau
Onextrait toutd'abordles 10bitsde poidsfort,a l'entréecorrespondantedans latablede pagera- cineon obtientuneadresse quicorrespondà latablede pagecontenantle PTErecherché.On extrait alorsles 10bitsde poidsfortsuivants. Àl'indicecorrespondant delatable despagesde niveau1se trouvele PTEassociéà notreadressevirtuelle. Iln'ya plusqu'àcombiner les20bits d'adressecon- tenusdans lePTEavec les12bits dedéplacementde l'adressevirtuelle. Desprocesseurs telquele PowerPCoule PA-Riscimplémententcette recherchedemanière unpeu différentesi bienquedans certaincason n'estpasobligé desuivretoutes lesindirectionspour ret-rouverl'adresse physique.Pourplus dedétailson seréféreraà ladocumentationde cesprocesseurs.
Endépit desasimplicité cetteapprocheà quelquesinconvénients.La tailledesdonnées croitavecla
taillede l'espaced'adressageet nonavecla tailledela mémoireprincipale.De plusplusieurs niveauxd'indirections sontnécessairesce quiralentila recherche.Enfince nombred'indirections augmenteavec desespacesd'adressages conséquentscommeceux de64bits. Ellerestetoutefois employéedans beaucoupdeprocesseurs.2.3.2.Table depagesinversée
Latable depagemultiniveaux estuneapproche intuitiveetpuissante cependantellea l'inconviénent degaspiller unequantiténon négligeabledemémoire, toutd'abordpar cequela tailled'untable de pagecroit enfonctionde lataillede l'espaced'adressagevirtuel; maisaussipar cequechaque pro- cessusdispose desapropre table. Ilexiste unedeuxièmeapproche nettementmoinsconsommatrice demémoire,mais moinsintuitive etsemblant nepaspermettre lepartagedes pages.Ils'agit destablesde pageinversées.Le principe estle suivant.Ondispose d'uneuniquetable pourlesystème quiapour taillelenombre decadredu pagedu système.L'indicede cetableaucorrespond aunumérode cadredepage. Uneadressevir-tuelleest constituéedetrois parties
Traductiond'adresse partablede pageinversée
Cependantcette méthoden'estpas applicable,onconstate quifauten moyenne nombre_de_cadres_de_page/ 2accèsmémoire pourtraduireune adressevirtuelle! Pourrésoudrese problèmeon ajouteunetable dehachagepour réduirelenombre d'adressemémoireà consulter. Cettetechnique estassezpeu employéeetje nevoispersonellement pascommentpartager des pagesavec cettetechnique(possible ?).Enplus desdeuxprocédés présentésilexiste unpetitnombre devariantes.Certaines approches,bi-
enque nonimplémentéesactuellement, ontétéétudiées pardiverschercheurs; onpeutnotamment
citerles travauxdeJochen Liedtkesurune sortedetable depagemulti-niveaux maisnonbalancéeévitantainsi degâcherde l'espacepourdes espacesd'adressageclairsemés. Sonimplémentationin-
troduitplus deniveauxd'indirections qu'unetablede pagesà3 niveauxclassiquemais cecipourraitêtrecompensable àl'aided'un cachepourstocker lespointsd'entrer lesplusutilisés danslatable des
pages.On sereporteranotamment à[LIE94 ]et[ LIE]pour plusd'informationssur cettethéorie intéressante.On ytrouveraaussi unecritiquedes deuxautresapproches.2.4.Segmentation
D'unpoint devueconceptuel lasegmentationest àl'opposéde lapagination.Là oùl'onpositionnait
desdonnées dansdesblocs detaillefixe facilementdéplacable,la segmentationproposede re- grouperun ensemblehomogènede donnéesdansun blocmémoirede tailleappropriée.Les informa- tionssont alorsaccessiblespar rapportàl'adresse dedébutd'un segmentdonné;une adressedevient doncun couple(numérode segment,déplacement).La positionréelled'une telledonnéeest donc modifiableen changeantl'adressedu débutdusegment, leprogrammelui nevoitrien. Cependantle calculentre desadressesn'appartenant pasàun mêmesegmentn'a dèslorsaucun sens. L'avantageapporté parlasegmentation estdepas avoiràdupliquer d'informationscommedans la pagination(disposer desprotectionssur 2^20pagesest pluscoûteuxque protégerunsegment) etde nepas introduiredefragmentation interne.Demême partagerunsegment entreplusieursutilisateurs estplus simplequede maintenirdesensembles depagescohérents. Lecalculde l'adressephysique correspondantà uneadressevirtuel estplussimple quepourla paginationetse faitdela manière suivante TE 7Traductiond'adresse parlasegmentation
Cependantmalgré lefaitque leprincipede lasegmentations'énonce simplementellen'est pasla réponseà toutlesproblèmes etintroduitune plusgrandecomplexité danslaconception des systèmeset nesimplifiepas vraimentlesalgorithmes !Sila paginationintroduisaitune fragmenta- tioninterne (lesblocssont detaillefixe maislesdonnées peuventêtreplus petites)lasegmentation introduitun fragmentationexterne.Les segmentssontde taillevariableet peuventêtredéplacés dansl'espace d'adressagececiimplique detrouverune zonelibrede taillesuffisantepour placerles segmentsce quipeutêtre coûteux.Demême ledéplacementvers lazoned'échange d'unsegment s'effectuepar segment.L'avantageétant qu'ondéplaceun ensemblelogiqueservant peu(quià donc peude chancesderesservir) maislapagination permettaitdedéplacer despagesinutiles dansunen- sembledonné (erreursd'allocationpar exemple). Lenombre desegmentsétant limité(2^13sur X86)celapeut aussiposerdes problèmesside trèsnombreuxsegments doiventêtrecréés. Ceciàd'ailleurs étéproblématiquedans Linux2.2et
empêchaitde créerplusde 2^12processus. Certainsystèmes commeMULTICSont implémentéunmodèle mémoirebasésur delasegmenta- tionpaginée combinantlesavantages desdeuxméthodes. Ceciàpermis lamiseen placedeprotec-tionstrès finesettoujours peuégaléesdans lessystèmesactuels (lesanneauxde protectionontété
remplacéspar dessystèmesplus rudimentaires).Cependantla complexitédela VMMétaittrès im-
portanteet lessystèmesUNIX ontreprisles bonnesidéesde MULTICStouten lessimplifiantnot- ammenten mettantdecoté lasegmentationqui nesertpratiquement plusaujourd'hui.D'ailleurs l'AMD64ne disposeplusd'unité desegmentationen mode64bits.2.5.Gestion delazone d'échange
L'undes rôlesdusystème d'exploitationestde gérerdemanière transparentelazone d'échange.
L'utilisationdu disquedurcomme zonededélestage temporairedela mémoireprincipalerepose sur leprincipe delocalité.Des étudessurle comportementdesprogrammes ,notamentde P.J.Denning [DEN70],[DEN72],[DEN68 ],[DEN68b]et[DEN96],montrent quegénéralementlesaccèsmémoiresuivent unprincipede localité.C'est-à-direqu'à uninstantdonné seuleunepartie de
l'espaced'adresse d'unprocessusest utilisée,cettepartie estappeléeensemble detravail.Les études
statistiquesmontre quecetensemble detravailn'évolue quelentementau coursdel'exécution d'unprogramme;si uneréférencemémoire aétéfait àl'adresseX àl'instantT ilya degrandechance
quecette adresseresservedans unfuturproche. Inversementsiune adressen'apas étéutilisée depuislongtemps, ilya peudechance quel'onen aitbesoin. Lesalgorithmesde remplacementtirentparti deceprincipe pourenleverdes pagesquiont lemoinsdeprobabilité d'êtreutiliséesdans unfuturproche. Ilexisteun petitnombred'algorithmes quisont
notammentdécrit dans[TAN ],nousn'aborderons pascesalgorithmesdanscedocument. TE 82.6.Séparation endeuxde l'espaced'adressage
Surles systèmesutilisantla paginationl'espaced'adressage desprocessusest généralementséparé
endeux parties.Unepremière partiecontientles donnéesduprocessus etunedeuxième partie, identiquepour touslesprocessus, contientlamémoire dunoyau. Lebut decettetechnique estdeminimiser lecoûtdes appelssystèmespuisque lamémoirese trouve directementaccessible maisprotegéepar lematérielet iln'ya pasàvider leTLBàchaque fois.Demêmeil estalorstrès faciledetransférer desdonnéesde l'espaceutilisateurvers l'espacenoyau.Pour
êtreefficace lenoyauà souventbesoind'avoir danssonespace d'adressagetoutela mémoire physique.Cela s'effectuesimplementlorsque l'espaced'adressageest assezgrandmais pose problèmesur lesarchitectures32 bits.Eneffet siunemachine disposede3GB demémoireprincip- aleon nepeutraisonablement pasréserver3GB demémoirepour lenoyau,les processusnepour- raientalors aumaximumadresser qu'unGBde mémoire! Ainsigénéralement oneffectueun découpagedetaille fixe;courament3/1 surlesarchitectures 32 bits.Le noyaunedispose qued'unGB etnepeut doncpasdirectement accèderàtoute lamémoire. Celaest effectuéparune astucequiconsiste àreserverune partiedece GBpoureffectuer desmap- pingtemporaires. Onchangela tabledespages pourpouvoiraccèder àl'informationintéressante. Cependantune partiedesdonnées dunoyaudoit absolumentêtreadressable directementetdoit donc demandermoins d'unGBde mémoire.2.7.Hiérarchie demémoirescaches
Jusqu'icinous n'avonsparléque detroistypes demémoire: lamémoirede masseconstituéedes disquesdur, deslecteursde bandesouoptiques etc.,lamémoire principaleetenfin lesregistresdu processeurs. Cestrois catégoriessontséparées paraumoins unordrede grandeurtantau niveaudela tailleque destemps d'accèsetdébit; voiciquelqueschiffres : Mémoirede masse:Capacité: de100GBà quelquesTB,Temps d'accès:une dizainede ms,Débit :50MB/s Mémoireprincipale: Capacité:de 256MBàquelques GB,Tempsd'accès :del'ordre de ladizaine denanoseconde(133Mhz pourdela SDRAM)Hiérarchiemémoire desmachinesactuelles
Encomparant cesordresde grandeuràceux d'unprocesseuron peutconstaterque nonseulemental- TE 9 lerchercher unedonnéesur ledisqueprend uneéternité,n'oublions pasqueles processeursactuels ontune fréquencedel'ordre duGhz,mais allerchercherune donnéeenRAM n'apasun coût négligeablenon plus.Sinous revenonssurle principedetable depageque nousavonsintroduit on constateque pourfairela traductiond'uneadresse virtuelleenune adressephysiqueil fautconsulter latable despages.Cette tabledepage setrouveelle mêmeenRAM etpourune tableà2 niveauxil faut3 accèsmémoirepour obtenirl'adressephysique !Cecireprésente uncoûtgigantesque àl'exécution;l'introduction delamémoire virtuelleralentiraitalors énormémentlamachine pourtant
celane seproduitpas pouruneraison simple.Lamémoire d'unordinateuractuel estconstituéed'une hiérarchiede mémoires.Ainsion aintroduitdes cachesmatérielsà diversesendroitsquireprésentaientdes goulotsd'étranglement.Ainsi lesdisquesdurs sontéquipésd'un cached'unetaille
dequelques MBquipermet d'éviterd'avoirà déplacerlatête delecturesi ladonnéesest encore
présentedans lecache. Demême descachesont étéintroduitsentre lamémoireprincipale etleprocesseur. Descachesde niveauL1, L2,voirL3 ontétéintroduits pourgarderun petitnombrede donnéesenmémoire etles rendreaccessibles trèsrapidement.Plus lamémoireest procheduprocesseur pluselleest rapide maisplus elleestpetite carcoûteuse.Le butdujeux étantd'essayerde maintenirdansles cachesles plusrapides lesinformationsaccédées leplusfréquemment. Toutcescaches sebasentsur leprin-cipede localitéetimplémentent diversesméthodesde remplacementdontl'étude sortducadre dece
document. Toutefoisil existeuncache spécifiquequinous intéresseicile TLB,translationlookaside buffer.Le TLBàpour rôledegarder enmémoireun petitensemblede correspondancesadresse virtuelle/adressephysique +détailsde lapage.Encore unefoisle TLBsebase surleprincipe delocalitépour êtreeffectif.Sur lesprocesseurs80486 celui-ciavaitune taillede32 entréesquià été
élargieà 64entréesdepuis lesPentiumIII. Ainsiavecune tailledepage de4Kole taillegardeen mémoire64 *4= 256Kodetraduction enmémoireaccessible enmoinsd'un cycleCPU.Ainsi onpeutéviter danslaplupart descasle surcoûtentraînépar lapaginationen évitantd'avoirà consulter
latable depage. Cheminsuivit pouraccéderaux donnéesdansla plupartdesprocesseurs modernes.Àchaque étapeonessai decourscircuiter l'étagedudessous enregardantsi ladonnéen'est pasdéjàdans uncache
plusrapide. LeTLB neprésenteque desavantagespuisqu'au mieuxilpermet defairela traductionenmoins d'uncycle CPUetautrement lapénalitépour un"cachemissis" estdel'ordre de50cycles CPU;la MMUira alorsconsulterla tabledespages etplacerala valeurtrouvéedans leTLB. Ilest anotéque chaqueprocessusdisposant desonpropre espaced'adressageà chaquechangementdecontexte leTLBdoit êtrevidéet celaàdonc uncoûtà l'exécution.Deplus selonlesprocesseurs
TE 10 lagestion duTLBest matérieloulogiciel etlesystème d'exploitationàalors latachede defairela recherchedans latabledes pagesetde chargerl'informationcorrespondante àl'adressevirtuelle dansle TLB.Cecià pouravantagede laisserlesystème choisirlastructure dedonnéepour ses tablesde pagelematériel n'imposantrienà l'avance.Cependantle principalinconvénientest qu'il fautalors ilfautalors desinstructionspour parcourirlatable depages,généralement entre10et 100. Deplus ilestpossible quecesinstructions nesoientpas danslecache d'instructionalorsla pénalité àl'exécution estplusque conséquenteparrapport àuneprocédure câblée. Lechoix del'uneou l'autredesapproches sefaiten observantlafréquence des"cachemiss" etdonc lecoût induitpartel outelchoix. Nousprésenteronsen annexelessolutions proposéespartel outel processeur.2.8.Exhausion del'espaced'adressage
Undes butsetune desconséquencesde lamémoirevirtuelle estdepouvoir adresserplusd'espace mémoireque demémoireprincipale n'estdisponible.Bien entenducommenous l'avonsvucela sup- poseque l'espacedetravail resteluiplus petitouégal quelamémoire principalelecontraire entraînantinévitablement dutrashing. Cependantl'espace constituédela mémoireprincipaleet deszonesde swapsurle disqueconstitue luiaussi unensemblede tailleborné.Il peutarriverque lesystèmearrive àcourtde mémoireetne puisseplus satisfairelesdemandes d'allocationmémoire.Cette partiedela gestionmémoireest souventappelée OOMpour"out ofmemorymanagement". Undesprincipaux problèmesquiseposeest commentgérerde manièreoptimalela situation.Àce problèmedifférentessolutions ontété
proposéesaucunes n'estsatisfaisantenous allonsenprésenter quelquesunesen pointantleursavant- ageset leursinconvénients.Lapolitique optimalen'estréalisable quepartl'administrateur quisaitévaluer lasituationet choisir
l'actionqui auralemoins deconséquence.Évidement untelalgorithme n'estpasconcevables ainsi toutles algorithmesprésentésprésentent aumoinsun caspathologiqueou ilprendla mauvaise décision. Lapremière solutionetla plussimpleest denerien faire.Enfait ilsuffitde faireéchouerles de- mandesd'allocation mémoireetd'attendre quel'administrateursystème intervienne.Aucunequotesdbs_dbs44.pdfusesText_44[PDF] conversion adresse logique adresse physique
[PDF] pagination et segmentation pdf
[PDF] pagination systeme d'exploitation
[PDF] telecharger un livre de grammaire pdf
[PDF] larousse conjugaison pdf
[PDF] telecharger larousse difficultés grammaticales pdf
[PDF] larousse grammaire francais
[PDF] larousse orthographe pdf
[PDF] larousse livre de bord orthographe pdf
[PDF] introduction grammaire generative
[PDF] chomsky théorie
[PDF] chomsky linguistique pdf
[PDF] aspects de la théorie syntaxique pdf
[PDF] grammaire grecque ancien