8.2 - Swapping (p.358)
- Swapping = Het in en uit het geheugen halen van processen.
- Backing Store = Tijdelijke opslag voor swapped-out processen.
- Voorbeeld:
- MEM: ?? | CPU: PROCESS A
- MEM: +PROCESS C & -PROCESS A | CPU: PROCESS B
- MEM: +PROCESS D & -PROCESS B | CPU: PROCESS C
- MEM: +PROCESS E & -PROCESS C | CPU: PROCESS D
- etc.
- Wordt uitgevoerd op hetzelfde moment.
- Geheugen swapt-out het process van de CPU welke net is uitgevoerd (A). En swapped in een nieuw process (C), terwijl een al in het geheugen staand process wordt uitgevoerd (B).
- Roll out, Roll In = Alternatief algoritme waarbij wanneer een hoger prioriteit process finishes een lager prioriteit process wordt daarna swapped-in en uitgevoerd.
- Het systeem heeft een ready queue waarvan de gegevens al in het geheugen staan of welke in de backing store staan.
- De dispatcher geeft aan welk process er geladen moet worden, en als deze nog niet in het geheugen staat wordt deze swapped-in met een ander process.
- De context switch tijd in zon systeem is relatief hoog omdat de transfer time lang duurt.
- (100MB @ 50MB/s = 2000ms, 8 ms latency, swap out en in =
(2000*2)+(8*2)=4016ms
swap time)
- Een systeem vindt het prettig om te weten hoeveel geheugen een process gebruikt, in plaats van wat het misschien gebruikt.
- Verminderd de hoeveelheid data die van en naar het geheugen moet worden gekopieerd.
- Een process kan alleen geswapped worden wanneer het compleet idle is.
- Een process kan wachten voor IO en dan kan het systeem dat process out-swappen maar dit is misschien niet mogelijk omdat de IO in het geheugen gedeelte van het process schrijft.