Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één...

28
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1

Transcript of Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één...

Page 1: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Geheugenbeheer

ICT Infrastructuren

hoofdstukken 7 en 8.1

Page 2: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Eenvoudig geheugenbeheer

• OS gebruikt een klein stukje geheugen• rest is voor gewone processen

OS vrij

0 1000

Page 3: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Eenvoudig geheugenbeheer

• OS gebruikt een klein stukje geheugen• rest is voor gewone processen

– processen beginnen op adres 1000– waar plaats je een tweede proces?

OS vrij

0 1000

proces 1

Page 4: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Relocatie

• programma’s bij het laden aanpassenaan variabel beginadres

• OS moet adressen vertalen• bestand bevat nodige informatie

Page 5: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Meer eisen

• bescherming:proces leest geen vreemde gegevens

• sharing:samenwerkende processen kunnengemeenschappelijke gegevens hebben– b.v. programmacode

Page 6: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Logisch geheugen

• Logische indeling van geheugenscheiden van fysische

• logisch = wat de programmeur zietfysisch = hoe geheugenchips werken

• Memory Management Unit vertaaltlogisch fysisch

Page 7: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Memory Management Unit

busProcessor Geheugen

Page 8: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Memory Management Unit

Processor Geheugenadresbus

databuslezen/schrijven

verkeerd adres

Page 9: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Memory Management Unit

Processor Geheugenlogisch adr

databuslezen/schrijven

fysisch adresverkeerd

MMUlogisch of

fysisch adresverkeerd

fysisch adr

Page 10: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Technieken voorlogische adressen

• Partitionering• Paging• Segmentatie• Virtueel geheugen

Page 11: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Partitionering

• verouderd,basis van andere technieken

• geheugen verdeeld in vaste blokken• elk proces krijgt één blok

• logisch adres = adres binnen blok• fysisch adres = logisch adres +

beginadres van blok

Page 12: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Partitionering

• nadeel: kleine en grote processenkrijgen evenveel geheugen(interne fragmentatie)

• variant: verschillend grote blokken

• nieuw probleem: veel kleine processen,of twee processen van 16 MB

Page 13: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Dynamische partitionering

• OS maakt blok aanals proces start

• bij einde ontstaat gat(externe fragmentatie)

• verschillende groottes– welk gat gebruiken

voor nieuw proces?– “first / next / best fit”

Page 14: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Paging

• geheugen verdelen in kleine blokkenvan vaste grootte– frame = fysiek geheugenblok– pagina = logisch geheugenblok

• proces gebruikt 1 of meer pagina’s• fysieke adressen van pagina’s

hoeven niet op elkaar te volgen

Page 15: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Voorbeeld: Paging

pagina 0van proces C is

in frame 7

B stopt

D start

Page 16: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Paging: Berekeningvan fysiek adres

• hogere bits van logisch adres: paginanummer• lagere bits: offset binnen de pagina

Page 17: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Segmentatie

• geheugen verdelen in blokkenvan variabele grootte– segment bevat een stuk programmacode

of gegevens voor één proces• lijkt op dynamisch partitioneren

– proces kan meerdere segmenten hebben• segmenttabel ≈ paginatabel +

Page 18: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Segmentatie

• programmeur ziet segmenten• betere bescherming

– read-only segmenten– execute-only segmenten– strengere controle op verkeerd adres

• geen interne fragmentatie• wel externe fragmentatie

Page 19: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Segmentatie:Berekening van fysiek adres

• hogere bits van logisch adres: segmentnr• lagere bits: offset binnen het segment

additie

offset ≥ lengte?

Page 20: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Virtueel geheugen: Idee

• Localiteit: proces gebruiktniet alle pagina’s/segmenten tegelijk

• ⇒ ongebruikte delen hoeven niet inhoofdgeheugen te staan!

Page 21: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Virtueel geheugen: Uitwerking

• stukjes van proces:– sommige in hoofdgeheugen– andere op harde schijf

• als proces stukje op harde schijf gebruikt:– MMU genereert interrupt– OS reserveert nieuw frame/segment– OS laadt stukje daarheen

• extra informatie in pagina- of segmenttabel

Page 22: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Virtueel geheugen: Voordelen

• meer processen• grotere processen• snellere start van processen

• efficiënt! (meestal...)

Page 23: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Meer details over...Paginatabellen

• paginatabel kanerg groot worden

• idee: paginatabelin virtueel geheugen

• twee niveaus• translation lookaside

buffer = cache

Page 24: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Meer details over...omgekeerde paginatabel

• andere oplossing voor grote paginatabel• klassiek: logisch → fysiek adres• omgekeerd: fysiek → logisch adres

– één entry per fysiek frame– grootte van paginatabel

in verhouding met fysiek geheugen– hash-functie voor snelle vertaling logisch → fysiek

Page 25: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Virtueel geheugenmet segmenten

• minder gebruikelijk, ook mogelijk• zelfde principes als bij paging,

behalve segmentgrootte

Page 26: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Alles-in-één-pakket

• segmentatie+paging+virtueel geheugen• combineert voordelen van beide kanten• nadeel: ingewikkelde berekening van

fysiek adres

Page 27: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Berekening van fysiek adres

Page 28: Geheugenbeheer•klassiek: logisch → fysiek adres •omgekeerd: fysiek → logisch adres –één entry per fysiek frame –grootte van paginatabel in verhouding met fysiek geheugen

Gezegende Kerstdagen

...voor de luilakken die nietnaar het werkcollege komen

(donderdag 10:45, zaal HG01.028)