hogeschool rotterdam / cmi

advertisement
HOGESCHOOL ROTTERDAM / CMI
Computersystemen 3
(Operating systems)
[email protected]
HOGESCHOOL ROTTERDAM / CMI
4 Geheugenbeheer
HOGESCHOOL ROTTERDAM / CMI
Geheugenbeheer (1/4)
• Het geheugen kan
worden beschouwd als
een van de belangrijkste
hulpbronnen (resources).
• Omdat dit niet onbeperkt
groot is, is het zaak het
geheugen zo effectief
mogelijk te beheren.
L.V. de Zeeuw
Computersystemen 3
3
HOGESCHOOL ROTTERDAM / CMI
Geheugenbeheer (2/4)
• De omvang van programma’s neemt
even snel toe als de omvang van het
geheugen.
• Wet van Parkinson: de omvang van
programma’s is afhankelijk van de
beschikbare geheugenruimte.
L.V. de Zeeuw
Computersystemen 3
4
HOGESCHOOL ROTTERDAM / CMI
Geheugenbeheer (3/4)
Het deel van het besturingssysteem dat het geheugen
beheert noemen we de memory manager.
Taken:
• Bijhouden wat wordt gebruikt en wat niet.
• Toewijzen geheugen aan processen.
• Vrijgeven van geheugen als een proces is beëindigd.
• Zo nodig verplaatsen van processen van geheugen
naar disk en vice versa (swappen).
L.V. de Zeeuw
Computersystemen 3
5
HOGESCHOOL ROTTERDAM / CMI
Geheugenbeheer (4/4)
We onderscheiden :
Geheugenbeheer
• zonder swappen of paging
• met swapping
Lapmiddel, het
• met virtual memory
geheugen is te klein
voor alle processen
L.V. de Zeeuw
Computersystemen 3
6
HOGESCHOOL ROTTERDAM / CMI
Monoprogrammering zonder
swapping of paging
• Eén proces in het geheugen.
L.V. de Zeeuw
Computersystemen 3
7
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering en
gebruik van het geheugen
Argumenten voor multiprogrammering:
• Applicaties zijn eenvoudiger te
ontwikkelen: Toepassingen verdelen
in processen.
• Verkrijgen van een redelijke
responstijd.
• Processen wachten vaak lang op
I/O.
• Verbeteren bezettingsgraad CPU
L.V. de Zeeuw
Computersystemen 3
8
HOGESCHOOL ROTTERDAM / CMI
Model voor
multiprogrammering (1/4)
De bezettingsgraad van de CPU is 100%
als 5 processen gemiddeld 20% van de
tijd berekeningen uitvoeren …
Dit model is te optimistisch omdat
processen vaak tegelijk op I/O wachten.
L.V. de Zeeuw
Computersystemen 3
9
HOGESCHOOL ROTTERDAM / CMI
Model voor
multiprogrammering (2/4)
Een beter model verkrijgen we door rekening te houden
met statistische verschijnselen.
• Process wacht een fractie p van zijn tijd op I/O.
• Bij n processen in het geheugen is de kans dat alle
processen tegelijk wachten pn . (CPU is nu idle)
• De bezettingsgraad van de CPU is dan 1- pn
N is de graad van multiprogrammering
L.V. de Zeeuw
Computersystemen 3
10
HOGESCHOOL ROTTERDAM / CMI
Model voor
multiprogrammering (3/4)
Processen zijn niet onafhankelijk van
elkaar: een proces dat klaar is om te
worden uitgevoerd moet soms wachten
op een ander proces.
Een beter model maakt gebruik van de
wachtrij theorie.
L.V. de Zeeuw
Computersystemen 3
11
HOGESCHOOL ROTTERDAM / CMI
Model voor
multiprogrammering (4/4)
Conclusie: Het gebruik van multiprogrammering
verbetert de bezettingsgraad van de CPU.
L.V. de Zeeuw
Computersystemen 3
12
HOGESCHOOL ROTTERDAM / CMI
Batch-Performance
Multiprogrammeringssystemen
a)
b)
c)
Aankomst en
verwerkingstijden
van 4 jobs.
Bezettingsgraad
CPU van job 1 t/m 4
als 80% van de tijd
op I/O wordt
gewacht.
Gebeurtenissen als
jobs worden
aangeboden en
uitgevoerd. De
getallen boven de
horizontale lijn is de
tijdsduur dat een job
de CPU kan
gebruiken.
(20-15) x .16 = 0.8
minuut / process
L.V. de Zeeuw
Computersystemen 3
13
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (1/9)
• Het is handig meer processen in het
geheugen te plaatsen.
• Hoe kunnen we nu het beste het geheugen
organiseren?
• De eenvoudigste manier is gebruik te maken
van partities: een verdeling van het geheugen
in niet noodzakelijkerwijs even grote delen.
(OS/360 IBM mainframe)
L.V. de Zeeuw
Computersystemen 3
14
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (2/9)
L.V. de Zeeuw
Computersystemen 3
15
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (3/9)
Gescheiden input queues:
• Job in de kleinst mogelijke partitie.
Nadeel: Er kunnen wachtrijen ontstaan bij kleine
partities, terwijl en grote partities vrij zijn.
Enkele input queue:
• Kleine jobs kunnen in grote partities komen te staan.
Nadeel: Deze strategie discrimineert de kleine jobs
L.V. de Zeeuw
Computersystemen 3
16
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (4/9)
Jobs worden uitgevoerd op
verschillende adressen
De linker moet het begin adres
weten waar het programma in
het geheugen moet worden
geplaatst.
L.V. de Zeeuw
Computersystemen 3
17
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (5/9)
Oplossing: Relocatie
Relocatie is het aanpassen van instructies
op moment dat een programma in het
geheugen wordt geladen.
Een bit map bepaald of iets een
adres,
opcode (instructie),
of constante is
of andere betekenis heeft.
Alleen adressen moeten worden vertaald.
L.V. de Zeeuw
Computersystemen 3
18
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (6/9)
Beveiligingsprobleem:
Een kwaadaardig programma kan
kan altijd nieuwe instructies
maken en daarnaar toe
springen…
Zeker in een multiuser systeem is
dit ongewenst
L.V. de Zeeuw
Computersystemen 3
19
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (7/9)
Oplossing (IBM/360):
• Geheugen verdelen in blokken van 2K
bytes
• Per blok een 4 bits beschermingscode.
• De PSW bevat een sleutel voor deze
beschermingscode.
• De hardware veroorzaakt een trap als
een proces geheugen gebruik waarvan
de beschermingscode niet
overeenstemt met de PSW sleutel.
L.V. de Zeeuw
Computersystemen 3
20
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (8/9)
PSW sleutel
L.V. de Zeeuw
Computersystemen 3
21
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
een vaste grote (9/9)
Andere oplossing voor relocatie en bescherming:
•
•
•
•
•
Hardware registers base en limit
Base bevat het adres waar de partitie begint.
Limit bevat de grootte van de partitie
Geheugenadres<limit
Geheugenadres:= geheugenadres+base voordat de
instructie in het geheugen wordt gezet.
L.V. de Zeeuw
Computersystemen 3
22
HOGESCHOOL ROTTERDAM / CMI
Swappen
Het gebruik van partities met een vaste grote is
…
• effectief bij een batch systeem.
• niet effectief bij een time-sharing systeem met
vele gebruikers – meestal zijn er meer
gebruikers dan het geheugen aan processen
kan opslaan.
Swappen is het verplaatsen van processen van
disk naar geheugen en vice versa.
L.V. de Zeeuw
Computersystemen 3
23
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
variabele grootte (1/5)
Bij swappen is het gebruik van partities
van vaste grote niet zo aantrekkelijk.
Reden: veel programma’s zijn te klein
voor een partitie
 verspilling van geheugenruimte.
