1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual Memory: Paging
1/1/ / faculty of Computer Science eindhoven university of technology Probleem: De computer heeft te weinig geheugen Meer geheugen kost (veel) geld Oplossing: Gebruik (stuk) disc als geheugen Eerst via ‘Overlays’ –Wat zijn overlays? –Stukken programma die niet tegelijk in geheugen zitten, maar die elkaar inladen en gebruiken –Nadeel: veel werk voor de programmeur!
1/1/ / faculty of Computer Science eindhoven university of technology Overlays: Disc Memory part 1 part 2 part 3 part 4 part 1 Shared data part 1 part 2
1/1/ / faculty of Computer Science eindhoven university of technology Adresruimte versus fysiek geheugen: Meestal is de adresruimte (veel) groter dan het fysieke geheugen page 0 page 1 Als adres ‘verkeerd’ is, genereer je een TRAP! page table
1/1/ / faculty of Computer Science eindhoven university of technology Idee Paging: Verdeel adresruimte in pagina’s Koppel pagina’s aan geheugen via ‘page table’ Als een adres gebruikt wordt dat niet aan fysiek geheugen is gekoppeld, genereer een TRAP. TRAP-handler voert ‘swap’ uit: –Sla ‘oude’ pagina op –Laad ‘nieuwe’ pagina in –Pas page-table aan –Herhaal laatste statement
1/1/ / faculty of Computer Science eindhoven university of technology Overlays versus Paging: Overlays: veel werk voor de programmeur. Om klein stukje van deel 2 te gebruiken moet heel deel 2 worden ingeladen. Paging: Programmeur hoeft er niet eens van te weten. (Werkt voor alle programma’s) Gedeelten van programma’s kunnen worden geladen
1/1/ / faculty of Computer Science eindhoven university of technology page tablefysiek geheugen Adressdecodering paging: pageindex
1/1/ / faculty of Computer Science eindhoven university of technology Overige administratie: Present bit: is de pagina geladen in geheugen? (adresruimte nog steeds groter dan geheugen) TRAP treed op als pagina niet present is! Written bit: is de pagina sinds het laden veranderd?(om onnodig opslaan van pagina’s te voorkomen) Writeable/Executable bit: is de beoogde toegang wel toegestaand? (beveiliging) Protection bit: mag pagina worden verwijderd?
1/1/ / faculty of Computer Science eindhoven university of technology Opmerkingen: Behalve bij een ‘page-fault’ kunnen er nu ook andere traps optreden. –Acces violation (bij poging om te schrijven naar onschrijfbare pagina) Writeable bit moet door hardware worden gecontrolleerd! Written bit moet door hardware worden bijgehouden.
1/1/ / faculty of Computer Science eindhoven university of technology Dillema van de TRAP-handler: Welke pagina moet worden verwijderd? De pagina die voorlopig het langst niet gebruikt wordt Maar: software kan niet voorspellen! Strategiën: –First In First Out (FIFO) –Least Recently Used (LRU) –Random
1/1/ / faculty of Computer Science eindhoven university of technology Page replacement policy: FIFO Idee: pagina die het langst in het geheugen staat mag worden verwijderd Administratie bijhouden bij het laden van een pagina Faalt bij grote cyclische programma’s Faalt bij programma’s die met grote hoeveelheden data werken (data mining)
1/1/ / faculty of Computer Science eindhoven university of technology Page replacement policy: LRU Idee: pagina die het langst niet gebruikt is mag worden verwijderd Administratie bijhouden bij het gebruiken van een pagina Faalt bij grote cyclische programma’s Faalt bij programma’s die met grote hoeveelheden data werken, maar doet het iets beter dan FIFO
1/1/ / faculty of Computer Science eindhoven university of technology FIFO: Falen bij lange cycles: Er is plaats voor 4 pagina’s programma is 1 pagina lang; data 4 pagina’s page 0 page 1 page 2 page page 0 page 4 page 1 page Ppage table geheugen
1/1/ / faculty of Computer Science eindhoven university of technology LRU: Falen bij lange cycles: Er is plaats voor 4 pagina’s programma is 1 pagina lang; data 4 pagina’s page 0 page 1 page 2 page page 4 page 1 page 2 2 Ppage table geheugen 3