De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 8: Virtueel geheugen. 8.1. Hardware en besturingsstructuren technieken segmenteren pagineren partitioneren: gebruikt geen virtueel geheugen.

Verwante presentaties


Presentatie over: "Hoofdstuk 8: Virtueel geheugen. 8.1. Hardware en besturingsstructuren technieken segmenteren pagineren partitioneren: gebruikt geen 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: 1.Geheugenverwijzingen vertaald tijdens uitvoering  proces kan op verschillende loc. terechtkomen 2.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 PROCESSOR machine instructie Logisch adres niet in hoofgeheugen? 1.Processor genereert interrupt (memory fault) 2.OS plaats proces in toestand blocked 3.OS haalt processtuk binnen in RAM 1.OS zendt I/O request om HD te lezen 2.OS activeert ander proces 3.I/O interrupt indien processtuk binnengehaald 4.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 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 paginanrpositie segmentnrpositie paginanrsegmentnrpositie PMother OS bitsframenr PMother OS bitslengte segmentbasis control bitslengte segmentbasis PMother OS bitsframenr virtueel adres paginatabelingang segmenttabelingang paginatabelingang segmenttabelingang pagineren segmenteren combinatie P M present-bit is pagina in geheugen? modified-bit is pagina veranderd?

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

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

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

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

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

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

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

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

13 8.1. Hardware en besturingsstructuren HW ondersteuning bij paginatie paginagrootte??? 1.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) 1.OO technieken 2.multithreading toepassingen

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

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) segmnrpos virtueel adres programmasegmentatie mechanisme hoofdgeheugen pagenr paginatie mechanisme + + posframenr pointer segm table segment table page table

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: 1.grootte van RAM 2.snelheid van RAM en HD 3.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: 1.optimaal: vervang pagina die langst niet nodig is neg: onmogelijk te implementeren 2.least recently used (LRU) neg: overhead dr bijhouden van tijdstippen 3.first in, first out (FIFO) neg: vaak minder optimaal 4.clock (use bit + FIFO)

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

19 8.2. OS software Vervangingsstrategie (replacement policy) optimaal LRU FIFO clock page address stream

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: 1.Neem U=0 en M = 0 2.Neem U=0 en M = 1 3.Neem U=1 en M = 0 4.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 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 grootte van residente set vaste toewijzing variabele toewijzing locale vervanging globale vervanging OK X

23 8.2. OS software beheer van residente set vaste toewijzing variabele toewijzing locale vervanging globale vervanging neg: te weinig pagina’s per proces  veel paginafouten neg: te veel pagina’s per proces  veel swapping variabele toewijzing neg: pagina’s kunnen afgenomen worden van andere processen locale vervanging 1.wijs aantal pagina’s toe aan proces bij laden in geheugen 2.selecteer bij paginafouten een pagina uit residente set van proces 3.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: 1.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: niveau van multiprogrammering bezettingsgraad processor thrashing: teveel paginafouten strategieën: 1.voer enkel processen uit met voldoende grote residente set 2.houd bezettingsgraad van paging apparaat op 50% 3.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? 1.proces met laagste prioriteit (~afh. van gebruiker) 2.proces dat paginafout veroorzaakt (~proces wordt toch al geblokkeerd) 3.laatst geactiveerd proces (~minder pages al aanwezig) 4.proces met kleinste residente set (~kleine moeite om opnieuw in te laden) 5.grootste proces (~veel vrije frames beschikbaar) 6.proces met grootste resterende uitvoeringstijd (~SPN)


Download ppt "Hoofdstuk 8: Virtueel geheugen. 8.1. Hardware en besturingsstructuren technieken segmenteren pagineren partitioneren: gebruikt geen virtueel geheugen."

Verwante presentaties


Ads door Google