Hoofdstuk 8: Virtueel geheugen

Slides:



Advertisements
Verwante presentaties
PROS2 Les 13 Programmeren en Software Engineering 2.
Advertisements

CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005.
Hoe werkt een rekenmachine?
SSD gebruik in “WMC“ Nico Oosterwijk.
Bepalen van een productstrategie ten aanzien van 64-bits computing ISV Community Day Schiphol-Rijk, Andreas de Ruiter Developer & Platform Group.
Par. 3.1 Computers zijn overal
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie.
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
ICT Infrastructuren 26 november 2007 David N. Jansen.
Par. 3.3 Het geheugen.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
Geschiedenis van DOS en Windows
BESTURINGS SYSTEMEN Vincent Naessens.
DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.
Week 2: Microarchitectuur niveau ALU en datapad
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
Activiteit 1.6 Bepalen niet-functionele eisen
De processor.
Exploratie van de ontwerpruimte 3. Prototypes, emulatie en simulatie Prof. dr. ir. Dirk Stroobandt Academiejaar
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Hoofdstuk 12 Conflicthantering
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
Hoofdstuk 13 Conflicthantering
Hoe werkt een rekenmachine?
Backup & Recovery Windows 2003 Server Onderhoud en Beheer Netwerken 4.
Welkom. inhoud presentatie wat is een Micro Mouse controller motoren sensoren hardware software voeding leerwinst.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
Operating Systems Informatica.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
Mem_ex: buddy system Gegeven: een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. A)Toon de resultaten van de volgende reeks in een.
Seminarie programmeren Het geheugen. Menu Memory 1.About 2.Mem Mgmt/del 3.Clear entries 4.clrAllLists 5.Archive 6.Unarchive 7.Reset 8.group →Sec mem.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(2): Virtual.
Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
BIOS en Opstarten.
Basisfuncties Operating System.
Context switching Naomi Baggelaar. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data.
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Facet offline installatie
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
1 VMWare. 2 Introductie VMware Fysieke server ESX-server Virtuele machines Ongewijzigde toepassing Ongewijzigd besturingssysteem Virtuele hardware.
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data
Change support Tactisch support Strategisch support Management support Monitoring Educatie Management- informatie Data- beheer Behoefte- management Contract-
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Change support Tactisch support Strategisch support Management support Monitoring Educatie Management- informatie Data- beheer Behoefte- management Contract-
Module code: 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer 1 Operating Systems.
Operating Systems Informatica.
Strategisch support Management support Strategie Tactisch support
Computersystemen 2 (TIRCCMS02 - Operating systems)
3 Hardware 3.1 De processor en intern geheugen
Strategisch support Management support Strategie Tactisch support
Besturingssystemen Ga verder met een muisklik..
Besturingssysteem.
Netwerken & Internet 3.
Netwerken & Internet 1.
Transcript van de presentatie:

Hoofdstuk 8: Virtueel geheugen

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

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

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

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

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

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.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

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

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

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

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

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

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

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

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???

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)

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

8.2. OS software Vervangingsstrategie (replacement policy) page address stream 2 3 2 1 5 2 4 5 3 2 5 2 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

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

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

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

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

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

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

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)