Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Vergelijkbare documenten
Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren. hoofdstukken 7 en 8.1

Virtueel Geheugen en demand paging (1)

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset idem

Computerarchitectuur. App. B. Review of Memory Hierarchy

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Computerarchitectuur en netwerken. Memory management Assembler programmering

Beter, Sneller, Mooier. Processoren 12 januari 2015

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Computerarchitectuur en netwerken. Memory management Assembler programmering

AndesCore TM N1213-S. AndesCore N1213-S. CPU Core. Configurability for customers

IN1805 I Operating System Concepten

slides2.pdf April 12,

Uitwerking Tentamen Operating Systems Maandag 15 juni 2015 P1 P2 P3 P4 P5 P1 P3 P5 P4 P2 P1 P3 P5 P3. Opgave 1

Beter, Sneller, Mooier. Processoren 27 maart 2012

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

1=2720/2725 Operating System Concepten

Computertechniek vorige examens

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

Belangrijkste ideeën/concepten uit OS, incl. proces

Tentamen Computersystemen

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur en netwerken Toets 1 4 okt

Geschreven door Administrator maandag, 20 augustus :55 - Laatst aangepast donderdag, 23 augustus :25

Hyper-V vs ESX in het datacenter

Het begrip 'Proces' Proces-toestand

High Availability & Disaster Recovery

Assembly en Assemblers. Processoren 5 januari 2015

computerarchitectuur antwoorden

Inleiding Practicum Operating Systems

slides3.pdf April 15,

Inhoudsopgave: Whisper380-computerhulp

Uitwerking oefententamen Computerarchitectuur December 2016

IN1671 Operating System concepten Oefen opgaven

Virtualizatie bij SIN

High Performance Computing

Windows NT 4.0. Performance Monitoring. Gino Damen 28 oktober 1997 Versie: 1.0

TECHNISCHE UNIVERSITEIT EINDHOVEN ComputerSystemen Deeltentamen B (weken 6..9) vakcode 2M208 woensdag 19 Maart 2003, 9:00-10:30

Debugging in embedded en native systemen met GDB

Project Name: New project

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

Hoofdstuk 7. Computerarchitectuur

Machine-Level Programming III: Procedures

Dynamic VM Memory Allocation using Cache Hit Ratio

in Operating System Concepten

in Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

High Performance Computing

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Deel 1: schriftelijk deel

VMware vsphere 5. What s New! Bram de Laat, Marek Zdrojewski, Jan van Leuken

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

IN1805 I - Operating System Concepten

FAT32 disk structuur 2007 stam.blogs.com

Bestandssystemen. yvan vander sanden. 16 maart 2015

Technische Specificaties nieuwe Unix Applikaties

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

AE1103 Statics. 25 January h h. Answer sheets. Last name and initials:

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

DB architectuur.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

UNECE/UNESCAP Workshop on. Electronic Trade Documents. Ulaanbaatar, Mongolia, October 2009

Bouwstenen voor PSE. Datatypes en Datastructuren

Arjen Glas Stage: Viaict. Opdracht virtualisatie I44

RAM optimaliseren: Cacheman

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Digitale technieken Deeltoets II

INHOUD. KHLim dep IWT MeRa 1/22

Hoofdstuk 19. Embedded systemen

Inleiding Practicum Operating Systems

College 13: Patterns (2)

Hoe werkt een computer precies?

Plan van aanpak. 1 Inleiding. 2 Onderzoek. 3 Taken. Kwaliteitswaarborging van webapplicaties. Rachid Ben Moussa

IN1805 I Operating System Concepten

DB architectuur.

CPU scheduling : introductie

scc = b) CD AB

Java virtuele machine JVM

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

FRAME [UPRIGHT MODEL] / [DEPTH] / [HEIGHT] / [FINISH] TYPE OF BASEPLATE P Base plate BP80 / E alternatives: ZINC finish in all cases

Hoofdstuk 18. Embedded systemen

Stappen om EduVPN te activeren:

18 Embedded systemen 1

Het digitaliseren van archieffilms. Giovanna Fossati Conservator, Filmmuseum TAPE, 20 september 2007

Computer architecturen: Hard Disk technologie

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

SCSI INSTALLATIE. Bij een SCSI netwerk tussen bijvoorbeeld 2 BERT interfaces en 1 Harddisk. Terminator geen Terminator Terminator.

Multi user Setup. Firebird database op een windows (server)

Hoe zet ik een geslaagd SBOproject

Standard Parts Installatie Solid Edge ST3

A2: Bedrijfssystemen. A2 en PC. Boek. Voorkennis

Handleiding VirtualBox

Digitale technieken Microprocessoren

Assemblers. TU-Delft. in101/99-pds 1

computerarchitectuur F. Vonk versie

Waarmaken van Leibniz s droom

