OS Hoofdstuk 10 Flashcards
Wat is het nut van virtueel geheugen?
er hoeft maar een klein deel van een proces ingeladen te zijn is physical memory.
Door een deel van het proces in virtueel memory te zetten, kan het logische geheugen veel groter zijn.
Noem 3 voordelen van virtual memory:
1: Programmeur hoeft niet na te denken over geheugen grootte.
2: Meerdere programma’s kunnen tegelijk runnen
3: shared memory is makkelijk te implementeren, wanneer 2 processen dezelfde geheugen gebruiken, kan de page table hier naar dezelfde frame wijzen.
Wat gebeurt er met de page table tijdens een context switch?
De kernel weet welk proces wordt gerunt dus de bijbehorende page table wordt ingeladen.
Hoeveel geheugen staat in de main memory en hoeveel op de disk?
20% main memory
80% disk
Wanneer wordt er naar een pagina gerefereerd?
als de cpu een load of store doet
Wat is demand paging?
pagina wordt alleen in geheugen geladen als het nodig is tijdens program execution.
pages die niet worden geaccessed, worden niet in het geheugen geladen.
Wat gebeurt er als een page demanded wordt maar hij is niet in het geheugen?
hij wordt in het geheugen geladen
Wat doet de pager?
swapper voor pages,
lazy swapper: alleen page in memory swappen als deze nodig is.
Wat is een page fault?
proces probeert een page op te halen die niet in het geheugen staat.
Wat gebeurt er bij een page fault?
1: trap naar OS
2: checken of referency legaal is
3: empty frame uitkiezen
4: swap page uit disk naar frame
5: update tables
6: set validation bit naar valid
7: restart instruction die page fault veroorzaakte
Wat is de free-frame list?
Een pool met free frames die gebruikt kunnen worden na een page fault om een page op te slaan
Wat is Effective Access Time (EAT)?
EAT = p * (average page-fault service time) + (1 - p) * memory access time
p = kans op page fault
De effective access time is evenredig met ..?
de page-fault rate
Wat zijn 2 problemen van demand paging
frame allocation en page replacement.
Hoeveel frames moet je toewijzen aan het begin?
Als een page replacement nodig is, hoe vind je de victim frame?
Wat doet copy on write?
een parent en child proces kunnen hierdoor een page delen.
Alleen wanneer een van beide processen een page aanpast, wordt de page gekopierd.
COW is efficienter omdat alleen aangepaste pages worden gekopieerd
Hoe gebeurt page replacement?
Als er geen lege frame is, wordt er een gezocht die niet wordt gebruikt. Een frame kan worden vrij gemaakt door de content te swappen en de page table aan te passen.
Wat is een victim frame?
een frame die niet gebruikt wordt en die leeggehaald wordt zodat er een andere page kan worden geschreven
Wanneer moet een page op een disk worden opgeslagen?
als de modify bit niet is ingesteld
Welke 2 page replacement algoritmes zijn er?
FIFO en LRU
hoe werkt FIFO bij page replacement?
oudste page wordt gereplaced.
Hoe werkt LRU?
page die het langste niet is gebruikt wordt vervangen.
counter bijhouden voor memory accesses is niet te doen want te traag.
Welke 3 allocation schemes zijn er
Equal allocation: elke proces even veel frames
Proportional to the size of process
based on priority
Wat is thrashing?
Wanneer er de hele tijd page faults op treden doordat er niet genoeg geheugen is.
Wat is local replacement algorithm?
alleen pages van eigen proces worden overschreven waardoor het proces niet frames van andere processen steelt.
Wat is een locality?
een set met pages die vaak samen worden uitgevoerd. wanneer een proces uitvoert, springt het van locality naar locality
wat is de working set?
de locality die op een bepaalt moment wordt gebruikt
wat is memory compression?
meerdere pages in 1 page zetten
noem 2 methodes voor kernel memory allocation
1: buddy system
2: slab allocation