• Aucun résultat trouvé

Chaie 10 éie vi e

N/A
N/A
Protected

Academic year: 2022

Partager "Chaie 10 éie vi e"

Copied!
14
0
0

Texte intégral

(1)

Mémoire virtuelle et pagination

Lesoneptsdemémoirevirtuelleetdepaginationontétéintroduitspourpallieraumanquede

mémoirevivedespremiersordinateurs.Ilssontimplémentésauniveaudusystèmed'exploitation

maislesmiroproesseursenfailitentlamiseenplae.

(2)

10.1 Prinipes

10.1.1 Mémoire virtuelle

Dansertainsaslesbesoinsenmémoires'aroissentetnepeuventpastoujoursêtresatisfaits

par la mémoirevive physiquementprésente. Le système d'exploitation met alors (tivement,

évidemment)àla dispositiondes programmesplusde mémoirequ'iln'en existe réellement.La

méthodeutiliséereposesurlaonstationsuivante:l'intégralitédubesoinenmémoireviven'est

pasonstammentutilisée;ilestdonpossibledestokersurdisquelespartiesinativesjusqu'à

equ'ellessoientdenouveaurélaméesparunprogramme.

Leprinipedelamémoirevirtuelleestlesuivant:lesadressesmanipuléesparl'utilisateur

ne sont pas lesadresses physiques mais des adresses dites virtuelles.Un méanisme, appelé

