1 Virtual Memory (b). 2 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.

Slides:



Advertisements
Similar presentations
Module 10: Virtual Memory
Advertisements

Page Replacement Algorithms (Virtual Memory)
Background Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for execution. Logical.
Chapter 9: Virtual Memory
Page 15/4/2015 CSE 30341: Operating Systems Principles Allocation of Frames  How should the OS distribute the frames among the various processes?  Each.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 38 Frame Allocation Read.
03/31/2004CSCI 315 Operating Systems Design1 Allocation of Frames & Thrashing (Virtual Memory)
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 ©2009 Operating System Concepts – 8 th Edition, Lecture 15: Background Information for the VMWare ESX Memory Management.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement.
Module 9: Virtual Memory
Advanced Operating Systems - Spring 2009 Lecture 17 – March 23, 2009 Dan C. Marinescu Office: HEC 439 B. Office hours:
Module 10: Virtual Memory Background Demand Paging Performance of Demand Paging Page Replacement Page-Replacement Algorithms Allocation of Frames Thrashing.
Chapter 9: Virtual-Memory Management. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 9: Virtual Memory Background Demand Paging.
Virtual Memory Background Demand Paging Performance of Demand Paging
Virtual Memory Introduction to Operating Systems: Module 9.
Virtual-Memory Management
Gordon College Stephen Brinton
Virtual Memory CS 3100 Virutal Memory.
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Virtual Memory.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement.
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.
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Revisiting Virtual Memory.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
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.
03/29/2004CSCI 315 Operating Systems Design1 Page Replacement Algorithms (Virtual Memory)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
Chapter 9: Virtual Memory. Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel.
Page 19/17/2015 CSE 30341: Operating Systems Principles Optimal Algorithm  Replace page that will not be used for longest period of time  Used for measuring.
Chapter 9: Virtual Memory. 9.2CSCI 380 – Operating Systems Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
Chapter 9: Virtual-Memory Management. 9.2Operating System Principles Chapter 9: Virtual-Memory Management Background Demand Paging Copy-on-Write Page.
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Background Virtual memory –
Operating System Concepts 7th Edition Abraham SilBerschatz Peter Baer Galvin Greg Gagne Prerequisite: CSE212.
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 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Chapter 9: Virtual Memory Background.
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 Process Creation Page Replacement.
Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples Operating.
Operating Systems CMPSC 473 Virtual Memory Management (3) November – Lecture 20 Instructor: Bhuvan Urgaonkar.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 10: Virtual Memory Background Demand Paging Page Replacement Allocation of.
9.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts Chapter 9: Virtual-Memory Management Background Demand Paging Page Replacement Allocation.
#include pthread_mutex_t sem_mut = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t cond_mut = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Outline n Background n Demand.
Chapter 9: Virtual Memory. 9.2 Chapter 9: Virtual Memory Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped.
9.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual Memory.
9.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 9: Virtual Memory.
Chapter 9: Virtual Memory. 9.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Background Virtual memory – separation of user logical memory.
Chapter 9: Virtual Memory. Background Demand Paging Copy-on-Write Page Replacement Allocation of Frames Thrashing Memory-Mapped Files Allocating Kernel.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 9: Virtual Memory.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 9: Virtual-Memory Management.
Chapter 9: Virtual Memory
Chapter 9: Virtual Memory
Chapter 9: Virtual Memory
Chapter 9: Virtual Memory
Module 9: Virtual Memory
Chapter 9: Virtual Memory
Chapter 9: Virtual Memory
5: Virtual Memory Background Demand Paging
Operating Systems CMPSC 473
Chapter 9: Virtual Memory
Module 9: Virtual Memory
Virtual Memory.
Presentation transcript:

1 Virtual Memory (b)

2 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. 3. Read the desired page into the (newly) free frame. Update the page and frame tables. 4. Restart the process.

3 Page Replacement

4 Page Replacement Algorithms  Want lowest page-fault rate.  Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string.  In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

5 Graph of Page Faults Versus The Number of Frames

6 First-In-First-Out (FIFO) Algorithm  Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  3 frames (3 pages can be in memory at a time per process)  4 frames page faults page faults 4 43

7 FIFO Page Replacement

8 FIFO page replacement  Assign time stamp with each page  time created  Replace oldest page  Advantages  easy  Disadvantages  could replace frequently used page  Can we improve the performance by adding more frames?  FIFO Replacement – Belady’s Anomaly  more frames  less page faults? Replacement Algorithms

9 FIFO Illustrating Belady’s Anomaly What is going on here? Belady’s Anomaly

10 Optimal Algorithm  Replace page that will not be used for longest period of time.  4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  How do you know this?  Used for measuring how well your algorithm performs page faults 4 5

11 Optimal Page Replacement

12 Least Recently Used (LRU) Algorithm  Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5  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 determine which are to change

13 LRU Page Replacement

14 LRU Algorithm (Cont.)  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  No search for replacement

