Top Banner
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1
28

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

Jul 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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)