unitéde gestion de la mémoire(MMUpourl'anglaisMemory ManagementUnit),traduit

lesadressesvirtuellesenadressesphysiques.

L'intérêt est le suivant : on peut s'arranger pour que la plage des adresses virtuelles soit

(bien) plus grande que la plage des adresses physiques. Bien entendu la taille de la mémoire

virtuelleeetivementutiliséeàunmomentdonné doitêtreinférieureàlatailledelamémoire

physique.Lesadressesvirtuellesorrespondantàdelamémoirephysiquenesontpasnéessaire-

mentontigues.D'unmomentàl'autre,lesadressesvirtuellesayantunorrespondantphysique

nesontpasnéessairementlesmêmes.

Unefaçondegérerlamémoirevirtuelleestlapagination,quenousallonsétudiermaintenant.

10.1.2 Pagination

10.1.2.1 Prinipe

Le prinipedelapagination(memory paging enanglais)repose surlesadres,lespages et

lestablesde pages:

Cadre. Lamémoire vivedisponible est partitionnée en adres (page frame en anglais)de

taillexe.

Page. Une page est un blo de données dontla taille est elle d'un adre. Elle peut être

stokéedansn'importequeladredelamémoireviveousurdisque.

Tablede pages. Un ensemble de tables de pages spéie la orrespondane entre les

adressesvirtuellesetlesadressesphysiques.

On parled'adresse linéaire (ouvirtuelle) lorsque la paginationest ativée. Desadresses

linéaires ontiguësàl'intérieurd'unemême pageorrespondentàdesadressesphysiquesonti-

guës.Parontre,ein'estpasleassiellessetrouventsurdespagesdistintes.

Les miroproesseurs atuels ontiennent des iruits, onstituant l'unité de pagination,

hargésdetraduireautomatiquementlesadressesvirtuellesenadressesphysiques.Leméanisme

deonversion(gure 10.1)reposesurleprinipesuivant:une adressevirtuelleestdéomposée

endeuxparties,unnumérodepageetundéalage(osetenanglais)danslapage.Lenuméro

depageestutiliséommeindiedansuntableau,appelétable despages,fournissantl'adresse

physique (de début de page) en mémoire entrale de ette page. À ette adresse est ajoutéle

déalagepourobtenirl'adressephysiquedel'élémentmémoireonerné.

Remarque.-LasegmentationdelamémoiredesmiroproesseursIntelet lapaginationrelèvent

dumêmeprinipedebase:ladiéreneentre lesdeux tientàe quel'onutilisedeuxvariables

(3)

Figure 10.1Pagination

10.1.2.2 Pagination à plusieursniveaux

Notion.-Lorsqu'iln'y aqu'uneseuletable depages,elledoitnéessairementsetrouverenper-

maneenmémoirevive;ettefaçondefairenéessited'utiliserbeauoupdemémoireuniquement

onsaréeàlatableomplète.Ellen'estdonquerarementimplémentéesouslaformed'uneseule

tableontiguëenmémoire:

Pour un miroproesseur 16 bits, on peut utiliser un seul niveau de pages. On a, par

exemple,despagesde4kiO,soitdouzebitspourledéalage.Ilrestequatrebitspourles

pages,soit16pages.Onadonunetabledepagesdetailleraisonnable.

Pourunmiroproesseur32bits, il estmoins raisonnablede n'utiliserqu'uneseulepage

et donunseulniveaude pagination.Toujourspourdespages de4kiO,il reste 20bits

pourlespages,soitunetable de1Mipages.Commeladesriptiondehaquepageexige

plusieursotets, elareprésenteune table deplusieursMiO,e qui oupetropdeplae

enmémoirevive.Onutilisedondeuxniveauxdetablesdepages,dixotetsétantaetés

àhaquetypedetables.

Parexemple,lemiroproesseursIntel80386peutadresser4GiO,latailledespages

mémoire est de 4 kiO, et haque entrée de la table oupe quatre otets; sur de tels

proesseursunetabledepageomplèteutiliserait1048576entrées,pouruneoupation

mémoirede4MiO.

(4)

Répertoiredetablesdepages.-Latabledepagesestdonsouventdéomposéeen plusieursni-

veaux,deuxauminimum:

unatalogue(ourépertoire)detablesdepages(pagediretoryenanglais)représente

leniveaudeux,ilontientlesadressesdespagesquiontiennent,quantàelles,desparties

delatable despages;

espartiessontlestablesdepagesdeniveauun.

Lagure10.2représentelaonversiond'adresse dansleasd'unearhitetureutilisantune

Figure10.2Tablesdepages

tabledepagesàdeuxniveaux.

L'intérêtdeettetable depages àdeuxniveaux reposesur lefait quelatable depagesn'a

pas besoin d'être hargée entièrement en mémoire vive. Si on utilise 6MiO (ontigus), seules

troispagessontutiliséespourlatabledespages:

lapageontenantlerépertoire,toujoursprésenteenmémoirevive;

lapageontenantlapartiedelatabledespagesorrespondantaux4premiersméga-otets

demémoire;

lapage ontenantla partie dela table des pagesorrespondantaux quatreméga-otets

(5)

10.2 La pagination de l'arhiteture Intel IA-32

LapaginationetlaMMUsontmisenplaedefaçonmatériellesurlesmiroproesseursIntel

depuisle80386.Pourlesmiroproesseurs32bits,elleutilisedeuxniveaux.Ilfaut initialiserle

répertoiredetable depages,lestables depagespuisativerlapaginationpourpouvoirutiliser

lesadressesvirtuelles.

10.2.1 Mise en plae

10.2.1.1 Registresde ontrle

La paginationest ontrléeparlesregistres de ontrle, d'unelongueurde32 bits, dont

nousavonsdéjàrenontré lepremier,et en partiuliersonbit 0,àproposdupassage aumode

protégé.

Lagurei-dessousdonnelastruturedees quatreregistresCR0àCR3:

MSW

P 000000000000000 00000000000 E T E M P CR0

G T S M P E

Not used CR1

Page fault linear address CR2

Page diretory base 000000000000 CR3

LeregistredeontrleCR1n'estpasutiliséparIA-32(ninonplusparx86-64d'ailleurs).

Ilest réservéauxproduits futurs.

Leregistrede ontrleCR2ontientl'adresselinéairede ladernièrepageàlaquelle on a

euaèslorsd'uneinterruptionpourfautedepagination.

LeregistredeontrleCR3ontientl'adresse physiquedebase durépertoiredepagesur

20bits(euxdepoidssupérieurs). Les12bits depoidsinférieurontiennent0.

L'adressephysiquedurépertoiredepagedoitdonêtrealignésurune page.

Le registre de ontrle CR0 ontient un ertain nombre de bits de ontrle, dont nous

avonsdéjàdéritslerledupremier,PE(àproposdupassageaumodeprotégé).Leseul

bitnousintéressantiiest lebit31,noté PG (pourPaGination), ativantlapagination