Transcriptie:

Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen samen gebruiken meer geheugen dan fysiek aanwezig. Current top of stack Stack Figure 7.1 Addressing Requirements for a Process 1 1-1 Eisen Memory Management Relocation verwijzingen in code & data Protection zowel tussen processen, als binnen 1 process hardware ondersteund Sharing code (libraries) data Program Process Control Block Program Logical Organisation lineair (1-D) adresruimte modulair (n-d) (using segmentation) Physical Organisation moving information between main & secondary memory (RAM & disk) Data Object Code Figure 7. Data Stack Process image in main memory The Loading Function OS hangt erg van HARDWARE af wat betreft memory management!! 2 2-1

Absolute Loading Absolute/fysieke addressen in load module (door programmeur of linker) Module moet op vaste plek in fysieke geheugen. 7-15 Relocatable Loading Relatieve addressen in load module (tov. begin vd module of de PC) Loader vertaald relatieve naar absolute adressen (met relocation dictonary) Module kan op elke plek, maar na swappen terug op dezelfde plek (Waarom?) 3 4 Relative address Dynamical Run-Time Loading Base Register Process Control Block Alle adressen relatief tov begin programma, ook tijdens executie. Bounds Register Adder Comparator Absolute address Program Vertaling van symbolische adressen naar fysieke adressen gebeurt run-time. Interrupt to operating system Data Hardware ondersteund. (Waarom?) Stack Process image in main memory Figure 7.8 Hardware Support for Relocation 5 5-1

Memory Partitioning Memory Management Meerdere processes delen hoofdgeheugen dmv: Partitioning: fixed, dynamic, buddy Paging Segmentation Verdeel geheugen in stukken. Geeft elk process een stuk. Geef OS zelf een vaste stuk. Partitioning: Hoe verdelen we het geheugen in stukken? Placement Algorithm Welke process komt waar? 6 7 Fixed Partitioning Verdeel geheugen in vaste partities. Probleem: voor individueel partitie te klein: overlays nodig. partitie te groot: internal fragmentation Beperkte verbetering: vaste partities van verschillende grootte. Plaatsingsalgoritme bij gelijke partities: triviaal. bij ongelijke partities: zoveel mogelijk processen, of zo min mogelijk fragmentatie? Nadelen: interne fragmentatie aantal partities limiteert aantal processen Operating System (a) Equal-size partitions Operating System 2 M 4 M 6 M M 16 M (b) Unequal-size partitions 8 Figure 7.2 Example of Fixed Partitioning of a 64 Mbyte Memory 8-1

Dynamic Partitioning Operating System Kies partities dynamisch, afhankelijk van de grootte process image. Operating System New Processes Figure 7.3 Memory Assignment for Fixed Partitioning Probleem: external fragmentation Oplossing: compaction kost veel CPU-tijd! en vereist relocatable loading Plaatsingsalgoritme: first fit (simpel, snelste & beste) next fit best fit (meestal het slechste!!) New Processes 8-2 9 Paging 8K K First Fit 8K K Verdeel geheugen in frames van vaste grootte. Verdeel proces in pages van dezelfde grootte. Geef process zoveel frames als nodig. Last allocated block (K) 22K 18K Best Fit 6K 2K Per process: pages. page table vertelt plaats van 8K 6K Allocated block 8K 6K symbolic address = page number + offset berekening fysiek adres runtime. K Free block K weinig interne fragmentatie Next Fit enkel in laatste frame 36K (a) Before 20 K (b) After geen externe fragmentatie Later meer over de implementatie hiervan Figure 7.5 Example Memory Configuration Before and After Allocation of 16 Kbyte Block 9-1 10

Frame number 0 1 2 3 4 5 6 7 8 9 10 (a) Fifteen Available Pages 4 B.0 5 B.1 6 B.2 7 C.0 8 C.1 9 C.2 10 C.3 (d) Load Process C 4 5 6 7 8 9 10 (b) Load Process A 4 5 6 7 C.0 8 C.1 9 C.2 10 C.3 (e) Swap out B 4 B.0 5 B.1 6 B.2 7 8 9 10 (b) Load Process B 4 D.0 5 D.1 6 D.2 7 C.0 8 C.1 9 C.2 10 C.3 D.3 D.4 (f) Load Process D Figure 7.9 Assignment of Process Pages to Free Frames 10-1 Logical address = Segment# = 1, = 752 Logical address = Page# = 1, = 478 000100100000 0000010100 Relative address = 1502 0000010100 Segment 0 750 bytes Page 0 752 478 Page 1 User process (2700 bytes) Segment 1 1950 bytes Internal fragmentation Page 2 (c) Segmentation (a) Partitioning (b) Paging (page size = 1K) Figure 7. Logical Addresses 10-2 6-bit page # 16-bit logical address 10-bit offset 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 4-bit segment # 0 000101 1 0000 2 0001 Process page table 16-bit logical address -bit offset 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 (a) Paging 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 16-bit physical address Length Base 0 00101010 0000010000000000 1 0000 0010000000100000 + Process segment table 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 (b) Segmentation 16-bit physical address 10-3 Figure 7. Examples of Logical-to-Physical Address Translation Segmentation Programma verdeeld in segments van verschillende lengte. Er is een maximale segment lengte. Per process: segment table vertelt plaats van segments. symbolic address = segment number + offset geen interne fragmentatie wel externe fragmentatie zoals bij dynamic partitioning, maar minder Segmenten zichtbaar voor programmeur, pages niet.