15 Use Of A Stack to Record The Most Recent Page References

16 LRU Approximation Algorithms  Reference bit  With each page associate a bit, initially = 0  When page is referenced bit set to 1.  Replace the one which is 0 (if one exists). We do not know the order, however.  Second chance  Need reference bit.  Clock replacement.  If page to be replaced (in clock order) has reference bit = 1. then:  set reference bit 0.  leave page in memory.  replace next page (in clock order), subject to same rules.

17 Second-Chance (clock) Page-Replacement Algorithm

18 Clock Algorithm Enhancements  Consider reference bit and dirty bit  4 possible cases  (0,0) neither modified or referenced  (0,1) not recently used but modified  (1,0) recently used but clean  (1,1) recently used and modified  Still use “ clock algorithm ”  clear only reference bit upon consideration  Macintosh uses this scheme Clock Algorithm

19 Clock Algorithm Enhancements  Add additional reference bits  At regular intervals  record the reference bits  clear the reference bits  Record the reference bits in a shift register  8 bits  shift in the new reference bit value  Replace page with lowest reference value Clock Algorithm

20 Counting Algorithms  Keep a counter of the number of references that have been made to each page.  LFU Algorithm: replaces page with smallest count.  MFU Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used.

21 Allocation of Frames  Each process needs minimum number of pages.  Example: IBM 370 – 6 pages to handle SS MOVE instruction:  instruction is 6 bytes, might span 2 pages.  2 pages to handle from.  2 pages to handle to.  Two major allocation schemes.  fixed allocation  priority allocation

22 Fixed Allocation  Equal allocation – e.g., if 100 frames and 5 processes, give each 20 pages.  Proportional allocation – Allocate according to the size of process.

23 Priority Allocation  Use a proportional allocation scheme using priorities rather than size.  If process P i generates a page fault,  select for replacement one of its frames.  select for replacement a frame from a process with lower priority number.

24 Global vs. Local Allocation  Global replacement – process selects a replacement frame from the set of all frames; one process can take a frame from another.  Local replacement – each process selects from only its own set of allocated frames.

25 Thrashing  If a process does not have “enough” pages, the page-fault rate is very high. This leads to:  low CPU utilization.  operating system thinks that it needs to increase the degree of multiprogramming.  another process added to the system.  Thrashing  a process is busy swapping pages in and out.

26 Thrashing  Why does paging work? Locality model  Process migrates from one locality to another.  Localities may overlap.  Why does thrashing occur?  size of locality > total memory size

27 Locality In A Memory-Reference Pattern

28 Working Set of a Process  W(t, x): The set of pages accessed over the last x instructions at time t.  Principle of locality ensures that the working set changes slowly.

29 Working-Set Model    working-set window  a fixed number of page references Example: 10,000 instruction  WSS i (working set of Process P i ) = total number of pages referenced in the most recent  (varies in time)  if  too small will not encompass entire locality.  if  too large will encompass several localities.  if  =   will encompass entire program.  D =  WSS i  total demand frames  if D > m  Thrashing  Policy if D > m, then suspend one of the processes.

30 Working-set model

31 Working Sets  Processes go through phases  Stable  stays within stable working set  Transient  working set is rapidly changing  A study in 1971 revealed  Stable phases account for ~ 98% of time  Half of the page faults occur during other 2%  Fault rates during transitions were 100 to 1000 times higher than during stable phases  Stable phases were relatively insensitive to the time delta chosen.

32 Working Set Policy  Working set Policy  Compute working set size for all processes  Only admit a process if total working set size leaves free frames  Don ’ t allow a working set page to be replaced  When a process is blocked (I/O, etc.)  Prepage in its working set upon return.  How do we keep track of working set?

33 Keeping Track of the Working Set  Approximate with interval timer + a reference bit  Example:  = 10,000  Timer interrupts after every 5000 time units.  Keep in memory 2 bits for each page.  Whenever a timer interrupts copy and sets the values of all reference bits to 0.  If one of the bits in memory = 1  page in working set.  Why is this not completely accurate?  Improvement = 10 bits and interrupt every 1000 time units.

34 Page-Fault Frequency Scheme  Establish “acceptable” page-fault rate.  If actual rate too low, process loses frame.  If actual rate too high, process gains frame.

35 Other Considerations  Prepaging  Page size selection  fragmentation  table size  I/O overhead  locality

36 Other Considerations (Cont.)  TLB Reach - The amount of memory accessible from the TLB.  TLB Reach = (TLB Size) X (Page Size)  Ideally, the working set of each process is stored in the TLB. Otherwise there is a high degree of page faults.

37 Increasing the Size of the TLB  Increase the Page Size. This may lead to an increase in fragmentation as not all applications require a large page size.  Provide Multiple Page Sizes. This allows applications that require larger page sizes the opportunity to use them without an increase in fragmentation.

