De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 8: Virtueel geheugen

Verwante presentaties


Presentatie over: "Hoofdstuk 8: Virtueel geheugen"— Transcript van de presentatie:

1 Hoofdstuk 8: Virtueel geheugen

2 8.1. Hardware en besturingsstructuren
technieken segmenteren pagineren partitioneren: gebruikt geen virtueel geheugen 2 kenmerken: Geheugenverwijzingen vertaald tijdens uitvoering  proces kan op verschillende loc. terechtkomen Proces kan opgedeeld worden in meerdere stukken  hoeven niet aaneengesloten te zijn gevolg: niet alle stukken van proces hoeven in hoofdgeheugen te zitten definitie: residente set = deel van programma in RAM

3 8.1. Hardware en besturingsstructuren
machine instructie PROCESSOR Logisch adres niet in hoofgeheugen? Processor genereert interrupt (memory fault) OS plaats proces in toestand blocked OS haalt processtuk binnen in RAM OS zendt I/O request om HD te lezen OS activeert ander proces I/O interrupt indien processtuk binnengehaald OS zet proces terug in toestand ready voordeel 1: er kunnen meer processen in RAM geheugen zitten voordeel 2: een proces kan groter zijn dan totale hoofdgeheugen mogelijk nadeel: thrashing (~constant swappen)  zoveel mogelijk voorkomen

4 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M reëel geheugen : deel van proces in RAM virtueel geheugen : geheugen zoals de programmeur het ziet (~HD) HW en SW ondersteuning bij paginatie/segmentatie!!! HW ondersteuning bij paginatie virtueel adres paginatabelingang pagineren paginanr positie P M other OS bits framenr virtueel adres segmenttabelingang segmenteren segmentnr positie P M other OS bits lengte segmentbasis virtueel adres segmenttabelingang segmentnr paginanr positie control bits lengte segmentbasis paginatabelingang combinatie P M other OS bits framenr

5 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M HW ondersteuning bij paginatie virtueel adres pagenr positie framenr positie register pointer page table pos n bits pageframe m bits pagenr + framenr programma pagineringsmechanisme hoofdgeheugen

6 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M HW ondersteuning bij paginatie mogelijk probleem: paginatabellen per proces kunnen heel groot worden voorbeeld: proces max. 231 bits = 2 GB virtueel geheugen pagina’s van 29 bits = 512 bytes 222 page table entries (PTE’s) per proces oplossing: pagineren van page tables

7 8.1. Hardware en besturingsstructuren
HW ondersteuning bij paginatie base page table (4KB) user page table (4MB) user adress space (4GB) voorbeeld: adressen = 32 bits (4 bytes) => virtuele adresruimte = 232 bits paginagrootte = 212 bytes (4KB) => 220 pagina’s user page table = 220 entries X 4 bytes = 4 MB

8 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M HW ondersteuning bij paginatie virtueel adres 10 bits 10 bits 12 bits framenr positie register pos pointer page table pageframe + + programma pagineringsmechanisme hoofdgeheugen

9 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M HW ondersteuning bij paginatie nadeel van pagineringsmechanisme: omvang van page table ~ omvang virtuele adresruimte oplossing: geïnverteerde page tables control bits pagenr positie pagenr proces ID chain n bits 1 HASH m bits i j RAM geheugen = 232 bits 2m-1 framenr positie

10 8.1. Hardware en besturingsstructuren
present-bit is pagina in geheugen? 8.1. Hardware en besturingsstructuren P modified-bit is pagina veranderd? M HW ondersteuning bij paginatie geïnverteerde page tables # virtual pages > # real pages chaining control bits pagenr positie pagenr proces ID chain n bits 1 HASH m bits i j RAM geheugen = 232 bits 2m-1 framenr positie

11 8.1. Hardware en besturingsstructuren
HW ondersteuning bij paginatie Translation lookaside buffer (~cache) virtueel adres schijfgeheugen geheugen RAM pagenr pos. TLB PT TLB_hit TLB_miss page_loading framenr positie reeel adres page_fault

12 8.1. Hardware en besturingsstructuren
start terugkeer nr instructie die page fault veroorzaakte CPU controleert TLB OS draagt CPU op om page te lezen van HD PT in TLB? JA NEE CPU activeert I/O HW toegang tot PT page van HD nr RAM page in RAM? NEE JA JA RAM Vol? TLB bijwerken page vervanging uitvoeren NEE CPU genereert fysiek adres PT bijwerken

13 8.1. Hardware en besturingsstructuren
HW ondersteuning bij paginatie paginagrootte??? kleine paginagrootte + minder interne fragmentatie - groot aantal benodigde pagina’s => deel van PT op HD 2. grote paginagrootte - efficientere blokoverdracht van data + meer page faults opm: nieuwe programmeertechnieken leiden tot meer page faults (~overtreden lokaliteitsprincipe) OO technieken multithreading toepassingen

14 8.1. Hardware en besturingsstructuren
HW ondersteuning bij segmentatie segmentnr pos. voordelen van gesegementeerde adresruimte: gemakkelijker omgaan met groeiende gegevensstructuren onafhankelijke compilatie van programma’s gemakkelijk delen van segmenten door verschillende processen gemakkelijker toegangsbeheer organisatie: virtueel adres reeel adres segmnr pos=d + basis +d register pointer segm table d segment segmnr + length basis programma segmenteringsmechanisme hoofdgeheugen