Oplossing: variabele lengte partities
L.V. de Zeeuw
Computersystemen 3
24
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
variabele grootte (2/5)
L.V. de Zeeuw
Computersystemen 3
25
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
variabele grootte (3/5)
Variabele grootte partities.
Voordeel:
het geheugen wordt beter benut.
Nadeel:
gecompliceerd.
L.V. de Zeeuw
Computersystemen 3
26
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
variabele grootte (4/5)
Memory compaction:
Het nog beter benutten van het geheugen door
het verplaatsen van processen naar het
kleinst mogelijk beginadres.
Nadeel:
Tijdrovend.
Oplossing:
Speciale hardware gebruiken
L.V. de Zeeuw
Computersystemen 3
27
HOGESCHOOL ROTTERDAM / CMI
Multiprogrammering met partities van
variabele grootte (5/5)
L.V. de Zeeuw
Computersystemen 3
28
HOGESCHOOL ROTTERDAM / CMI
Systemen voor het bijhouden
van geheugen gebruik
• Bit maps
• Lijsten
• Buddy systemen
L.V. de Zeeuw
Computersystemen 3
29
HOGESCHOOL ROTTERDAM / CMI
Geheugenbeheer met behulp van
bitmaps en lineaire lijsten
L.V. de Zeeuw
Computersystemen 3
30
HOGESCHOOL ROTTERDAM / CMI
Bit maps
• Het geheugen wordt verdeeld in eenheden van gelijke grootte.
• Per eenheid correspondeert een bit uit de bit map.
0 = eenheid ongebruikt
1 = eenheid gebruikt.
• Grotere eenheden  kleinere bit map
(maar verspilling van geheugen ruimte)
• Groter geheugen  grotere bitmap
• Voordeel bitmap: Eenvoudig
• Nadeel bitmap: Doorzoeken duurt lang
L.V. de Zeeuw
Computersystemen 3
31
HOGESCHOOL ROTTERDAM / CMI
Lineaire lijsten (1/5)
Iedere entry in de lijst beschrijft of het
geheugensegment wordt
• gebruikt (Process) of
• vrij is (Hole) en
• het beginadres en de
• lengte
L.V. de Zeeuw
Computersystemen 3
32
HOGESCHOOL ROTTERDAM / CMI
Lineaire lijsten (2/5)
L.V. de Zeeuw
Computersystemen 3
33
HOGESCHOOL ROTTERDAM / CMI
Lineaire lijsten (3/5)
Algoritmen voor geheugen toewijzing
•
First-fit:
– Zoeken naar een gat dat groot genoeg is.
– Gat splitsen in P en H
Werkt snel.
•
Next-fit
– Werkt als first-fit maar zoekt verder naar een gat dat groot genoeg is.
Werkt iets langzamer dan first-fit.
•
Best-fit
– De hele lijst wordt doorzocht naar het kleinste gat.
Langzamer dan first-fit.
Minder efficiënt geheugen gebruik, er onstaan kleine onbruikbare gaten.
•
Worst fit
– Het grootste gat wordt toegewezen. Na verdeling blijft er nog een bruikbaar gat over.
Geen goed algoritme.
L.V. de Zeeuw
Computersystemen 3
34
HOGESCHOOL ROTTERDAM / CMI
Lineaire lijsten (4/5)
Algoritmen voor geheugen toewijzing
Verbetering: aparte lijsten voor gaten en processen
– Voordeel er wordt sneller een geschikt gat gevonden
– Nadeel: vrijgeven van geheugen gaat langzamer
• Gaten lijst sorteren op grootte.
– First- en Best-fit werkt dan even snel
• Gaten kunnen zelf ook voor de gaten lijst worden
gebruikt, dit maakt aparte lijst overbodig:
– 1ste word in gat: grootte van het gat
– 2de word: pointer naar volgend gat
L.V. de Zeeuw
Computersystemen 3
35
HOGESCHOOL ROTTERDAM / CMI
Lineaire lijsten (5/5)
Algoritmen voor geheugen toewijzing
Quick-fit:
• Apparte lijsten met elementen met de meeste
gevraagde geheugen grootte.
Bv tabel met n-entries:
1ste entry pointer naar 4 kb gaten lijst
2de entry pointer naar 8 kb gaten lijst
3de entry pointer naar 12 kb gaten lijst
Etc
Toewijzen werkt snel.
Vrij geven van geheugen complex en langzaam
L.V. de Zeeuw
Computersystemen 3
36
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (1/)
• Toewijzen van gaten snel maar
• Vrijgeven van geheugen langzaam:
Niet alleen proces lijst aanpassen maar ook
in gaten lijst zoeken naar buurelementen.
Oplossing: buddy-systeem
L.V. de Zeeuw
Computersystemen 3
37
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (1/5)
• Lijst met vrije blokken van 1,2,4,8,16, …
bytes t/m omvang geheugen.
• Voorbeeld voor een geheugen van 1
Mbyte = 1048576 byte zijn
2log(1048576) = 20 lijsten nodig.
L.V. de Zeeuw
Computersystemen 3
38
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (2/5)
L.V. de Zeeuw
Computersystemen 3
39
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (3/5)
• Als het geheugen leeg is, is er één gat met omvang
van het geheugen.
• Voor een een proces van x bytes is een gat nodig
van: 2 int( (log(x)/log 2) +1) bytes.
• Als er geen vrije blokken zijn van de juiste omvang,
wordt een te groot blok gesplist in twee gelijke delen.
• Het eerste deel wordt weer gesplitst in twee delen
totdat het proces net past.
• Bij het splitsen ontstaan twee naast liggende buddy’s
van gelijke grootte.
L.V. de Zeeuw
Computersystemen 3
40
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (4/5)
• Bij vrijgeven van geheugen wordt een
blok weer opgenomen in de betreffende
lijst met vrije blokken.
• Tevens wordt onderzocht of er
eventueel blokken kunnen worden
samengevoegd.
• Dit kan alleen bij buddy blokken.
L.V. de Zeeuw
Computersystemen 3
41
HOGESCHOOL ROTTERDAM / CMI
Geheugen beheer
met buddy-systeem (5/5)
Voordeel:
Buddy systemen zijn snel: de memory
manager door zoekt alleen de juiste lijst de
correspondeert met de omvang van het
proces.
Nadeel:
Inefficiënt gebruik geheugen.
Voorbeeld: 35 KB proces krijgt 64KB
toegewezen. Dit lijdt tot interne fragmentatie.
L.V. de Zeeuw
Computersystemen 3
42
HOGESCHOOL ROTTERDAM / CMI
Interne / externe fragmentatie
• Bij interne fragmentatie slaat ‘intern’ op
aan een proces toegewezen geheugen
ruimte die niet zal worden gebruikt door
het proces.
• Externe fragmentatie bestaat uit kleine
gaten die vaak niet kunnen worden
toegewezen aan processen.
L.V. de Zeeuw
Computersystemen 3
43
HOGESCHOOL ROTTERDAM / CMI
Toewijzen van swap-ruimte
• Bij verplaatsing van een process van
geheugen naar disk (swappen) moet
de benodigde ruimte worden gezocht
en toegewezen.
• Twee systemen: Processen hebben
geen/wel een vast plek binnen de
swap-area op de disk.
Een vaste plek op disk wordt
toegewezen op moment van het
creëren van een proces
• Voor de toewijzing van ruimte op disk
worden dezelfde algoritmen gebruikt
als voor geheugenbeheer.
L.V. de Zeeuw
Computersystemen 3
44
HOGESCHOOL ROTTERDAM / CMI
Analyse swapping systeem:
externe fragmentatie
Voor een systeem in evenwicht is de …
•
•
De helft van het aan geheugen operaties
bestaat uit toewijzen de andere helft uit
vrijgeven.
Van de helft van de operatie die geheugen
vrijgeeft leidt de helft tot gaten die moeten
worden samengevoegd.
fifty percent rule
L.V. de Zeeuw
Computersystemen 3
45
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (1/3)
Probleem: Geheugen te klein voor een
programma.
• Een oplossing: verdeel programma in stukjes
(overlays) en run de overlays na elkaar …
• Ovelays moeten door de programmeur
worden gemaakt (tijdrovend).
• Overlays worden door het operating system
van en naar disk verplaatst.
L.V. de Zeeuw
Computersystemen 3
46
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (2/3)
• De CPU kan meestal méér geheugen adresseren dan feitelijk
aanwezig.
• Voorbeeld: Met 32 bits adressen kun je
232 = 4 294 967 296 geheugenplaatsen adresseren.
• Meestal is er niet zoveel RAM.
• Er is wel genoeg diskruimte.
• Het maximaal adresseerbare geheugen wordt daarom op disk
gesitueerd.
• Maar disks zijn relatief traag.
• Dat is niet erg omdat programma’s en data ‘lokaliteit’ vertonen.
• Programma instructies of data die op schijf staan en die de
processor nodig heeft worden naar het intern geheugen
gekopieerd (swap).
• Dit concept heet virtueel geheugen.
L.V. de Zeeuw
Computersystemen 3
47
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (3/3)
• Virtueel geheugen – de gezamenlijke
grootte van alle programma’s, data en
stack mag de grootte van het fysieke
geheugen overschrijden.
• Het operating system zorgt ervoor dat
wat op een bepaald moment nodig is in
het geheugen staat. De rest staat op
disk.
L.V. de Zeeuw
Computersystemen 3
48
HOGESCHOOL ROTTERDAM / CMI
Paging (1/3)
• Een virtueel geheugen wordt gebouwd
een techniek die paging wordt
genoemd.
• Virtuele adressen vormen de virtuele
adres ruimte.
• Een chip, de memory management unit
(MMU) vertaalt virtuele adressen in
fysieke adressen.
L.V. de Zeeuw
Computersystemen 3
49
HOGESCHOOL ROTTERDAM / CMI
Paging (2/3)
L.V. de Zeeuw
Computersystemen 3
50
HOGESCHOOL ROTTERDAM / CMI
Paging (3/3)
L.V. de Zeeuw
Computersystemen 3
51
HOGESCHOOL ROTTERDAM / CMI
De Memory Management Unit
L.V. de Zeeuw
Computersystemen 3
52
HOGESCHOOL ROTTERDAM / CMI
Multitasking en de MMU (1/2)
Programma weet van
te voren niet waar ze in
het geheugen komt
Process
Programma dat
door de CPU in
uitvoering is
genomen.
L.V. de Zeeuw
Een programma
mag niet lezen of
schrijven in het
geheugen gebied
van een ander
programma.
Computersystemen 3
53
HOGESCHOOL ROTTERDAM / CMI
Multitasking en de MMU (2/2)
L.V. de Zeeuw
Computersystemen 3
54
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (1/7)
• Het virtueel geheugen wordt in pagina’s
verdeeld (pages) van bijvoorbeeld elk 210=
1024 adressen.
• Bij 232 adressen kunnen er 232/210 = 222
pagina’s worden geadresseerd.
• Alleen de pagina’s waar de processor mee
bezig is staan in het interngeheugen.
L.V. de Zeeuw
Computersystemen 3
55
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (2/7)
L.V. de Zeeuw
Computersystemen 3
56
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (3/7)
L.V. de Zeeuw
Computersystemen 3
57
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (4/7)
VM =
Virtual Memory
PM = Physical Memory
L.V. de Zeeuw
Computersystemen 3
58
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (5/7)
Page fault
Als de CPU een adres vraagt op een pagina die niet in het
werkgeheugen staat.
LRU
Least Recently Used (minst recent gebruikt). Algoritme dat
gebruikt kan worden bij de vervanging van pagina’s in het
werkgeheugen.
Dirty bit
Vlag die aangeeft dat een schrijfactie op de pagina heeft
plaatsgevonden. Hieraan kan het OS zien dat de pagina naar de
disk teruggeschreven moet worden als hij plaats moet maken
voor een ander.
L.V. de Zeeuw
Computersystemen 3
59
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (6/7)
Associatief geheugen
Geheugen dat op inhoud
geadresseerd kan worden.
L.V. de Zeeuw
Computersystemen 3
60
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen (7/7)
TLB
Translation Lookaside Buffer. Hier
worden de meest recente
adresvertalingen van de page table
bewaard.
L.V. de Zeeuw
Computersystemen 3
61
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen en de cache (1/4)
• Afdelingsbibliotheek
• Hoofdbibliotheek
L.V. de Zeeuw
Computersystemen 3
62
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen en de cache (2/4)
L.V. de Zeeuw
Computersystemen 3
63
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen en de cache (3/4)
Cache
Snel geheugen waarin lokale data staat.
Cache miss/hit
Als de gevraagde data niet/wel in de cache wordt
gevonden.
Multilevel cache
Als meerdere caches aanwezig zijn, worden ze
genummerd. De level 1-cache is de eerste vanuit de
processor gezien.
L.V. de Zeeuw
Computersystemen 3
64
HOGESCHOOL ROTTERDAM / CMI
Virtueel geheugen en de cache (4/4)
L.V. de Zeeuw
Computersystemen 3
65
HOGESCHOOL ROTTERDAM / CMI
Segmentatie
• Paging: Eén dimensionale (lineaire) adres ruimte.
• Segemtatie: Twee dimensionale adres ruimte.
– Ieder programma beschikt over een groot aantal
segmenten. Bijvoorbeeld 232 segmenten.
– Een segment bestaat uit een groot aantal bytes.
Bijvoorbeeld 232 bytes.
– Binnen de adres ruimte, voor elk programma, bevinden zich:
Alle procedures, data, stack, heap, en benodigde files.
– De processen hoeven niet eerst files te open of speciale I/O
operaties te gebruiken.
L.V. de Zeeuw
Computersystemen 3
66
HOGESCHOOL ROTTERDAM / CMI
Lengte:
0 tot 16 pages
MMU
Hardware met
tabel
bestaande uit
16 gedeelten
Lezen of
schrijven
Bevat
nummer page
frames
Elk segment
bevat 16
pages
Ieder deel is
bestemd voor
één van de
maximaal 16
processen
Elk deel bevat
64 segment
descriptors
L.V. de Zeeuw
In dit voorbeeld:
•Hardware ondersteuning
voor 16 processen
•Elk proces beschikt over
1024 pages
•Elke page is 4 KB groot
Computersystemen 3
67
HOGESCHOOL ROTTERDAM / CMI
Segmentatie
• Bij het laden van een proces wordt een
4 bits procesnummer in een speciaal
hardwareregister geladen.
• Adres vertaling:
L.V. de Zeeuw
Computersystemen 3
68
HOGESCHOOL ROTTERDAM / CMI
Segmentatie
• Bij een proceswisseling hoeft alleen het
4 bits proces nummer te worden
veranderd.
• Twee processen kunnen
gemeenschappelijke segmenten
gebruiken wanneer hun segment
descriptors naar dezelfde page table
verwijzen.
L.V. de Zeeuw
Computersystemen 3
69
HOGESCHOOL ROTTERDAM / CMI
Page replacement algoritmen
• Page fault: De cpu vraagt een pagina
die niet in het geheugen staat.
• Bij een pagefault moet het OS een
pagina aanwijzen die uit het geheugen
moet worden verwijderd.
• Indien de aangewezen pagina in het
geheugen is gewijzigd moet deze naar
disk worden geschreven.
L.V. de Zeeuw
Computersystemen 3
70
HOGESCHOOL ROTTERDAM / CMI
Page replacement algoritmen
Naar page replacement algoritmen is veel
experimenteel en theoretisch onderzoek
verricht.
•
•
•
•
Optimal page replacement
Non recently-used page replacement
First-in first-out page replacement
Least recently used page replacement
L.V. de Zeeuw
Computersystemen 3
71
HOGESCHOOL ROTTERDAM / CMI
Optimal page replacement
• Dit is het beste vervanginsalgoritme.
• Bij een page fault zijn een aantal pages in het
geheugen.
• Op één van deze pagina’s is nodig voor de volgende
instructie: de pagina die deze instructie bevat.
• Aan andere pages wordt misschien pas na 10, 100 of
1000 instructies gerefereerd.
• Iedere page kan worden voorzien van een label met
het aantal instructies voorafgaand aan de eerste keer
dat deze page nodig is.
• Het page algoritme verwijderd de page met het
hoogste label: deze page is voorlopig niet nodig.
L.V. de Zeeuw
Computersystemen 3
72
HOGESCHOOL ROTTERDAM / CMI
Optimal page replacement
• Er is een probleem:
op het moment van een pagefault is niet te
achterhalen wanneer iedere page nodig is.
• Je kunt het algoritme echter wel simuleren
door van historische gegevens gebruik te
maken.
• Het resultaat leert je de best mogelijke
performance waarmee andere page
replacement algoritmen kunnen worden
vergeleken.
L.V. de Zeeuw
Computersystemen 3
73
HOGESCHOOL ROTTERDAM / CMI
Non recently-used (NRU)
page replacement (1/3)
Elke page wordt geassocieerd met twee bits:
•
R (eferenced):
0 als de page niet gebruikt
•
M(odified):
0 als de page niet is gewijzigd
R en M in hard- of software.
•
•
•
•
1 als de page wel is gebruikt
1 als de page wel is gewijzigd
Bij het starten van een proces krijgen beide bits de waarde 0
Per vast tijd interval (klok interrupt) worden alle R bits weer op 0 gezet.
Het OS kan daarna zien welke pagina’s binnen het komende tijd interval wordt gebruikt.
Het NRU deelt de page in in 4 classes:
R
M
Class 0
0
0
Class 1
0
1
Class 2
1
0
Class 3
1
1
L.V. de Zeeuw
Computersystemen 3
Ontstaat vanuit
Class 3 nadat R
op 0 is gezet
door een klok
interrupt
74
HOGESCHOOL ROTTERDAM / CMI
Non recently-used (NRU)
page replacement (2/3)
• Na indeling in classes kiest het NRU algoritme
een willekeurige pagina van de laagst
mogelijke class.
R
M
Class 0
0
0
Het NRU algoritme
heeft de voorkeur
voor gewijzigde niet
aan gerefereerde
pages boven pages
die wel gebruikt zijn
maar ongewijzigd!
Class 1
0
1
Class 2
1
0
Class 3
1
1
L.V. de Zeeuw
Computersystemen 3
75
HOGESCHOOL ROTTERDAM / CMI
Non recently-used (NRU)
page replacement (3/3)
• Is eenvoudig te begrijpen
• Efficiënt te implementeren
• Voldoende maar niet optimale
performance
L.V. de Zeeuw
Computersystemen 3
76
HOGESCHOOL ROTTERDAM / CMI
First-in first-out (FIFO)
page replacement (1/3)
• De page die het langst
in het geheugen staat
wordt verwijderd. Dit
wordt bijgehouden in
een page list.
• In analogie met een
supermarkt betekent
dit dat de langst
lopende produkten (bv
kaas) plaats moeten
maken voor de
nieuwste produkten.
L.V. de Zeeuw
Computersystemen 3
77
HOGESCHOOL ROTTERDAM / CMI
First-in first-out (FIFO)
page replacement (2/3)
We willen niet dat veel gevraagde pages worden verwijderd.
Oplossingen:
• Combineer de NRU en het FIFO algoritme: van de oudste
pages worden eerst de class 0 pages verwijderd, daarna class 1
pages, etc.
• Second chance algoritme:
– Als R = 0 dan page verwijderen.
– Als R = 1 page dan R:=0. Vervolgens de page behandelen als of hij
nieuw is: de page wordt aan het einde van de pagelist geplaatst.
•
Clock algoritme:
– Is een variant op het second chance algoritme
– Maakt gebruik van een ‘cyclische lijst’. Dit is de pagelist waarbij een
pointer die naar begin van de lijst wijst wordt aangepast zodat hij nu
naar het tweede page in de page list wijst.
L.V. de Zeeuw
Computersystemen 3
78
HOGESCHOOL ROTTERDAM / CMI
First-in first-out (FIFO)
page replacement (3/3)
• Intuïtief: Meer
pages in het
geheugen geeft
minder page
faults.
• Belady’s
anomaly is het
tegenvoorbeeld
L.V. de Zeeuw
Computersystemen 3
79
HOGESCHOOL ROTTERDAM / CMI
Least recently used page
replacement (1/3)
• Pages die in de laatste instructies vaak zijn
gebruikt worden waarschijnlijk ook in de
volgende instructies vaak gebruikt en
omgekeerd.
• Nodig: lineaire lijst van alle pages in het
geheugen
– De meest recente page staat aan het begin.
– De minst gebruikte page staat aan het eind.
• Tijdrovend
• Kan in software of dure hardware
L.V. de Zeeuw
Computersystemen 3
80
HOGESCHOOL ROTTERDAM / CMI
Least recently used page
replacement (2/2)
Hardware oplossing 1:
• 64 bits counter (C)
• Na elke instructie C:=C+1
• Elke page table entry bevat een veld dat de
actuele waarde van C bevat indien aan deze
page werd gerefereerd.
• Bij een page fault wordt gezocht naar de
page met de laagste waarde. Dit is dan de
‘least recently used’ page.
L.V. de Zeeuw
Computersystemen 3
81
HOGESCHOOL ROTTERDAM / CMI
Least recently used page
replacement (3/3)
Hardware oplossing 2:
• In hardware voor elk van de
n pages is er een n x n
bitmatrix.
• Initiële waarde is 0
• Als aan frame k wordt
gerefereerd worden alle bits
in rij k op 1 gezet en alle bits
in kolom k op 0.
• De rij met de kleinste waarde
is het minst recent gebruikt.
a b c d e f
Waarom?
L.V. de Zeeuw
g h
i
j
0 1 2 3 2 1 0 3 2 3
Computersystemen 3
82
HOGESCHOOL ROTTERDAM / CMI
LRU is software:
Not Frequently Used (NFU) algoritme (1/5)
Als er geen hardware voor LRU is kan worden
gekozen voor het NFU algoritme:
• Elke page kent een teller.
• Bij elke klok interrupt worden alle pages in
het geheugen onderzocht.
• De waarde van R (0 of 1) wordt bij de teller
opgeteld.
• Bij een page fault wordt de page met de
kleinste teller vervangen.
L.V. de Zeeuw
Computersystemen 3
83
HOGESCHOOL ROTTERDAM / CMI
LRU in software: Modificatie van
Not Frequently Used (NFU) algoritme (2/5)
Probleem: NFU is niet in staat het
verleden te vergeten.
• Tellers die snel groot worden blokkeren
onterecht bijbehorende pages voor
verwijdering.
L.V. de Zeeuw
Computersystemen 3
84
HOGESCHOOL ROTTERDAM / CMI
LRU in software: Modificatie van
Not Frequently Used (NFU) algoritme (3/5)
Door NFU aan te passen krijgen we een simulatie van
LRU:
Per klok puls:
• Bits in de teller één bit naar rechts schuiven.
• De waarde van R bij het linker bit van de teller
opgetelllen.
NB: de bits schuiven per klok puls van links naar
rechts de teller binnen.
Bij een page fault wordt de page met de laagste waarde
van de teller verwijderd.
L.V. de Zeeuw
Computersystemen 3
85
HOGESCHOOL ROTTERDAM / CMI
LRU in software: Modificatie van
Not Frequently Used (NFU) algoritme (4/5)
L.V. de Zeeuw
Computersystemen 3
86
HOGESCHOOL ROTTERDAM / CMI
LRU in software: Modificatie van
Not Frequently Used (NFU) algoritme (5/5)
• LRU in hardware is nauwkeuriger.
LRU in software kan geen vroege of late
referenties binnen één klok puls
onderscheiden.
• 8 bits betekent dat maximaal 8 klok
pulsen terug kan worden gekeken. In de
praktijk blijkt dit voldoende.
L.V. de Zeeuw
Computersystemen 3
87
HOGESCHOOL ROTTERDAM / CMI
Ontwerpoverwegingen
bij paging systemen
• Het working set model
• Lokale versus globale
toewijzingsstrategieën
• De grootte van een page
• Implementatie-overwegingen
L.V. de Zeeuw
Computersystemen 3
88
HOGESCHOOL ROTTERDAM / CMI
Het working set model (1/4)
Demand paging
• Bij het starten van een proces staan meestal
geen pages behorende bij het proces in het
geheugen.
• Bij het starten van een proces zijn er dus veel
page faults
• Na enige tijd staan alle benodigde pages in
het geheugen en neemt het aantal page
faults af.
L.V. de Zeeuw
Computersystemen 3
89
HOGESCHOOL ROTTERDAM / CMI
Het working set model (2/4)
Locality of reference
• Gedurende een willekeurige fase tijdens
de uitvoering van een proces wordt aan
een klein aantal pages gerefereerd.
Working set
• De verzameling pages die op een
bepaald moment door het proces wordt
gebruikt.
L.V. de Zeeuw
Computersystemen 3
90
HOGESCHOOL ROTTERDAM / CMI
Het working set model (3/4)
Trashing
• Met spreekt over trashing indien een
proces doorlopend veel page faults
veroorzaakt.
Working set model of prepaging
• Het naar het geheugen brengen van de
working set van een proces voordat het
proces is gestart.
L.V. de Zeeuw
Computersystemen 3
91
HOGESCHOOL ROTTERDAM / CMI
Het working set model (4/4)
• Indien de working sets van alle processen
samen het beschikbare geheugen
overschrijdt zal trashing zich voordoen.
• Indien het working set model wordt gebruikt
dient het OS bij te houden welke pages tot de
working set behoren.
• Het LRU algoritmen kan hiervoor worden
gebruikt: de meest recent gebruikte pages
behoren tot de working set.
L.V. de Zeeuw
Computersystemen 3
92
HOGESCHOOL ROTTERDAM / CMI
Lokale versus globale
toewijzingsstrategieën (1/3)
• Moet het page
replacement algoritme
alleen de working set
van proces x in
overweging nemen of
ook working sets van
andere processen?
De page die het
langst in het
geheugen staat is de
page met de laagste
‘leeftijd’.
(LRU algoritme)
L.V. de Zeeuw
Computersystemen 3
93
HOGESCHOOL ROTTERDAM / CMI
Lokale versus globale
toewijzingsstrategieën (2/3)
• Local page replacement
– Alleen de eigen working set wordt bekeken
• Global page replacement
– De working sets van alle processen worden
bekeken.
Global page replacement werkt over het
algemeen beter
L.V. de Zeeuw
Computersystemen 3
94
HOGESCHOOL ROTTERDAM / CMI
Lokale versus globale
toewijzingsstrategieën (3/3)
De toewijzing is
voor één proces
en dient tussen
de lijnen A en B te
blijven.
Page Fault Freqeuncy
(PFF)
• Het aantal page faults
per tijds eenheid.
De PFF daalt indien er
meer pageframes
beschikbaar zijn.
Het PFF algoritme
probeert de PFF
binnen aanvaardbare
grenzen te houden.
L.V. de Zeeuw
Computersystemen 3
Dit geldt voor LRU
maar niet voor het
FIFO algoritme
(Belady’s
onregelmatigheid)
95
HOGESCHOOL ROTTERDAM / CMI
De grootte van een page (1/2)
• De optimale page grootte vereist een zorgvuldige
afweging van tegenstrijdige factoren.
• Een willekeurig segment vult niet een geheel aantal
pages: gemiddeld is de helft van de laatste page niet
gevuld (interne fragmentatie).
• Bij n segmenten in het geheugen en een page
grootte van p bytes worden n x p/2 bytes niet benut:
Beter kleine page grootte.
• Bij een grote page omvang staat een groter
ongebruikt deel van een programma in het
geheugen.
L.V. de Zeeuw
Computersystemen 3
96
HOGESCHOOL ROTTERDAM / CMI
De grootte van een page (2/2)
• Een kleine page omvang vraagt een grote
page tabel.
• Het verplaatsen van een kleine page kost
bijna evenveel tijd als het verplaatsen van
een grote page (ivm disk seek en rotional
delay).
Vergelijk bijvoorbeeld het laden van:
• 64 pages (512 bytes) x 15 ms / page = 960 ms
• 4 pages (8192 bytes) x 25 ms / page = 100 ms
L.V. de Zeeuw
Computersystemen 3
97
HOGESCHOOL ROTTERDAM / CMI
Implementatie-overwegingen
• Backup voor een instructie:
• Het vastzetten (locken) van pages in het
geheugen.
• Het delen van pages (shared pages)
L.V. de Zeeuw
Computersystemen 3
98
HOGESCHOOL ROTTERDAM / CMI
Backup voor een instructie (1/2)
• Indien een instructie een page fault veroorzaakt
wordt de instructie tijdens de uitvoering afgebroken
• Na het ophalen van de page moet de instructie
worden herstart.
• Auto in- of decrement instructie leveren extra
problemen.
•Drie geheugen referenties
•De page fault kan optreden
indien de program counter de
waarde 1000,1002, of 1004
heeft…
•Het OS kan niet vaststellen
waar de instructie begint
L.V. de Zeeuw
Computersystemen 3
99
HOGESCHOOL ROTTERDAM / CMI
Backup voor een instructie (2/2)
• Een processor moet over extra registers
beschikken voor een roll-back van de
instructie die een page fault heeft
veroorzaakt.
• Waarde van de program counter kopiëren
naar speciaal register voorafgaand aan een
uit te voeren instructie.
• Een register waarin wordt aangegeven met
welke waarde een auto in- of decrement is
uitgevoerd.
L.V. de Zeeuw
Computersystemen 3
100
HOGESCHOOL ROTTERDAM / CMI
Het vastzetten (locken) van
pages in het geheugen.
• Bij I/O zal een proces data van een I/O device naar
het interne geheugen kopieren (I/O buffer).
• Bij I/O is het proces geblokkeerd.
• Een ander proces wordt uitgevoerd.
• Dit proces veroorzaakt een page fault
• De kans bestaat dat de I/O buffer wordt verwijderd uit
het geheugen.
• Een DMA (Direct Memory Access) I/O device schrijft
echter over de nieuw geladen page ….
Een oplossing is de bij I/O betrokken pages te locken
L.V. de Zeeuw
Computersystemen 3
101
HOGESCHOOL ROTTERDAM / CMI
Het delen van pages
(shared pages)
• Bij time sharings systemen zijn er vaak meerdere
gebruikers met dezelfde programma’s bezig.
• Het is efficiënter deze programma’s maar één keer te
laden en de bijbehorende pages (read-only)
gezamenlijk te gebruiken.
• Data pages kunnen niet gezamenlijk worden
gebruikt.
• De scheduler moet gebruik makend van geschikte
hardware ‘shared page aware’ zijn.
L.V. de Zeeuw
Computersystemen 3
102
HOGESCHOOL ROTTERDAM / CMI
L.V. de Zeeuw
Computersystemen 3
103
Download