Chapter 9: Virtual Memory - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

Chapter 9: Virtual Memory

Description:

Replace page that will not be used for longest period of time. 4 frames example ... example a function is called. Locality In A Memory-Reference Pattern ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 58
Provided by: marily206
Learn more at: http://www.cs.gsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter 9: Virtual Memory


1
Chapter 9 Virtual Memory
2
Chapter 9 Virtual Memory
  • Background
  • Demand Paging
  • Copy-on-Write
  • Page Replacement
  • Allocation of Frames
  • Thrashing
  • Other Considerations

3
Objectives
  • To describe the benefits of a virtual memory
    system
  • To explain the concepts of demand paging,
    page-replacement algorithms, and allocation of
    page frames
  • To discuss the principle of the working-set model

4
Background
  • Virtual memory separation of user logical
    memory from physical memory.
  • Only part of the program needs to be in memory
    for execution
  • Code for handling unusual error conditions
  • Less memory is used than allocated for arrays,
    lists and tables
  • Certain options and features of a program may be
    used rarely
  • 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

5
Virtual Memory That is Larger Than Physical Memory
?
6
Virtual-address Space
7
Shared Library Using Virtual Memory
8
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
  • Lazy swapper never swaps a page into memory
    unless page will be needed
  • Swapper that deals with pages is a pager

9
Transfer of a Paged Memory to Contiguous Disk
Space
10
Valid-Invalid Bit
  • With each page table entry a validinvalid bit is
    associated(v ? in-memory, i ? not-in-memory)
  • Initially validinvalid bit is set to i on all
    entries
  • Example of a page table snapshot
  • During address translation, if validinvalid bit
    in page table entry is i ? page fault

Frame
valid-invalid bit
v
v
v
v
i
.
i
i
page table
11
Page Table When Some Pages Are Not in Main Memory
12
Page Fault
  • If there is a reference to a page, first
    reference to that page will trap to operating
    system
  • page fault
  • Operating system looks at another table to
    decide
  • Invalid reference ? abort
  • Just not in memory
  • Get empty frame
  • Swap page into frame
  • Reset tables
  • Set validation bit v
  • Restart the instruction that caused the page fault

13
Steps in Handling a Page Fault
14
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

  • )

15
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
  • If one access out of 1,000 causes a page fault,
    then
  • EAT 8.2 microseconds.
  • This is a slowdown by a factor of 40!!

16
Copy-on-Write
  • Copy-on-Write (COW) allows both parent and child
    processes to initially share the same pages in
    memoryIf either process modifies a shared page,
    only then is the page copied
  • COW allows more efficient process creation as
    only modified pages are copied
  • Free pages are allocated from a pool of
    zeroed-out pages

17
Before Process 1 Modifies Page C
18
After Process 1 Modifies Page C
19
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

20
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

21
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 when the page is swapped out
  • Page replacement completes separation between
    logical memory and physical memory large
    virtual memory can be provided on a smaller
    physical memory

22
Need For Page Replacement
23
Page Replacement
24
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

25
Graph of Page Faults Versus The Number of Frames
26
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
  • Beladys Anomaly more frames ? more page faults

1
1
4
5
2
2
1
3
9 page faults
3
3
2
4
1
1
5
4
2
2
1
10 page faults
5
3
3
2
4
4
3
27
FIFO Illustrating Beladys Anomaly
28
FIFO Page Replacement
29
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

1
4
2
6 page faults
3
4
5
30
Optimal Page Replacement
31
Least Recently Used (LRU) Algorithm
  • Associates with each page the time of that pages
    last use
  • 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

32
LRU Page Replacement
33
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 at the worst
  • No search for replacement

34
Use Of A Stack to Record The Most Recent Page
References
35
LRU Approximation Algorithms
  • Few computer system provide sufficient hardware
    support for true LRU page replacement.
  • 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

36
Additional-Reference-Bits Algorithm
  • Gain additional ordering information by recording
    the reference bits at regular intervals.
  • Keep an 8-bit byte for each page
  • Shift the reference bit into the high-order of
    its 8-bit byte, shift the other bits right by 1
    bit and discard the low-order bit.
  • 00000000 has not been used for eight time periods
  • 11111111 a page that is used at least once in
    each period
  • 11000100 has been used more recently than
    01110111
  • Replace the page with the smallest binary value
    of the register

37
Second-Chance Algorithm
  • It is a FIFO replacement algorithm.
  • We focus on its reference bit.
  • If page to be replaced (in clock order) has
    reference bit 1 then
  • set its arrival time to current time
  • set reference bit 0
  • leave page in memory
  • replace next page (in clock order), subject to
    same rules

