UNIT 5 : Virtual Memory
Operating System Concepts – 8th Edition   Silberschatz, Galvin and Gagne ©2009
                                          Background
      ●     Virtual memory – involves the separation of logical memory as
            perceived by users from physical memory.
      ●     This separation allows an extremely large virtual memory to be
            provided for programmers when only a smaller physical
            memory is available
      ●     Virtual memory makes the task of programming much easier,
            because the programmer no longer needs to worry about the
            amount of physical memory available;
      ●     Only part of the program needs to be in memory for execution
      ●     Logical address space can therefore be much larger than
            physical address space
Operating System Concepts – 8th Edition       9.2         Silberschatz, Galvin and Gagne ©2009
                  ●     Allows address spaces to be shared by several processes
          ● Virtual memory can be implemented via:
                  ●     Demand paging
                  ●     Demand segmentation
Operating System Concepts – 8th Edition      9.3                Silberschatz, Galvin and Gagne ©2009
                                         Virtual Memory That is
                                      Larger Than Physical Memory
Operating System Concepts – 8th Edition         9.4          Silberschatz, Galvin and Gagne ©2009
                                          Demand Paging
          ● Bring a page into memory only when it is needed
               Less I/O needed
                  ●
             ● Less memory needed
             ● Faster response (no need to wait for all pages to load)
             ● More users
          ● 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
Operating System Concepts – 8th Edition        9.5        Silberschatz, Galvin and Gagne ©2009
                                          Valid-Invalid Bit
           ●     With each page table entry a valid–invalid bit is associated
                 (v ⇒ in-memory, i ⇒ not-in-memory)
           ●     Initially valid–invalid bit is set to i on all entries
           ●     Example of a page table snapshot:
                                           Frame #         valid-invalid bit
                                                            v
                                                            v
                                                            v
                                                            v
                                                            i
                                            ….
                                                            i
                                                            i
                                             page table
           ●     During address translation, if valid–invalid bit in page table entry
                 is I ⇒ page fault
Operating System Concepts – 8th Edition                   9.6                   Silberschatz, Galvin and Gagne ©2009
                                  Page Table When Some Pages
                                     Are Not in Main Memory
Operating System Concepts – 8th Edition     9.7         Silberschatz, Galvin and Gagne ©2009
                                          Page Fault
          ● If there is a reference to a page, first reference to that
                 page will trap to operating system:
                      page fault
         1.      Operating system looks at another table to decide:
                  ● Invalid reference ⇒ abort
                  ● Just not in memory
         2.      Get empty frame
         3.      Swap page into frame
         4.      Reset tables
         5.      Set validation bit = v
         6.      Restart the instruction that caused the page fault
Operating System Concepts – 8th Edition       9.8            Silberschatz, Galvin and Gagne ©2009
                         Steps in Handling a Page Fault
Operating System Concepts – 8th Edition   9.9     Silberschatz, Galvin and Gagne ©2009
                        Performance of Demand Paging
          ● Page Fault Rate 0 ≤ p ≤ 1.0
                  ●     if p = 0 no page faults
                  ●     if p = 1, every reference is a fault
          ● Effective Access Time (EAT)
                   EAT = (1 – p) x memory access
                           + p (page fault overhead
                                          + swap page out
                                          + swap page in
                                          + restart overhead
                                                           )(page fault service time)