lorsqu'il est égal à 1. Dans e as, les tables de pages sont utilisées pour traduire les

adressesvirtuellesenadressesphysiques.

10.2.1.2 Tailledes pages

Depuisle80386,l'unité depaginationdesmiroproesseursIntelgèredespagesde4kiO.Il

fautdon12bitsdedéalagepoursituerunotetdansunepagepuisque

2 12 =

4096.

DepuislePentium,Intelgèreégalementdespagesde4MiO(Intelparledepagination éten-

due). On utilise alors un inquième registrede ontrle, noté CR4, pour spéier la taille des

(6)

10.2.1.3 Pagination à deux niveaux

L'arhitetureIA-32utiliselapagination(defaçonoptionnelle,rappelons-le)àdeuxniveaux:

L'adressephysiquedurépertoiredepages,devantêtreunmultiplede0x1000,rappelons-le

également,eststokéedansleregistredeontrleCR3.

Lerépertoiredetablesdepagesontientjusqu'à1024entréesde32bits, permettantde

loaliserjusqu'à1024tables depages.Lerépertoiredetablesdepagesadonune taille

maximalede4kiO,taille d'unepage.

Chaquetabledepagesontientégalementjusqu'à1024entréesde32bits,permettantde

loaliserjusqu'à1024pages.Unetabledepagesadonégalementunetaillemaximumde

4kiO,tailled'unepage.

Si les4GiOdemémoiresont paginés,le systèmedoitallouer 4kiOdemémoire pourle

répertoiredetablesde pageset jusqu'à4Kifois 1024otets,soit 4MiO,pourles1024

tablesdepages,représentantuneressouremémoireonsidérable.

10.2.1.4 Struture d'une adresse virtuelle

Les32bitsd'uneadressevirtuellesontrépartisentroishamps:

31 22 21 12 11 0

Diretory Page table Offset

Puisque1024=

2 10

,dixbits, lesbits22à31,formentunpremierindex, permettantde

séletionnerlatabledepagesdanslerépertoiredestablesdepage.

Dixautresbits,lesbits12à21,onstituentunseondindex,ditdepage,pointantdansla

tabledepagesséletionnéeparlepremierindex.Onytrouvel'adressephysiquedudébut

delapage.

Les12bits depoidsfaible,lesbits0à11,onstituentledéalage.

(7)

10.2.1.5 Struture d'une entréede table de pages

Lesentréesdurépertoiredestablesdepageset destables depagesontlamême struture,à

unbitprès.Chaqueentréeaunetaillede32bits,soit4otets,dontleshampssontlessuivants:

31 12 11 7 6 5 4 3 2 1 0

P P U R

Adresse de base réservé D A C W / / P

D T S W

Lesvingtbits12à31permettentdespéierl'adressedudébutdelatabledepages(pour

lerépertoire) oudela page(pourune table depages). Ilssontinterprétésommeles20

bitsdepoidsfortdel'adressephysique.

Eneethaquetabledepageethaquepageanonseulementunetaillede4kiOmais

on onsidère en plus qu'elle est alignée, 'est-à-dire que son adresse est un multiple de

4096,donqueles12bitsdepoidsfaibledeette adressesontégauxà0.

Lesbits 7 à11 sont réservéspour une utilisationqui pourra être dénie ultérieurement

parIntelet devantêtrenuls enattendant.

