420 likes | 440 Views
Lecture 8: Virtual Memory. Operating System Fall 2006. Two characteristics of paging and segmentation. Memory references are dynamically translated into physical addresses at run time A process may be swapped in and out of main memory such that it occupies different regions
E N D
Lecture 8: Virtual Memory Operating System Fall 2006
Two characteristics of paging and segmentation • Memory references are dynamically translated into physical addresses at run time • A process may be swapped in and out of main memory such that it occupies different regions • A process may be broken up into pieces that do not need to located contiguously in main memory • All pieces of a process do not need to be loaded in main memory during execution
Virtual Memory • It is not necessary that all of the pages or all of the segments of a process be in main memory during execution. As long as the piece holding the next instruction and the data to be accessed are in main memory, then execution may proceed. • Use page table to do address translation. If the page is not in memory, it generates a page fault interrupt, the OS will bring the page from disk into main memory. When this is done, resume execution.
Advantages of Virtual Memory • More processes may be maintained in main memory • Only load in some of the pieces of each process • With so many processes in main memory, it is very likely a process will be in the Ready state at any particular time • A process may be larger than all of main memory. Programs become portable across different platforms.
Types of Memory • Real memory • Physical Main memory • Virtual memory • Programmer perceived memory • Memory on disk • Allows for effective multiprogramming and relieves the user of tight constraints of main memory
Principle of Locality • Program and data references within a process tend to cluster • Only a few pieces of a process will be needed over a short period of time • Possible to make intelligent guesses about which pieces will be needed in the future • This suggests that virtual memory may work efficiently
Support Needed for Virtual Memory • Hardware must support paging and segmentation • Operating system must be able to management the movement of pages and/or segments between secondary memory and main memory
Paging • Each process has its own page table • Each page table entry contains the frame number of the corresponding page in main memory • Presence Bit: A bit is needed to indicate whether the page is in main memory or not • Modify Bit: • Another bit is needed to indicate if the page has been altered since it was last loaded into main memory • If no change has been made, the page does not have to be written to the disk when it needs to be swapped out
Translation Lookaside Buffer • Contains page table entries that have been most recently used • Functions same way as a memory cache
Structure of the Page Table • Hierarchical Paging • Hashed Page Tables • Inverted Page Tables
Hierarchical Page Tables • Break up the logical address space into multiple page tables • A simple technique is a two-level page table
Memory Protection • Memory protection implemented by associating protection bit with each frame • Valid-invalid bit attached to each entry in the page table: • “valid” indicates that the associated page is in the process’ logical address space, and is thus a legal page • “invalid” indicates that the page is not in the process’ logical address space
Segmentation • May be unequal, dynamic size • Simplifies handling of growing data structures • Allows programs to be altered and recompiled independently • Lends itself to sharing data among processes • Lends itself to protection
Segment Tables • corresponding segment in main memory • Each entry contains the length of the segment • A bit is needed to determine if segment is already in main memory • Another bit is needed to determine if the segment has been modified since it was loaded in main memory
Combined Paging and Segmentation • Paging is transparent to the programmer • Paging eliminates external fragmentation • Segmentation is visible to the programmer • Segmentation allows for growing data structures, modularity, and support for sharing and protection • Each segment is broken into fixed-size pages
OS Supports for Virtual Memory • Virtual Memory: not all pages of a process are in main memory • OS needs to decide on the following issues: • Fetch Policy • Placement Policy • Replacement Policy
Fetch Policy • Fetch Policy • Determines when a page should be brought into memory • Demand paging – bring pages into main memory only when it is needed • Many page faults when process first started • Less I/O needed • Less memory needed • Faster response • More users • Prepaging – brings in more pages then needed even though it is not needed now. • Faster to bring in several pages than one at a time • More efficient to bring in pages that reside contiguously on the disk
Placement Policy • Decides where a process piece reside in main memory • For paging system, it is a trivial issue • For segmentation system, use first-fit or best-fit to look for a hole.
Replacement Policy • Determines which page to replace when a new page needs to be brought in and there is no empty page frame around • Page removed should be the page least likely to be referenced in the near future • Most policies predict the future behavior on the basis of past behavior
Replacement Policy • Frame Locking • If frame is locked, it may not be replaced • Kernel of the operating system • Control structures • I/O buffers • Associate a lock bit with each frame
Replacement Algorithms • Belady’s Optimal Algorithm • Least Recently Used Algorithm (LRU) • First-in-first-out Algorithm (FIFO) • Clock (approximation of LRU)
Belady’s Optimal Algorithm • Optimal policy • Selects for replacement that page for which the time to the next reference is the longest • Impossible to have perfect knowledge of future events
Least Recently Used (LRU) • Replaces the page that has not been referenced for the longest time • By the principle of locality, this should be the page least likely to be referenced in the near future • Each page could be tagged with the time of last reference. This would require a great deal of overhead.
First-in, first-out (FIFO) • Treats page frames allocated to a process as a circular buffer • Pages are removed in round-robin style • Simplest replacement policy to implement • Page that has been in memory the longest is replaced • These pages may be needed again very soon • LRU performs better than FIFO, but difficult to implement.
Clock Policy • Additional bit called a use bit • When a page is first loaded in memory, the use bit is set to 0 • When the page is referenced, the use bit is set to 1 • When it is time to replace a page, the first frame encountered with the use bit set to 0 is replaced. • During the search for replacement, each use bit set to 1 is changed to 0
Further Refinement for Clock Policy • Two bits: • Used bit: u bit=1 when used • Modify bit: m bit=1 when the page is written • Four states: • u=0;m=0 – not used, not modified • u=1;m=0 – used, not modified • u=0;m=1 – not used, modified • u=1;m=1 – used, modified
Further Refinement for Clock Policy • Algorithm: • Beginning at the current position of the ptr, scan the frame buffer. During this scan, make no changes to the use bit. The first frame encountered with (u=0;m=0) is selected for replacement. • If step 1 fails, scan again, looking for the frame with (u=0;m=1). The first such frame encountered is selected for replacement. During this scan, set the use bit to 0 on each frame that is bypassed. • If step 2 fails, the ptr should have returned to its original position and all of the frames in the set will have a use bit of 0. Repeat step 1, and if necessary, step 2. This time, a frame will be found for the replacement.
End of lecture 8 Thank you!