Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS307 Operating Systems Virtual Memory Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012.

Similar presentations


Presentation on theme: "CS307 Operating Systems Virtual Memory Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012."— Presentation transcript:

1 CS307 Operating Systems Virtual Memory Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012

2 2Operating Systems Background Code needs to be in memory to execute, but entire program rarely used Error code, unusual routines, large data structures Entire program code not needed at same time Consider ability to execute partially-loaded program Program no longer constrained by limits of physical memory Program could be larger than physical memory

3 3Operating Systems Virtual Memory That is Larger Than Physical Memory

4 4Operating Systems Virtual Memory Virtual Memory – separation of user logical memory from physical memory Only part of the program needs to be in memory for execution Logical address space can therefore be much larger than physical address space Allows memory address spaces to be shared by several processes Allows for more efficient process creation More programs running concurrently Less I/O needed to load or swap processes Virtual memory can be implemented via: Demand paging Demand segmentation

5 5Operating Systems Virtual Address Space Enables sparse address spaces with holes left for growth, dynamically linked libraries, etc System libraries shared via mapping into virtual address space Shared memory by mapping pages read-write into virtual address space Pages can be shared during fork(), speeding process creation

6 6Operating Systems Copy-on-Write Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory If either process modifies a shared page, only then is the page copied COW allows more efficient process creation as only modified pages are copied In general, free pages are allocated from a pool of zero-fill-on-demand pages Why zero-out a page before allocating it?

7 7Operating Systems Before Process 1 Modifies Page C

8 8Operating Systems After Process 1 Modifies Page C

9 9Operating Systems 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 Page is needed  reference to it invalid reference  abort not-in-memory  bring to memory Lazy swapper (pager) – never swaps a page into memory unless page will be needed

10 10Operating Systems Swap Paged Memory to Disk Space

11 11Operating Systems 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 Example of a page table snapshot: During address translation, if valid–invalid bit in page table entry is i  page fault v v v v i i i …. Frame #valid-invalid bit page table

12 12Operating Systems Page Table with Pages Not in Main Memory

13 13Operating Systems Page Fault If there is a reference to a page and the page is not in memory, the reference will trap to operating system: page fault 1. Operating system looks at page table to decide: Invalid reference  abort Just not in memory 2. Get empty frame 3. Swap page into frame via scheduled disk operation 4. Reset tables to indicate page now in memory Set validation bit = v 5. Restart the instruction that caused the page fault

14 14Operating Systems Steps in Handling a Page Fault

15 15Operating Systems What Happens if There is no Free Frame? Page replacement – find some page in memory, but not really in use, page it out Algorithm – terminate? swap out? replace the page? Performance – want an algorithm which will result in minimum number of page faults

16 16Operating Systems Need For Page Replacement

17 17Operating Systems Basic Page Replacement 1. Find the location of the desired page on disk 2. Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim frame - Write victim frame to disk if dirty 3. Bring the desired page into the (newly) free frame; update the page and frame tables 4. Continue the process by restarting the instruction that caused the trap Note now potentially 2 page transfers for page fault – increasing EAT

18 18Operating Systems Page Replacement f 0

19 19Operating Systems Page Replacement Prevent over-allocation of memory by modifying page-fault service routine to include page replacement Use modify (dirty) bit to reduce overhead of page transfers – only modified pages are written to disk Page replacement completes separation between logical memory and physical memory – large virtual memory can be provided on a smaller physical memory

20 20Operating Systems Page Replacement Algorithms Page-replacement algorithm Want lowest page-fault rate on both first access and re-access Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string String is just page numbers, not full addresses Repeated access to the same page, which is still in memory, does not cause a page fault In all our examples, the reference string is 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1

21 21Operating Systems Page-Replacement Algorithms First-In-First-Out (FIFO) Page Replacement Optimal Page Replacement Least Recently Used (LRU) Page Replacement LRU Approximation Page Replacement Counting Page Replacement

22 22Operating Systems FIFO Page Replacement When a page must be replaced, the oldest page is chosen. Page faults: 15 Consider the following reference string: 0 1 2 3 0 1 2 3 0 1 2 3 ……

23 23Operating Systems Optimal Page Replacement Replace page that will not be used for longest period of time Page faults: 9 How do you know this? Can’t read the future Used for measuring how well your algorithm performs

24 24Operating Systems Least Recently Used (LRU) Page Replacement Use past knowledge rather than future Replace page that has not been used in the most amount of time Associate time of last use with each page 12 faults – better than FIFO but worse than OPT Generally good algorithm and frequently used

25 25Operating Systems LRU Algorithm (Cont.) Counter implementation Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter When a page needs to be changed, look at the counters to find smallest value  Search through table needed Stack implementation Keep a stack of page numbers in a double link form: Page referenced:  move it to the top  requires 6 pointers to be changed But each update more expensive No search for replacement

26 26Operating Systems Use Of A Stack to Record The Most Recent Page References

27 27Operating Systems LRU Approximation Algorithms Reference bit / byte With each page associate a bit, initially = 0 When page is referenced, bit set to 1 Replace any with reference bit = 0 (if one exists)  We do not specify the order, however Second-chance algorithm Generally FIFO, plus hardware-provided reference bit Circular replacement If page to be replaced has  Reference bit = 0 -> replace it  Reference bit = 1 then: – set reference bit 0, leave page in memory – replace next page, subject to same rules

28 28Operating Systems Second-Chance Algorithm

29 29Operating Systems Counting Algorithms Keep a counter of the number of references that have been made to each page Least Frequently Used (LFU) Algorithm: replaces page with smallest count Most Frequently Used (MFU) Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used Not commonly used

30 30Operating Systems Page-Buffering Algorithms Keep a pool of free frames, always Then frame available when needed, not found at fault time Read page into free frame and select victim to evict and add to free pool When convenient, evict victim Possibly, keep list of modified pages When backing store otherwise idle, write pages there and set to non- dirty Possibly, keep free frame contents intact and note what is in them If referenced again before reused, no need to load contents again from disk Generally useful to reduce penalty if wrong victim frame selected

31 31Operating Systems Homework Reading Chapter 9 Exercise See course website

32 32Operating Systems Pop Quiz A memory system has three frames. Consider the following reference string 0 1 2 3 2 3 0 4 5 2 3 1 4 3 2 6 3 2 1 2 Draw a diagram to show the page replacement using Second-Chance Algorithm and calculate the number of page faults.


Download ppt "CS307 Operating Systems Virtual Memory Fan Wu Department of Computer Science and Engineering Shanghai Jiao Tong University Spring 2012."

Similar presentations


Ads by Google