Operating System Concepts – 8th Edition                 9.10                 Silberschatz, Galvin and Gagne ©2009
                                     Demand Paging Example
 ● Memory access time = 200 nanoseconds
 ● Average page-fault service time = 8 milliseconds
 ● EAT = (1 – p) x 200 + p (8 milliseconds)
                  = (1 – p x 200 + p x 8,000,000
                   = 200 + p x 7,999,800
  Suppose page fault rate=40%(p)
  =0.40
Operating System Concepts – 8th Edition      9.11       Silberschatz, Galvin and Gagne ©2009
                 What happens if there is no free frame?
 ● Page replacement – find some page in memory, but not really in
       use, swap it out
         ●    algorithm
         ●    performance – want an algorithm which will result in
              minimum number of page faults
 ● Same page may be brought into memory several times
Operating System Concepts – 8th Edition   9.12             Silberschatz, Galvin and Gagne ©2009
                                          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
Operating System Concepts – 8th Edition        9.13          Silberschatz, Galvin and Gagne ©2009
                                Need For Page Replacement
Operating System Concepts – 8th Edition   9.14       Silberschatz, Galvin and Gagne ©2009
                                      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. Bring the desired page into the (newly) free frame;
                  update the page and frame tables
         4. Restart the process
Operating System Concepts – 8th Edition       9.15             Silberschatz, Galvin and Gagne ©2009
                                          Page Replacement
Operating System Concepts – 8th Edition        9.16          Silberschatz, Galvin and Gagne ©2009
                             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
Operating System Concepts – 8th Edition            9.17              Silberschatz, Galvin and Gagne ©2009
                     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)
                                          1   1
                                          2   2          9 page faults
                                          3   3
                                          1   1
                                          2   2          10 page faults
     ● 4 frames
                                          3   3
                                          4   4
     ● Belady’s Anomaly: more frames ⇒ more page faults
Operating System Concepts – 8th Edition           9.18                    Silberschatz, Galvin and Gagne ©2009
                  Graph of Expected Page Faults Versus
                         The Number of Frames
Operating System Concepts – 8th Edition   9.19   Silberschatz, Galvin and Gagne ©2009
                    FIFO Illustrating Belady’s Anomaly
Operating System Concepts – 8th Edition   9.20   Silberschatz, Galvin and Gagne ©2009
                                      FIFO Page Replacement
Operating System Concepts – 8th Edition       9.21       Silberschatz, Galvin and Gagne ©2009
                                          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
                                             2            6 page faults
                                             3
  ❑ Unfortunately, the optimal page-replacement algorithm is
         difficult to implement, because it requires future knowledge of
         the reference string
   ● Used for measuring how well your algorithm performs
Operating System Concepts – 8th Edition          9.22                     Silberschatz, Galvin and Gagne ©2009
                                Optimal Page Replacement
Operating System Concepts – 8th Edition   9.23       Silberschatz, Galvin and Gagne ©2009
                 Least Recently Used (LRU) Algorithm
   ● we can replace the page that has not been used for the longest
          period of time
                                          1   1   1   1      5
   ●
                                          2   2   2   2      2
                                          3   5   5   4      4
                                          4   4   3   3      3
   ● Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Operating System Concepts – 8th Edition               9.24       Silberschatz, Galvin and Gagne ©2009
                                          LRU Page Replacement
Operating System Concepts – 8th Edition          9.25       Silberschatz, Galvin and Gagne ©2009
                                   Global vs. Local Allocation
          ● With multiple processes competing for frames, we can
                 classify page-replacement algorithms into two broad
                 categories: Global and local Replacement
          ● Global replacement – process selects a replacement
                 frame from the set of all frames,even if that frame is
                 currently allocated to some other process; that is, one
                 process can take a frame from another.
          ● Local replacement – each process selects from only its
                 own set of allocated frames
Operating System Concepts – 8th Edition      9.26             Silberschatz, Galvin and Gagne ©2009
                                          Thrashing
          ● If a process does not have “enough” pages in MM, 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
           Cause of Thrashing
          ● High page fault rate is trashing
          ● Trashing occur because of increasing of degree of
                 multiprogramming
          ●       a process is busy swapping pages in and out
          ● Lack of Frames
Operating System Concepts – 8th Edition       9.27               Silberschatz, Galvin and Gagne ©2009
                                          Thrashing (Cont.)
Operating System Concepts – 8th Edition           9.28        Silberschatz, Galvin and Gagne ©2009
          Recovery of trashing
        ●Instruct the long term scheduler not to bring the processes into
          the memory after particular threshold
        ●Instruct the medium term scheduler to suspend some of the
          processes so that we can recover the system from thrashing
        ●Increase the size of Main memory
Operating System Concepts – 8th Edition   9.29           Silberschatz, Galvin and Gagne ©2009