Title: Besturingssystemen / hoofsdstuk 9
Tags: `

Naam: demand paging
Wat is/doet het?: pagina's inladen
Hoe werkt het?: pagina's pas inladen wanneer gevraagd, dus niet het hele proces
Welke types zijn er?: pure demand paging vs paging waarbij altijd een deel wordt ingeladen
Waar gebruikt?: pager
Wanneer gebruikt?: memory access
aanmaken proces
Voordelen: weinig geheugengebruik
Nadelen: page faults
bij page fault moet de instructie volledig herstart worden, en dit is niet altijd eenvoudig, bv. c := a + b  (a,b,c geheugenadressen)
Pagina: 393

Naam: copy on write
Wat is/doet het?: virtueel geheugen bij kindproces
Hoe werkt het?: - bij fork worden pagina's pas gekopieerd wanneer een van de twee procesen erin schrijft
- pool van vrije frames wordt bijgehouden met zero fill on demand wanneer een proces in een nieuwe pagina wil schrijven
Waar gebruikt?: gevorkte processen
Wanneer gebruikt?: schrijven na fork()
Voordelen: minder geheugen
Pagina: 400
Figuur: 9.7 9.8

Naam: basisprincipe page replacement
Wat is/doet het?: pagina's naar disk schrijven
Hoe werkt het?: - kies een slachtoffer om weg te swappen
- schrijf dit naar de HDD (indien ongewijzigd: zie eerst modify/dirty bit)
- laad nieuwe pagina in
Welke types zijn er?: zie page replacement algorithm
Waar gebruikt?: inladen pagina
Wanneer gebruikt?: vraag naar nieuwe pagina: page fault of COW
Alternatieven: proces beeindigen
proces pauzeren
Pagina: 402
Figuur: 9.10 9.11

Naam: FIFO page replacement
Wat is/doet het?: pagina kiezen om weg te swappen
Hoe werkt het?: eerst ingeswapte pagina wordt eerst uitgeswapt
Waar gebruikt?: swapping
Wanneer gebruikt?: geheugen vol, nieuwe pagina inladen
Voordelen: simpel
kans dat oude pagina niet meer gebruikt wordt
Nadelen: belady's anomalie: soms meer page faults bij grotere hoeveelheid frames
Alternatieven: LRU, counting based
Pagina: 405
Figuur: 9.12 9.13

Naam: LRU page replacement
Wat is/doet het?: pagina's kiezen om weg te swappen
Hoe werkt het?: altijd pagina kiezen die het langst in onbruik is
Welke types zijn er?: - teller-implementatie: bij elke geheugentoegang wordt de tijd opgeslagen
- stapel-implementatie: bij leke geheugentoegang wordt de pagina bovenop een stapel geplaatst
Waar gebruikt?: page replacement
Wanneer gebruikt?: geheugen vol, nieuwe pagina nodig
Voordelen: dicht bij optimaal algoritme
Nadelen: implementatie kan niet efficient gedaan worden zonder assisterende hardware om informatie automatisch bij te houden
Alternatieven: FIFO, additional reference bits, (enhanced) second chance, counting based
Pagina: 408
Figuur: 9.15 9.16

Naam: (enhanced) second chance algorithm
Wat is/doet het?: slachtoffer kiezen bij swapping
Hoe werkt het?: loop door pagina's totdat het een 0 tegenkomt voor reference bit, enen onderweg worden overgeschreven met een 0 (tweede kans)
Welke types zijn er?: clock: hervat op de plaats waar het ervoor gestopt was
enhanced 2nd chance: ook rekening houden met modify bit (modify = 0 => moet niet naar disk geschreven worden)
Waar gebruikt?: page replacement
Wanneer gebruikt?: geheugen vol, pagina inladen
Voordelen: haalbare benadering van LRU
Alternatieven: counting based, multiple reference bit, FIFO
Pagina: 410
Figuur: 9.17

Naam: working set model
Wat is/doet het?: trashing voorkomen
Hoe werkt het?: WSS = aantal pagina-referenties van een proces in de laatste n instructies
als de som van alle WSS groter is dan de totale hoeveelheid frames, kan thrashing voorkomen
Als D > #frames, wordt een proces gepauzeerd om nog page faults te vermijden
Waar gebruikt?: detectie thrashing
Wanneer gebruikt?: om de +/- 10 000 instructies (zie boek voor details implementatie)
Voordelen: minder thrashing
Nadelen: moeilijke implementatie
Alternatieven: lokale page-replacement heeft minder (maar niet geen) thrashing omdat geen frames van andere procoessen gestolen worden
Pagina: 419
Figuur: 9.20

Naam: memory mapped files
Wat is/doet het?: snellere toegang tot bestanden
Hoe werkt het?: disk blok geassocieerd met frame (pagina) in geheugen
Welke types zijn er?: zie vb Solaris en Windows
Waar gebruikt?: openen van bestanden
soms ook voor shared memory
Wanneer gebruikt?: bij aanvragen van bestand wordt dit in het geheugen geplaatst
sommige BS kijken regelmatig of bestand gewijzigd is
bij sluiten van bestand wordt alles naar de schijf geschreven
Voordelen: snelle toegang tot file
Nadelen: schrijven in geheugen != schrijven op schijf
Pagina: 422
Figuur: 9.22 9.23

Naam: Wat gebeurt bij open() read() en close()?
Wat is/doet het?: system wide open file table: FCB's van geopende bestanden
per process open file table: pointer naar entry (file descriptor) in system wide tabel
Hoe werkt het?: open(): al ergens open ? pointer naar system-wide tabel : zoek in mappenstructuur naar bestand en maak nieuwe entry aan
read(): volg pointer van proces-tabel naar system-tabel naar FCB en lees bestand
close(): verwijder uit proces-tabel en decrementeer de counter in system-tabel
Pagina: 499
Figuur: 11.3