38
Second-Chance (clock) Page-Replacement Algorithm
39
Enhanced Second-Chance Algorithm
  • We focus on the pair of the reference bit and the
    modified bit
  • Four possible classes
  • (0,0) neither recently used nor modified best
    page to replace
  • (0,1) not recently used but modified not quite
    as good, because the page will need to be written
    out before replaced
  • (1,0) recently used but clean probably will be
    used again soon
  • (1,1) recently used and modified probably will
    be used again soon, and the page will be need to
    be written out to disk before it can be replaced
  • Replace the first page encountered in the lowest
    nonempty class.
  • Reduce the number of I/O operations

40
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
  • Neither MFU nor LFU replacement is common

41
Page-Buffering Algorithm
  • An addition to a specific page-replacement
    algorithm.
  • Keep a pool of free frames.
  • When page fault occurs, victim frame is chosen as
    before. The desired page is read into a free
    frame from the pool before the victim is written
    out.
  • When the victim is later written out, its frame
    is added to the free-frame pool

42
Allocation of Frames
  • Each process needs minimum number of pages
  • It relates to the performance
  • As the number of frames allocated decreases, the
    page-fault rate increases
  • The instruction must be restarted when a page
    fault occurs
  • 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

43
Fixed Allocation
  • Equal allocation For example, if there are 100
    frames and 5 processes, give each process 20
    frames.
  • Proportional allocation Allocate according to
    the size of process

44
Priority Allocation
  • Use a proportional allocation scheme using
    priorities rather than size
  • If process Pi generates a page fault,
  • select for replacement one of its frames
  • select for replacement a frame from a process
    with lower priority number

45
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
  • Global replacements problem a process can not
    control its own page-fault rate. It may be
    affected by the paging behavior of others
  • Local replacements problem less used pages of
    memory
  • Global replacement generally results in greater
    system throughput

46
Thrashing
  • If a process does not have enough pages, the
    page-fault rate is very high. This leads to
  • low CPU utilization
  • take frames from other process if global
    replacement is used
  • result in a long queue for the paging device and
    nearly empty ready queue
  • operating system thinks that it needs to increase
    the degree of multiprogramming
  • new process is added to the system
  • Thrashing ? a process is busy swapping pages in
    and out

47
Thrashing (Cont.)
48
Thrashing (Cont.)
  • Local replacement algorithm or priority
    replacement algorithm can limit thrashing.
  • Another issue is that the EAT of a process that
    is not thrashing will increase because the longer
    average queue for the paging device.
  • To prevent thrashing, we must provide a process
    with as many frames as it needs. But how do we
    know how many frames it needs?
  • The working-set strategy
  • Locality model of process execution
  • A locality is a set of pages that are actively
    used together. A program moves from locality to
    locality. Locality may overlap.
  • For example a function is called.

49
Locality In A Memory-Reference Pattern
50
Working-Set Model
  • ? ? working-set window ? a fixed number of page
    references Example 10,000 references
  • 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
  • if D gt m (available frames)? Thrashing
  • Policy if D gt m, then suspend one of the processes

51
Working-set model
52
Keeping Track of the Working Set
  • Approximate with interval timer a reference bit
  • Example ? 10,000
  • Timer interrupts after every 5000 time units
  • Keep 2 in-memory 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?
  • Can not tell where, within an interval 5,000, a
    reference occurred
  • Improvement 10 bits and interrupt every 1000
    time units

53
Page-Fault Frequency Scheme
  • The working-set model is useful for prepaging,
    but it seems a clumsy way to control thrashing.
  • Establish acceptable page-fault rate
  • If actual rate too low, process loses frame
  • If actual rate too high, process gains frame

54
Other Issues -- Prepaging
  • Prepaging
  • To reduce the large number of page faults that
    occurs at process startup
  • Prepage all or some of the pages a process will
    need, before they are referenced
  • But if prepaged pages are unused, I/O and memory
    was wasted
  • Assume s pages are prepaged and a fraction a of
    the pages is used
  • Is cost of s a save pages faults gt or lt than
    the cost of prepaging s (1- a) unnecessary
    pages?
  • a near zero ? prepaging loses

55
Other Issues Page Size
  • Page size selection must take into consideration
  • Fragmentation smaller page benefits memory
    utilization
  • table size smaller page increases the table
    size
  • I/O overhead larger page reduces I/O overhead
  • Locality smaller page allows each page to match
    program locality more accurately

56
Other Issues Program Structure
  • Program structure
  • Int128,128 data
  • Each row is stored in one page
  • Program 1
  • for (j 0 j lt128 j)
    for (i 0 i lt 128 i)
    datai,j 0
  • 128 x 128 16,384 page faults
  • Program 2
  • for (i 0 i lt 128 i)
    for (j 0 j lt 128 j)
    datai,j 0
  • 128 page faults

57
End of Chapter 9
Write a Comment
User Comments (0)
About PowerShow.com