Voordelen van Segmenten n-d ipv 1-D adresruimte, nuttig voor onafhankelijk groeiende datastructuren bijv. relocation per segment protectie per segment bijv rx voor code, wr voor data sharing bijv library code independent compilation, without relinking or reloading System met enkel segmentation worden schaars. Meestal: Segmentation & Paging Gebruik voor elk segment weer paging. Voordelen van beide. Bijv. MULTICS, 80486, Pentium. Virtual Memory Page Number Bij paging (en bij segmentation): Page Table Entry P MOther Control Bits Frame Number (a) Paging only symbolische addressen, vertaling naar fysieke addressen run-time. Segment Number Segment Table Entry P MOther Control Bits Length Segment Base proces image opgedeeld in stukken die op willekeurige posities in main memory staan (b) Segmentation only Hierdoor is virtual memory mogelijk: Segment Number Page Number zet sommige pages op disk! Segment Table Entry Other Control Bits Length Segment Base Page Table Entry P MOther Control Bits Frame Number (c) Combined segmentation and paging P= present bit M = Modified bit by page fault - verwijzing naar page op disk - haal page van disk (en zet evt. andere (welke?) weg) NB: Wat is het verschil met swappen? Figure 8.2 Typical Memory Management Formats -1

Voordeel: virtual memory groter dan real memory, dus proces kan groter zijn dan fysiek geheugen meer processen kunnen tegelijk draaien (want processes samen kunnen groter zijn dan fysiek geheugen) Extra informatie in page table: present-bit staat page in main memory? modify-bit is page veranderd sinds-ie van disk is gehaald? Maar werkt virtual memory wel? Swappen van pages kost tijd. Als dit te vaak gebeurt: thrashing. Gelukkig: meeste code & data referenties zijn in de buurt : principle of locality. resident set: geheugen pages van een process in working set pages van een process die gebruikt worden tijdens periode De hoop is dat meestal working set resident set 15 16 Implementatie Virtual Memory Page Frame Hangt voor groot deel nauw met hardware samen! implementatie page tables berekening fysieke adressen keuze van page grootte Stallings 8.1 Verder nog puur software in OS: algoritmen voor ophalen & wegzetten van pages: fetch, placement en replacement policies Stallings 8.2 Page # Frame # Register Page Table Ptr Page Table P# + Frame # Program Paging Main Memory Figure 8.3 Address Translation in a Paging System 17 17-1

Implementatie Page Tables Page tables zijn groot! (Virtual adress space is groot: 2 32, 2 64. Page size meestal 4k. Hoe groot kan de page table dan zijn?) Oplossing: page de page table. 2-level page table (80386, pentium) 3-level page table (Sparc) NB. deel vd page table op disk. Mogelijk double page faults Andere oplossing: inverted page table. Niet bijhouden waar elke virtual page staat, maar voor elke fysieke frame bijhouden welke virtual page erin staat. (PowerPC) Grootte tabel is nu #fysieke frames ipv #virtual pages. Page # Page Table Page # Entry Chain (hash) Frame # Frame # Inverted Page Table Real Address Hash Table Figure 8.4 Inverted Page Table Structure 18 18-1 Translation Lookaside Buffer (TLB) 1 virtual memory reference vereist 2 fysieke. Maar we willen dit SNEL doen. Secondary Memory Oplossing: Maak een cache voor de page table, Translation Lookaside Buffer (TLB) Behalve page fault kan er nu ook een TLB miss optreden. NB. De fysieke locatie van een page kan nu in TLB, of in page table in main memory, of in page table op disk Main Memory Translation Lookaside Buffer TLB hit Load page Page Table Frame # Real Address Figure 8.5 Use of a Tranlation Lookaside Buffer staan 19 Page # TLB miss Page fault 19-1

Welke page size is optimaal? Veel factoren hardware: TLB,... grootte & snelheid geheugen, disk, Trends: Real memory steeds groter software: locality, allocated frames per proces,... Kleinere pages betekent minder interne fragmentatie grotere page tables dus meer ervan op disk meer double page faults inefficienter laden van disk meer TLB misses maar niet noodzakelijk meer page faults! Grotere pages minder pages & minder profijt locality, totdat bijna hele proces 1 page wordt. 20 Locality neemt af, door OO & multithreading Oplossingen? grotere TLB (maar TLB zullen minder groeien dan geheugen) grotere pages (maar kan averechts werken) Trend: meerdere pagina groottes (bijv. SPARC, Pentium) 21