38 Other Considerations (Cont.)  Program structure  int A[][] = new int[1024][1024];  Each row is stored in one page  Program 1 for (j = 0; j < A.length; j++) for (i = 0; i < A.length; i++) A[i,j] = 0; 1024 x 1024 page faults  Program 2 for (i = 0; i < A.length; i++) for (j = 0; j < A.length; j++) A[i,j] = 0; 1024 page faults

39 Other Considerations (Cont.)  I/O Interlock – Pages must sometimes be locked into memory.  Consider I/O. Pages that are used for copying a file from a device must be locked from being selected for eviction by a page replacement algorithm.

40 Reason Why Frames Used For I/O Must Be In Memory

41 Operating System Examples  Unix SVR4  Solaris 2  Linux  Win 2K  Windows NT

42 Memory Management  Two separate memory management schemes in Unix SVR4 and Solaris  Paging System – Allocate page frames  Kernel Memory Allocator – Allocate memory for the kernel  Paging System Data Structures  Page Table – One entry for each page of virtual memory for that process  Page Frame Number – physical frame #  Age – how long in memory w/o reference  Copy on Write – 2 processes sharing page: after fork(), waiting for exec()  Modify – page modified?  Reference – set when page accessed  Valid – page is in main memory  Protect – are we allowed to write to this page?

43 Paging Data Structures  Disk Block Descriptor  Swap Device Number – Logical device  Device Block Number – Block location  Type of storage – Swap or executable  Page Frame Data Table  Page State – Available, in use, in executable, in transfer  Reference Count – # processes using page  Logical Device – Device holding copy  Block Number – Location on device  Pfdata pointer – For linked list of pages  Swap-use Table  Reference Count – # references to page on a storage device  Page/storage unit number – Page ID

44 SVR4 Page Replacement  Clock algorithm variant (Fig 8.23)  Fronthand – Clear Use bits  Backhand – Check Use bits, if use=0 prepare to swap page out  Scanrate – How fast hands move  Faster rate frees pages faster  Handspread – Gap between hands  Smaller gap frees pages faster  System adjusts values based on free memory

45 SVR4 Kernel Allocation  Used for structures < size of a page  Lazy buddy system  Don ’ t split/coalesce blocks as often  Frequently allocate/release memory, but the amount of blocks is use tends to remain steady  Locally free – Not coalesced  Globally free – Coalesce if possible  Want: # locally free  # in use

46 Solaris 2  Maintains a list of free pages to assign faulting processes.  Lotsfree – threshold parameter to begin paging.  Paging is peformed by pageout process.  Pageout scans pages using modified clock algorithm.  Scanrate is the rate at which pages are scanned. This ranged from slowscan to fastscan.  Pageout is called more frequently depending upon the amount of free memory available.

47 Solar Page Scanner

48 Linux Memory Management  Virtual Memory Addressing  Supports 3-level page tables  Page Directory - One page in size (must be in memory)  Page Middle Directory - Can span multiple pages, Will have size=1 on Pentium  Page Table - Points to individual pages  Page Allocation  Uses a buddy system with 1-32 page block sizes

49 Linux Memory Management  Page Replacement  Based on clock algorithm  Uses age variable  Incremented when page is accessed  Decremented as it scans memory  When age=0, page may be replaced  Has effect of least frequently used method  Kernel Memory Allocation  Uses scheme called slab allocation  Blocks of size 32 through 4080 bytes

50 Win 2K Memory Management  Virtual Address Map  to 00000FFF – Reserved (Catch NULL pointers)  to 7FFFEFFF – User space  7FFFEFFF to 7FFFFFFF – Reserved (Catch wild pointers)  to FFFFFFFF – System  Page States  Available – Not currently used  Reserved – Set aside, but not counted against memory quota (not in use)  No disk swap space allocated yet  Process can declare memory that can be quickly allocated when it is needed  Committed: space set aside in paging file (in use)

51 W2k Resident Set Management  Uses variable allocation, local scope  When a page fault occurs, a page is selected from the local set of pages  If main memory is plentiful, allow the resident set to grow as pages are brought into memory  If main memory is scarce, remove less recently accessed pages from the resident set

52 W2k Paging  Page Faults  Page marked as not present  CPU (H/W) determines page isn ’ t in memory  Interrupts the program, starts O.S. page fault handler  O.S. verifies the reference is valid but not in memory (Otherwise reports illegal address)  Swap out a page if needed  Read referenced page from disk  Update page table entry  Resume interrupted process (or switch to another process)  Page Size  Smaller has more frames, less internal fragmentation, but larger tables  Common sizes: Table 8.2, page 348

53 Windows NT  Uses demand paging with clustering. Clustering brings in pages surrounding the faulting page.  Processes are assigned working set minimum and working set maximum.  Working set minimum is the minimum number of pages the process is guaranteed to have in memory.  A process may be assigned as many pages up to its working set maximum.  When the amount of free memory in the system falls below a threshold, automatic working set trimming is performed to restore the amount of free memory.  Working set trimming removes pages from processes that have pages in excess of their working set minimum.