EECE.4810/EECE.5730 Operating Systems

Slides:



Advertisements
Similar presentations
Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
Advertisements

Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 36 Virtual Memory Read.
Virtual Memory Management G. Anuradha Ref:- Galvin.
16.317: Microprocessor System Design I
9.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory OSC: Chapter 9. Demand Paging Copy-on-Write Page Replacement.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement.
Module 9: Virtual Memory
Virtual Memory Introduction to Operating Systems: Module 9.
Memory/Storage Architecture Lab Computer Architecture Virtual Memory.
03/26/2010CSCI 315 Operating Systems Design1 Virtual Memory Notice: The slides for this lecture have been largely based on those accompanying an earlier.
Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Chapter 9: Virtual Memory Background.
Chapter 10: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Chapter 10: Virtual Memory.
1 Virtual Memory Chapter 8. 2 Hardware and Control Structures Memory references are dynamically translated into physical addresses at run time –A process.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
03/22/2004CSCI 315 Operating Systems Design1 Virtual Memory Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Part 8: Virtual Memory. Silberschatz, Galvin and Gagne ©2005 Virtual vs. Physical Address Space Each process has its own virtual address space, which.
Lecture 19: Virtual Memory
CS212: OPERATING SYSTEM Lecture 6: Virtual-Memory Management 1 Computer Science Department.
Virtual Memory Expanding Memory Multiple Concurrent Processes.
8.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Paging Physical address space of a process can be noncontiguous Avoids.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Page Replacement Allocation of.
Operating Systems (CS 340 D) Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 9 th Edition Chapter 9: Virtual-Memory Management.
Operating Systems (CS 340 D) Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Demand Paging.
Demand Paging Reference Reference on UNIX memory management
CS307 Operating Systems Virtual Memory Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012.
Silberschatz, Galvin and Gagne  Operating System Concepts Virtual Memory Virtual memory – separation of user logical memory from physical memory.
Lecture 19 Virtual Memory Demand Paging. Background Virtual memory – separation of user logical memory from physical memory. –Only part of the program.
Chapter 9: Virtual-Memory Management. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 9: Virtual-Memory Management 9.1 Background.
1 Lecture 8: Virtual Memory Operating System Fall 2006.
Silberschatz, Galvin and Gagne  Operating System Concepts Paging Logical address space of a process can be noncontiguous; process is allocated.
1 Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples (not covered.
10.1 Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual-Memory Management.
1 Contents Memory types & memory hierarchy Virtual memory (VM) Page replacement algorithms in case of VM.
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Background Virtual memory – separation of user logical memory.
Virtual Memory Chapter 8.
CS161 – Design and Architecture of Computer
Memory: Page Table Structure
Virtual Memory CSSE 332 Operating Systems
CS161 – Design and Architecture of Computer
Chapter 9: Virtual Memory – Part I
CS703 - Advanced Operating Systems
Chapter 9: Virtual Memory
CS 704 Advanced Computer Architecture
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
Chapter 9: Virtual Memory
Chapter 8 Virtual Memory
Lecture 10: Virtual Memory
Module 9: Virtual Memory
Chapter 9: Virtual Memory
EECE.4810/EECE.5730 Operating Systems
Chapter 9: Virtual-Memory Management
5: Virtual Memory Background Demand Paging
Chapter 9: Virtual Memory
Contents Memory types & memory hierarchy Virtual memory (VM)
Computer Architecture
Lecture 9: Caching and Demand-Paged Virtual Memory
CSE 542: Operating Systems
Module 9: Virtual Memory
EECE.4810/EECE.5730 Operating Systems
Virtual Memory.
Chapter 8 & 9 Main Memory and Virtual Memory
CSE 542: Operating Systems
EECE.4810/EECE.5730 Operating Systems
Virtual Memory 1 1.
Presentation transcript:

EECE.4810/EECE.5730 Operating Systems Instructor: Dr. Michael Geiger Spring 2017 Lecture 12: Paging (continued)

Operating Systems: Lecture 12 Lecture outline Announcements/reminders Midterm schedule: W 3/8 or Th 3/9 (see next slide) HW 3 to be posted today, due 3:15 PM, 3/6 No late submissions accepted Project 1 coming … HW 2 graded; returned Monday Some of you need to speak to me directly about your grade Today’s lecture: more paging details More paging details 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Midterm schedule Main time: W 3/8, 2-5 PM, Olney 517 (27 students) You must take the exam at this time if you are available Room changed since Monday’s original announcement 2nd time: Th 3/9, 9 AM-12 PM, Pasteur 411 (14 students) This time is only for students who are unavailable Wednesday 3rd time: Th 3/9, 12-3 PM, Ball 301E (7 students) This time is only for students who are unavailable for the first two times If you are unavailable at all 3 times, contact me directly to schedule your exam (5? students) No exams will be scheduled on Friday, 3/10 11/21/2018 Operating Systems: Lecture 12

Review: Paged Translation (Abstract) 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Review: Paged Translation (Implementation) 11/21/2018 Operating Systems: Lecture 12

Page table organization Page size strikes balance between Internal fragmentation (large pages) Unreasonably large page table (small pages) Large VA space  large page table Example: Say processor has 32-bit virtual address, 4 KB page size, and each page table entry holds 4 bytes. What’s size of page table? 4 KB page size  12-bit offset 20 bits for page #  220 pages  220 PTEs 220 PTEs * 4 bytes per PTE = 222 byte page table = 4 MB Page table itself would take 222/212 = 210 = 1K pages!!! Alternative page table organizations Multilevel page table Hashed page table Inverted page table 11/21/2018 Operating Systems: Lecture 12

Multi-level page table Space saving technique Outer page table points to second-level page table Second-level page table points to physical frame Could extend to >2 levels 11/21/2018 Operating Systems: Lecture 12

Multi-level page table example Example assumes 4 KB page size, 1K PTEs at each level 11/21/2018 Operating Systems: Lecture 12

Sparse address spaces: basic page table 11/21/2018 Operating Systems: Lecture 12

Sparse address spaces: 2-level page table 11/21/2018 Operating Systems: Lecture 12

Multi-level page table Benefits? Saves space over 1-level page table Particularly effective for sparse address spaces Downsides? May still have large tables at each level Multiple lookups per translation 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Hashed Page Tables Common in address spaces > 32 bits The virtual page number is hashed into a page table This page table contains a chain of elements hashing to the same location Each element contains (1) the virtual page number (2) the value of the mapped page frame (3) a pointer to the next element Virtual page numbers are compared in this chain searching for a match If a match is found, the corresponding physical frame is extracted 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Hashed Page Table 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Hashed page table Benefits? Even more space-effective than multilevel Downsides? Lookup time may be even longer 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Inverted Page Table Rather than each process having a page table and keeping track of all possible logical pages, track all physical pages One entry for each real page of memory Entry consists of the virtual address of the page stored in that real memory location, with information about the process that owns that page Decreases memory needed to store each page table, but increases time needed to search the table when a page reference occurs Use hash table to limit the search to one — or at most a few — page-table entries TLB can accelerate access But how to implement shared memory? One mapping of a virtual address to the shared physical address 11/21/2018 Operating Systems: Lecture 12

Inverted Page Table Architecture 11/21/2018 Operating Systems: Lecture 12

Virtual memory performance Address translation accesses memory to get PTE  every memory access twice as long Solution: store recently used translations Translation lookaside buffer (TLB): a cache for page table entries “Tag” is the virtual page # TLB small  often fully associative TLB entry also contains valid bit (for that translation); reference & dirty bits (for the page itself!) 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Details of Page Table Page Table Physical Memory Space Virtual Address Page Table index into page table Base Reg V Access Rights PA V page no. offset 12 table located in physical memory P page no. Physical Address frame frame frame frame virtual address Page table maps virtual page numbers to physical frames (“PTE” = Page Table Entry) Virtual memory => treat memory  cache for disk 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Demand Paging Could bring entire process into memory at load time Or bring a page into memory only when it is needed Less I/O needed, no unnecessary I/O Less memory needed Faster response More users Similar to paging system with swapping (diagram on right) Page is needed  reference to it invalid reference  abort not-in-memory  bring to memory Lazy swapper – never swaps a page into memory unless page will be needed Swapper that deals with pages is a pager 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Valid-Invalid Bit With each page table entry a valid–invalid bit is associated (v  in-memory – memory resident, i  not-in-memory) Initially valid–invalid bit is set to i on all entries During MMU address translation, if valid–invalid bit in page table entry is i  page fault 11/21/2018 Operating Systems: Lecture 12

Page table with non-resident pages 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Page Fault If there is a reference to a page, first reference to that page will trap to operating system: page fault Operating system looks at another table to decide: Invalid reference  abort Just not in memory Find free frame Swap page into frame via scheduled disk operation Reset tables to indicate page now in memory Set validation bit = v Restart the instruction that caused the page fault 11/21/2018 Operating Systems: Lecture 12

Steps in Handling a Page Fault 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Page replacement How do we determine page to evict if physical address space is full? Goal: minimize page faults Possible algorithms Random FIFO Replace page brought into memory longest time ago Page may still be frequently used Optimal Replace page that won’t be used for longest time in future Minimizes misses, but requires future knowledge Can we approximate optimal replacement? 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Page replacement LRU: least recently used replacement Past reference pattern predicts future Page accessed longest ago likely to be accessed furthest in future Why? Programs display temporal locality What info necessary to implement LRU? Past access history—difficult to track Approximated using reference bits Ref bit = 1 if page accessed within recent interval Cleared periodically 11/21/2018 Operating Systems: Lecture 12

Page replacement (continued) Clock algorithm Resident pages around “clock” When eviction necessary, consider page referenced by clock “hand” If ref bit = 0, not recently referenced—evict If ref bit = 1, clear ref bit and move to next page 11/21/2018 Operating Systems: Lecture 12

Clock algorithm example In example above, 8 resident pages Consider pages starting with P1 P4 is first non-referenced page—evicted for P9 Reference bit clear for P1-P3 11/21/2018 Operating Systems: Lecture 12

Clock algorithm implementation 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Dirty bits What happens on eviction? Simplest case: evicted page written back to disk When is write to disk actually necessary? Only if page has been modified Dirty bit tracks changed pages Dirty bit = 1  page modified How can dirty bit be used to modify eviction policy? More performance-effective to evict non-dirty pages—no need to take time to write to disk 11/21/2018 Operating Systems: Lecture 12

Virtual memory example Assume the current process uses the page table below: Which virtual pages are present in physical memory? Which resident pages are candidates for eviction? Assuming 1 KB pages and 16-bit addresses, what physical addresses would the virtual addresses below map to? 0x041C 0x08AD 0x157B Virtual page # Valid bit Reference bit Dirty bit Frame # 1 4 7 2 -- 3 5 11/21/2018 Operating Systems: Lecture 12

Virtual memory example soln. Which virtual pages are present in physical memory? All those with valid PTEs: 0, 1, 3, 5 Which resident pages are candidates for eviction? All those with valid PTEs and ref bit = 0: 3, 5 Assuming 1 KB pages and 16-bit addresses (both VA & PA), what PA, if any, would the VA below map to? 1 KB pages  10-bit page offset (unchanged in PA) Remaining bits: virtual page #  upper 6 bits Virtual page # chooses PTE; frame # used in PA 0x041C = 0000 0100 0001 11002 Upper 6 bits = 0000 01 = 1 PTE 1  frame # 7 = 000111 PA = 0001 1100 0001 11002 = 0x1C1C 0x08AD = 0000 1000 1010 11012 Upper 6 bits = 0000 10 = 2 PTE 2 is not valid  page fault 0x157B = 0001 0101 0111 10112 Upper 6 bits = 0001 01 = 5 PTE 5  frame # 0 = 000000 PA = 0000 0001 0111 10112 = 0x017B 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Final notes Next time: Midterm exam preview Reminders: Midterm schedule: W 3/8 or Th 3/9 (see 2nd slide) HW 3 to be posted today, due 3:15 PM, 3/6 No late submissions accepted Project 1 coming … HW 2 graded; to be returned today Some of you need to speak to me directly about your grade 11/21/2018 Operating Systems: Lecture 12

Operating Systems: Lecture 12 Acknowledgements These slides are adapted from the following sources: Silberschatz, Galvin, & Gagne, Operating Systems Concepts, 9th edition Anderson & Dahlin, Operating Systems: Principles and Practice, 2nd edition Chen & Madhyastha, EECS 482 lecture notes, University of Michigan, Fall 2016 11/21/2018 Operating Systems: Lecture 12