You are on page 1of 20

Virtual Memory

• Background
• Demand Paging
• Process Creation
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating System Examples
Background
• 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 address spaces to be shared by several processes.
– Allows for more efficient process creation.

• Virtual memory can be implemented via:


– Demand paging
– Demand segmentation

Operating System
Concepts
Virtual Memory That is Larger Than Physical Memory

Operating System
Concepts
Demand Paging
• Bring a page into memory only when it is needed.
– Less I/O needed
– Less memory needed
– Faster response
– More users

• Page is needed  reference to it


– invalid reference  abort
– not-in-memory  bring to memory

Operating System
Concepts
Transfer of a Paged Memory to Contiguous Disk Space

Operating System
Concepts
Valid-Invalid Bit
• With each page table entry a valid–invalid bit is associated
(1  in-memory, 0  not-in-memory)
• Initially valid–invalid bit is set to 0 on all entries.
Frame # valid-invalid bit
• Example of a page table snapshot.
1
1
1
1
0

0
0
• During address translation, if valid–invalid bit in page table entry
is 0  page fault.
page table

Operating System
Concepts
Page Table When Some Pages Are Not in Main Memory

Operating System
Concepts
Page Fault
• If there is ever a reference to a page, first reference will trap to
OS  page fault
• OS looks at another table to decide:
– Invalid reference  abort.
– Just not in memory.
• Get empty frame.
• Swap page into frame.
• Reset tables, validation bit = 1.
• Restart instruction: Least Recently Used
– block move

– auto increment/decrement location

Operating System
Concepts
Steps in Handling a Page Fault

Operating System
Concepts
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.
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.


Page Replacement
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
70120304230321201701
FIFO Page Replacement
Optimal Algorithm
• Replace page that will not be used for longest
period of time.
LRU Page Replacement
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.
Thrashing (Cont.)
Demand Paging and Thrashing
• Why does demand paging work?
Locality model
– Process migrates from one locality to
another
– Localities may overlap

• Why does thrashing occur?


 size of locality > total memory size
– Limit effects by using local or priority page
replacement
Working-Set Model
•   working-set window  a fixed number of page references
Example: 10,000 instructions
• WSSi (working set of Process Pi) =
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 =  WSSi  total demand frames
– Approximation of locality
• if D > m  Thrashing

• nd or swap out one of the


Policy if D > m, then suspe

processes

You might also like