15 8.1. Hardware en besturingsstructuren
gecombineerde paginatie en segmentatie voordelen van segmentatie: oa. logisch opdelen van programma (~programmeur) voordelen van paginatie: oa. interne fragementatie minimaliseren (~systeem) virtueel adres framenr pos segmnr pagenr pos page table pointer segm table segment table + + programma segmentatie mechanisme paginatie mechanisme hoofdgeheugen

16 8.2. OS software aspecten ontwerp OS bij segmentatie/paginatie doel:
goede performantie door optreden van paginafouten te minimaliseren OS beslist welke pagina’s uitgewisseld worden Andere aspecten die prestatie van systeem beinvloeden: grootte van RAM snelheid van RAM en HD omvang/aantal/gedrag processen optimale strategie???

17 8.2. OS software Vervangingsstrategie (replacement policy) vraag:
welke pagina moet uit RAM weggehaald worden? doelstelling: “neem pagina waarbij kans op verwijzingen in nabije toekomst erg klein is” framevergrendeling: vergrendelde frames kunnen niet vervangen worden (1 bit) elementaire algoritmen: optimaal: vervang pagina die langst niet nodig is neg: onmogelijk te implementeren least recently used (LRU) neg: overhead dr bijhouden van tijdstippen first in, first out (FIFO) neg: vaak minder optimaal clock (use bit + FIFO)

18 8.2. OS software clockstrategy
Vervangingsstrategie (replacement policy) clockstrategy page 9 U=1 page 19 U=1 page 9 U=1 page 19 U=1 page 1 U=1 page 1 U=1 page 45 U=1 page 45 U=0 U=0 page 222 page 191 U=1 U=0 page 222 page 191 U=0 U=1 page 33 page 556 U=0 U=1 page 33 page 727 U=1 page 67 U=1 U=0 13 page 67 U=1 page 13 U=0 (a) buffer state: before (b) buffer state: after

19 8.2. OS software Vervangingsstrategie (replacement policy)
page address stream 2 3 1 5 4 2* 3* 1* 5* 4* F F F F F F F F F F F F F F F F F F optimaal LRU FIFO clock

20 8.2. OS software Vervangingsstrategie (replacement policy)
verfijning van klokalgoritme: vervang eerst ongewijzigde pagina’s U = use bit M = modify bit werking van het algoritme: Neem U=0 en M = 0 Neem U=0 en M = 1 Neem U=1 en M = 0 Neem U=1 en M = 1 opmerking: vervangen van gewijzigde pagina’s kost meer tijd

21 8.2. OS software beheer van residente set vraag:
hoeveel pagina’s toewijzen aan een actief proces? welke pagina’s komen in aanmerking voor vervanging? grootte van residente set aantal pages per proces klein pos: aantal processen in RAM hoog  minder swapping nodig neg: aantal paginafouten behoorlijk hoog twee strategieën: 1. fixed allocation: vast aantal pagina’s per proces (afh. van type proces) 2. variable allocation: aantal paginaframes per proces kan variëren

22 8.2. OS software X beheer van residente set vervangingsbereik
twee strategieën: 1. local scope: vervang pagina van zelfde proces 2. global scope: maak keuze uit alle onvergrendelde pagina’s vervangingsbereik locale vervanging globale vervanging vaste toewijzing OK X grootte van residente set variabele toewijzing OK OK

23 8.2. OS software beheer van residente set
vaste toewijzing locale vervanging neg: te weinig pagina’s per proces  veel paginafouten neg: te veel pagina’s per proces  veel swapping variabele toewijzing globale vervanging neg: pagina’s kunnen afgenomen worden van andere processen variabele toewijzing locale vervanging wijs aantal pagina’s toe aan proces bij laden in geheugen selecteer bij paginafouten een pagina uit residente set van proces evalueer af en toe de toewijzing en verhoog/verlaag residente set

24 8.2. OS software opkuisstrategie vraag:
Wanneer moet gewijzigde pagina worden weggeschreven? strategieën: demand cleaning neg: wachten op 2 paginaoverdrachten 2. precleaning neg: te veel pagina’s wegschrijven

25 8.2. OS software toezicht op procesbelasting
niveau van multiprogrammering: thrashing: teveel paginafouten bezettingsgraad processor niveau van multiprogrammering strategieën: voer enkel processen uit met voldoende grote residente set houd bezettingsgraad van paging apparaat op 50% bepaal aantal processen ahv snelheid van wijzer bij cirkelvormige buffer stel: trage snelheid  mogelijke oorzaken: 1. weinig paginafouten 2. veel ongebruikte residente pages niveau van multiprogramming verhogen

26 8.2. OS software toezicht op procesbelasting welk proces opschorten?
proces met laagste prioriteit (~afh. van gebruiker) proces dat paginafout veroorzaakt (~proces wordt toch al geblokkeerd) laatst geactiveerd proces (~minder pages al aanwezig) proces met kleinste residente set (~kleine moeite om opnieuw in te laden) grootste proces (~veel vrije frames beschikbaar) proces met grootste resterende uitvoeringstijd (~SPN)


Download ppt "Hoofdstuk 8: Virtueel geheugen"

Verwante presentaties


Ads door Google