Lebit 6(D pourDirty,'est-à-diremodié) n'adesensquepourlesentréesd'unetable

depages.Ildoitêtrenulpourune entréedurépertoiredetablesdepages.

Ce bit est positionné par le miroproesseur haque fois qu'une opération d'ériture

est réalisée sur la page : ei permet au système d'exploitation de savoir qu'il doit en

sauvegarderleontenusurledisque.L'unitédepaginationneremetjamaisedrapeauà

0;'estausystèmed'exploitationdelefaireéventuellement(aprèssauvegardesurdisque).

Lebit5(ApourAessed)indiquesionaeuaèsàettepage(enletureouenériture,

ettefois-i):elafailitelagestiondelamémoirevirtuelleparlesystèmed'exploitation.

Comme pourle bit D, l'unité de pagination ne remet jamais e bit à zéro; 'est au

systèmed'exploitationdelefaireéventuellement.

Lesbit4(PCDpourPage-levelCaheDisable)et3(PWTpourPage-levelWrite-Through)

ontrlentlamiseenaheet nenousintéressentpaspourl'instant.

Lebit2(U/SpourUser/System)spéielesprivilèges: lorsquee drapeauest égalà0,

lerépertoirede tables de pages ou la table de pages n'estaessible qu'aux niveaux de

privilège0à2.

Lebit1(R/WpourRead/Write)spéielesdroitsdeletureetd'ériture lorsquequele

bit 2vaut1: lorsque le drapeauest égal à0,latable de pages oulapage peuventêtre

lus et éritsau niveaudeprivilège 3; lorsqu'ilest égalà1,ellene peutqu'être lue àe

niveaudeprivilège3.

lebit 0(P pourPresent) indiquesi latablede pagesoulapage estprésentenmémoire

vive.C'estévidemmentlesystèmed'exploitationquirenseigneebit.

Si edrapeau estpositionné,lapage(oulatabledepages)référenéeestprésenteen

mémoirevive;s'ilestbaissé,ellen'estpasenmémoireviveetlesautresbitspeuventêtre

utilisésparlesystèmed'exploitationpourunusagequiluiestpropre.

Si e drapeauest égal à0 et que l'on essaie de faireappel àette entrée,l'unité de

paginationstokel'adressevirtuelledansleregistredeontrleCR2etlèvel'exeption14,

'est-à-direl'exeption de défaut de page (Page Fault en anglais). Il appartient au

onepteurdusystèmed'exploitationd'érireungestionnaired'interruptionplaçantalors

(8)

10.2.1.6 Ativation de la pagination

Au démarragedes miroproesseurs Intel, lapagination n'est pasativée : les adressesvir-

tuellessontinterprétées ommedesadressesphysiques.Pourativerlapagination,ilfaut posi-

tionnerledrapeauPG (bit31)duregistrede ontrleCR0,après avoirinitialiséle registreCR3,

lerépertoireetlestablesdepages.

10.2.1.7 Méanisme de protetion matérielle

L'unitédepaginationutiliseunméanismedeprotetiondiérentdeeluiutiliséparl'unité

de segmentation. Alorsque lesmiroproesseurs Intel permettent d'utiliser quatre niveaux de

privilège différentspourunsegment, seulementdeux niveaux deprivilège peuventêtre utilisés

pourlespageset lestables depages. LorsqueledrapeauUser/Systemvaut0,lapagene peut

êtreadresséequelorsqueleCPLeststritementinférieurà3.Lorsqu'ilestégalà1,lapagepeut

toujoursêtreadressée.

De plus, àlaplae des trois typesde droitsd'aès (leture,ériture, exéution)assoiés à

unsegment,seulementdeux typesde droits(leture et ériture)sontassoiés àunepage. Sile

drapeauRead/Writed'uneentréedurépertoiredetablesdepagesoud'unetabledepagesvaut

0,latable depagesou lapageorrespondantene peut êtrequelue;sinon ellepeutêtrelue et

modiée.

Le registrede ontrleCR2ontientl'adresse linéairede ladernièrepageàlaquelle onaeu

aèslorsd'uneinterruptionpourfautedepagination.

10.2.1.8 Le ahe de pagination

Lemiroproesseurn'apasbesoindeonsulterlestablesdepaginationlorsdehaqueaès

mémoire, fort heureusement, omme il n'est pas néessaire de repasser par les tables de des-

ripteursdesegmentsàhaqueaès mémoire.Eneet,lemiroproesseurdiposed'untampon

interne,appeléahe de pagination(TLB pourTranslationLookaside Buerenanglais),a-

pable demémoriser32 entréesde pagesde 4kiO,et dond'unetaille de128kiO. Ce tampon

est

hh

ahé

ii

.

Àhaqueaèsmémoire,leproesseurreherhed'abordsilapagevouluepossèdesonentrée

dans e tampon. Si 'est le as, auune autre reherhe n'est utile. Les tests de séurité sont

eetués et l'adressephysiqueest alulée,leas éhéant: elaonsisteàadditionnerl'adresse

physique dudébut delapage, gurant dansle tampon, audéalageprésenté parl'adressevir-

tuelle.

Silapagen'estpasprésentedansleahedepagination,ilyaéhe,equiobligeleproesseur

àpasserparlestablesdepagination.Ilenprotepourhargerl'entréedelanouvellepagedans

letampon,abandonnant,parexemple,laplusanienneentréesileaheestplein.

10.2.2 Passage au mode protégé et retour

Lorsduretouraumoderéel,lapremièrehoseàeetuer,silapaginationestativée,estde

ladésativer.Ceidoitêtreeetuéàpartird'unepagepourlaquellelesadressesvirtuellessont

égalesauxadressesphysiques(

hh

identity mapped

ii

en anglais).Ilest prudentdemettre àzéro

(9)

10.3 Exemple

Utilisons,ommed'habitude,notrelé USBdémarrantsurMS-DOS.Créons-yunrépertoire

PAGEdanslequelnousplaeronslesprogrammesonernantlapagination.

Érivonsunprogrammequi,ommed'habitude,plaelemiroproesseurenmodeprotégéet

quireviendraenmoderéelàlan.

Unefoisenmodeprotégé,préparonslapagination.Rappelonsquenousavonsdéjàremarqué

quelesemplaementsmémoire6000:0etlasuite,ainsique7000:0etlasuite,nesontpasutilisés

parle÷urdusystème d'exploitationMS-DOS:toutest àzéroaudémarrage.

Plaçons notrerépertoiredetables depagesàl'adresse0x60000,qui est bienunmultiple de

0x1000,aveuneseuleentrée,elled'index0,ayantlavaleur0x61007.Ceisigniequelatable

depagessetrouveàl'adresse0x61000,néessairementunmultiplede0x1000,qu'elleestprésente

et qu'on a les droitsd'ériture et de leture (e qui n'a d'ailleurs pas beauoup d'importane

pouresdernierspourl'instant,puisqu'onrestetoujoursauniveaudeprivilège 0).

Puisque nousne savonspastropommentleBIOS et MS-DOSutilisent lepremierMiOde

lamémoire,nedéplaçonssurtoutriendansette partie. Nousallonsdonfaireensortequeles

adressesvirtuelleset physiquesseonfondentpourlaplage0x00000 0xFFFFF.Ceirevientà

plaer0x000007 pourl'index0dela tablede pages,0x001007pourl'index1etainsi desuite,

eninrémentantde0x1000àhaquefois,pourles256premièresentrées.

Nous noussentonsunpeupluslibre au-delàdupremierMiO(noussupposons bien sûrque

la mémoire vive implantée est supérieure à 1 MiO, e qui ne doit pas être un problème ave

unordinateur atuel). Nousallonsdon, nonpas plaer0x100007 pour l'entrée suivante,mais

0x102007.Celasigniequelaplaged'adresses virtuelles0x102000 0x102FFForrespondraà

laplaged'adressesphysiques0x100000 0x100FFF.

Une foislapaginationmiseenplae, érivons0x12345678àl'adressevirtuelle0x100000.Si

touts'est bienpassé,onaéritettevaleuràl'adressephysique0x102000.

Désativonsalorsla paginationet plaçonse qui setrouveàl'adresse physique0x102000 à

l'adresse(physique) 0x70000,de façonàpouvoirvérier,une foisrevenu àMS-DOS, e qui se

trouveàl'adresse7000:0etdonaussiàl'adresse0x102000.

#--- --- ---- --- ---;

# page.s ;

# Example program pagination in Proteted Mode ;

#--- --- ---- --- ---;

.setion .text

.globl _start

.ode16

.org 0x100

_start:

#

# Save flags and DS for return to real mode

#

movw %s,%dx

movw %dx,%ds

movw %dx,%ss

pushf

push %ds

movw %ds,%dx

movw %dx,seg

#

#Setting base for ode segments

(10)

movw %s,%ax

movzx %ax,%eax

shll $4,%eax # eax=base for ode segment

movl %eax,DESC1B

movb $0x9a,DESC1C # set segment attribute

#

# Setting of GDTA

#

movl $0,%eax # deja fait mais prudene

movl $0,%ebx

movw %s,%ax # deja fait mais prudene

#movw DESC0,%bx

.byte 0x0bb

.word DESC0

shll $4,%eax # deja fait mais prudene

addl %ebx,%eax

movl %eax,GDTA

#

# Make sure no ISR will interfere now

#

li

#

# LGDT is neessary before swith to PM

#

lgdtl GDTL

#

# Swith to PM

#

movl %r0,%eax

orb $1,%al

movl %eax,%r0

#

# Far jump to set CS & lear prefeth queue

#

.byte 0x0ea

.word pm_in

.word 8

#

# Load long segment desriptor from GDT into DS

#

pm_in: movw $0x10,%dx

movw %dx,%ds

movw %dx,%ss

movw %dx,%es

#---;

# A sample in proteted mode: ;

#---;

#

# Load CR3

#

movl $0x60000,%eax

movl %eax,%r3

#

(11)

#

movl $0x61007,%eax

addr32 movl %eax,%ds:(0x60000)

#

# Remap 00000h-FFFFFh to 00000h-FFFFFh

#

movl $256,%ex

movl $0x61000,%edi

movl $7,%eax

REPETER:

movl %eax,%es:(%edi)

inl %edi

inl %edi

inl %edi

inl %edi

addl $0x1000,%eax

del %ex

jexz FIN

jmp REPETER

FIN:

#

# Remap 100000h-AFFFFh to 102000h-102FFFFh

#

movl $0x102007,%eax

movl $16,%ex

REPEAT2:

movl %eax,%es:(%edi)

inl %edi

inl %edi

inl %edi

inl %edi

addl $0x1000,%eax

del %ex

jexz FIN2

jmp REPEAT2

FIN2:

#

# Enable pagination

#

movl %r0,%eax

btsl $31,%eax

movl %eax,%r0

jmp FOO

FOO: nop

#

# Sample using of address

#

movl $0x12345678,%eax

addr32 movl %eax,%ds:(0x100000)

#

# Deative pagination

#

movl %r0,%eax

(12)

movl %eax,%r0

jmp FOO2

FOO2:

xorl %eax,%eax

movl %eax,%r3

#

# Read 102000h

#

addr32 movl %ds:(0x102000),%eax

addr32 movl %eax,%ds:(0x70000)

#--- ---- ---;

# End of the sample in proteted mode ;

#--- ---- ---;

#

# Load 64kB segment desriptor from GDT into DS for return

#

movb $0x18,%dl

movw %dx,%ds

#

# Return from PM ro real mode

#

andb $0x0fe,%al

movl %eax,%r0

#

# Far jump to restore CS & lear prefeth queue

#

.byte 0x0ea

.word pm_out

seg: .word 0

pm_out:

#

# Restore DS and flags

#

movw %s,%dx

movw %dx,%ss

pop %ds

popf

#

# Exit to MS-DOS

#

ret

#

#--- ---- --- -;

# GDT to be used in Proteted Mode ;

#--- ---- --- -;

#

# null desriptor

#

DESC0: .long 0 # null desriptor

.long 0

#

# desriptor for ode segment in PM

#

(13)

DESC1B: .word 0 # base = 0 to set

.byte 0 # base

DESC1C: .byte 0x9A # ode segment

.byte 0 # G = 0

.byte 0

#

# desriptor for data segment in PM

#

DESC2: .word 0x0FFFF # limit 4GB

.word 0 # base = 0

.byte 0 # base

.byte 0x92 # R/W segment

.byte 0x8F # G = 1, limit

.byte 0

#

# desriptor for data segment return to real mode

#

DESC3: .word 0x0FFFF # limit 64kB

.word 0 # base = 0 to set

.byte 0 # base

.byte 0x92 # R/W segment

.byte 0 # G = 0, limit

.byte 0 # base

#

# GDT table data

#

GDTL: .word 0x1F # limit

GDTA: .long 0 # base to set

Assemblonsehierpage1.ssousLinux:

$ as page1.s --32 -o ./page1.o

$ objopy -O binary ./page1.o ./page1.om

$ ls -l page1.om

-rwxr-xr-x 1 patrik patrik 569 sept. 28 10:57 page1.om

$

Ilnefautgarderqueles313derniersotetsdubinaire:

$ objopy -O binary -i 800 --interleave-width 313 -b 256 ./page1.o ./page1.om

$

Après avoir exéuté e programme sous MS-DOS, on retrouve bien la valeur voulue en

0x70000:

C:\PROTECT>debug

-D 7000:0 L 10

7000:0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...

-q

C:\PROTECT>page1

C:\PROTECT>debug

-D 7000:0 L 10

7000:0 78 56 34 12 00 00 00 00-00 00 00 00 00 00 00 00 xV4...

-q

(14)

10.4 Historique

Mémoirevirtuelle.- L'Allemand Fritz Rudolf Güntsh (19252012) invente le prinipe de la

mémoire virtuelle en 1956. Elle est alors onsituée d'une mémoire rapide, de petite taille, et

d'unemémoirepluslente,orantlaapaitéqu'ildésirait:il utiliseommemémoiredegrande

apaité10tambourstournantdefaçonasynhroneàtéd'unemémoirerapidede600mots.

Iléritdanssathèse[Gun-57℄,soutenueen1957:

hh

Leprogrammeurn'apasbesoindeprendre

enonsidérationlestokageàaèsrapide(iln'amêmepasbesoindesavoirqu'ilexiste).Puisqu'il

yaunseultyped'adresses,intervenantdanslaprogrammation,ommes'ils'agissaitd'uneseule

mémoireprésente.

ii

Pagination.-L'artile[KELS-62℄deréférenedeJamesKilburn,paruen1962,déritlepremier

ordinateur doté d'un système de gestion de mémoire virtuelle paginée, utilisant un tambour

ommeextensiondelamémoireentraleàtoresdeferrite: l'Atlas.

10.5 Bibliographie

[GL-59℄ Güntsh, F.-R. and R. Lukas, Magnetbandrehner der Tehnishen Universität

Berlin,Elektronishe Datenverarbeitung,2/1959,pp.3346.(Lealulateurà

rubanmagnétiquedel'universitédeBerlin).

[Gun-57℄ Güntsh,F.-R.,LogisherEntwurfeinesdigitalenRehengerätsmitmeh-

reren asynhron laufenden Trommeln und automatishem Shnellspei-

herbetrieb, TU Berlin, 1957 (Dissertation) (Esquisse logique d'une mahine à

alulernumérique ayantplusieurstamboursfontionnant defaçonasynhroneet

unemémoireàaèsrapideautomatique).

[Jes-04℄ E.Jessen,OriginoftheVirtualMemoryConept,IEEEAnnalsOFtheHistory

ofComputing,Vol.26,4/2004,page71.

[KELS-62℄ Kilburn, Edwards, Lanigan, and Summer, One level storage system, IRE

Transations on eleroniomputers, EC-11,vol.2,avril1962,pp.223235.

Références

Documents relatifs

Déterminé à poursuivre l’action sur ce dossier crucial pour l’ensemble de la profession comme pour les élèves, le SNES entend faire toucher du doigt à Luc Chatel

le nez offre des arômes de petits fruits rouges avec des

De retour en région Rhône-Alpes en septembre 2020, elle devient res- ponsable de la bibliothèque de San- té de l’UJM et découvre son nouvel environnement, dans un cadre

de la routine de servie de l'interruption se trouve à l'adresse 4 × n pour le type n : les deux otets de IP se trouvent à l'adresse 4 × n et les deux otets de CS à l'adresse 4 × n +

Pour une valeur se trouvant à l'adresse (de mémoire vive) désignée par le ontenu d'uno. registre (de seize bits, puisque 'est la taille du déplaement), on indique le nom de

a - Erire un programme qui renvoie true si un triangle est retangle à partir des longueurs de es tés. b - Erire un programme qui alule la longueur de l'hypothénuse d'un

Étant donné que les problèmes du tournoi sont difficiles et font l’objet d’un temps de recherche long (plusieurs mois) il a semblé plus intéressant d’étudier dans le détail

- Le fait qu’il y ait deux emplois dans la première partie s’explique aussitôt par l’ éloignement de ces barques venues « hors de ». - Dans la deuxième partie qui est