Title: Operating Systems Principles Memory Management Lecture 8: Virtual Memory
1Operating Systems PrinciplesMemory
ManagementLecture 8 Virtual Memory
2Content
- Principles of Virtual Memory
- Implementations of Virtual Memory
- Paging
- Segmentation
- Paging With Segmentation
- Paging of System Tables
- Translation Look-Aside Buffers
- Memory Allocation in Paged Systems
- Global Page Replacement Algorithms
- Local Page Replacement Algorithms
- Load Control and Thrashing
- Evaluation of Paging
3Operating Systems PrinciplesMemory
ManagementLecture 8 Virtual Memory
- Principles of Virtual Memory
4The Virtual Memory
- Virtual memory is a technique that allows
processes that may not be entirely in the memory
to execute by means of automatic storage
allocation upon request. - The term virtual memory refers to the abstraction
of separating LOGICAL memory ? memory as seen by
the process ? from PHYSICAL memory ? memory as
seen by the processor. - The programmer needs to be aware of only the
logical memory space while the operating system
maintains two or more levels of physical memory
space.
5Principles of Virtual Memory
00000000
00000000
00000000
3FFFFFF
Physical Memory
64M
FFFFFFFF
FFFFFFFF
Virtual Memory
Virtual Memory
4G
4G
6Principles of Virtual Memory
00000000
00000000
00000000
Address Map
Address Map
3FFFFFF
Physical Memory
64M
FFFFFFFF
FFFFFFFF
Virtual Memory
Virtual Memory
4G
4G
7Principles of Virtual Memory
00000000
00000000
- For each process, the system creates the illusion
of large contiguousmemory space(s) - Relevant portions ofVirtual Memory (VM)are
loaded automatically and transparently - Address Map translates Virtual Addresses to
Physical Addresses
00000000
Address Map
Address Map
3FFFFFF
Physical Memory
64M
FFFFFFFF
FFFFFFFF
Virtual Memory
Virtual Memory
4G
4G
8Approaches
- Single-segment Virtual Memory
- One area of 0n?1 words
- Divided into fix-size pages
- Multiple-Segment Virtual Memory
- Multiple areas of up to 0n?1 (words)
- Each holds a logical segment(e.g., function,
data structure) - Each is contiguous or divided into pages
. . .
. . .
. . .
. . .
9Main Issues in VM Design
- Address mapping
- How to translate virtual addresses to physical
addresses? - Placement
- Where to place a portion of VM needed by process?
- Replacement
- Which portion of VM to remove when space is
needed? - Load control
- How many process could be activated at any one
time? - Sharing
- How can processes share portions of their VMs?
10Operating Systems PrinciplesMemory
ManagementLecture 8 Virtual Memory
- Implementations of Virtual Memory
11Implementations of VM
- Paging
- Segmentation
- Paging With Segmentation
- Paging of System Tables
- Translation Look-aside Buffers
12Paged Virtual Memory
Page No.
Offset
0
0
Page size 2n
1
1
2
2
w
p
2n?1
(p, w)
Virtual Address
P?1
Virtual Memory
13Physical Memory
The size of physical memory is usually much
smaller than the size of virtual memory.
Frame No.
Offset
0
0
Frame size 2n
1
1
2
2
w
f
2n?1
F?1
(f, w)
Physical Address
Physical Memory
14Virtual Physical Addresses
The size of physical memory is usually much
smaller than the size of virtual memory.
Memory Size
Address
va
pa
15Address Mapping
Given (p, w), how to determine f from p?
Address Map
16Address Mapping
Each process (pid id) has its own virtual
memory.
Given (id, p, w), how to determine f from (id, p)?
Address Map
17Frame Tables
Each process (pid id) has its own virtual
memory.
Given (id, p, w), how to determine f from (id, p)?
frame f ?1
frame f
f
ID
p
frame f 1
pid
page
Physical Memory
18Address Translation via Frame Table
Each process (pid id) has its own virtual
memory.
Given (id, p, w), how to determine f from (id, p)?
address_map(id,p,w) pa UNDEFINED
for(f0 fltF f) if(FTf.pidid
FTf.pagep) pa fw return pa
19Disadvantages
- Inefficient mapping must be performed for every
memory reference. - Costly Search must be done in parallel in
hardware (i.e., associative memory). - Sharing of pagesdifficult or not possible.
20Associative Memories as Translation Look-Aside
Buffers
- When memory size is large, frame tables tend to
be quite large and cannot be kept in associative
memory entirely. - To alleviate this, associative memories are used
as translation look-aside buffers. - To be detailed shortly.
21Page Tables
frame f ?1
frame f
PTR
Page Table Register
f
frame f 1
Page Tables
22Page Tables
- A page table keeps track of current locations of
all pages belonging to a given process. - PTR points at PT of the current process at run
time by OS. - Drawback
- An extra memory accesses needed for any
read/write operations. - Solution
- Translation Look-Aside Buffer
23Demand Paging
- Pure Paging
- All pages of VM are loaded initially
- Simple, but maximum size of VM size of PM
- Demand Paging
- Pages are loaded as needed on demand
- Additional bit in PT indicates
- a pages presence/absence in memory
- Page fault occurs when page is absent
24Demand Paging
True the mth page is in memory. False the mth
page is missing.
resident(m)
- Pure Paging
- All pages of VM can be loaded initially
- Simple, but maximum size of VM size of PM
- Demand Paging
- Pages a loaded as needed on demand
- Additional bit in PT indicates
- a pages presence/absence in memory
- Page fault occurs when page is absent
25Segmentation
- Multiple contiguous spaces (segments)
- More natural match to program/data structure
- Easier sharing (Chapter 9)
- va (s, w) mapped to pa (but no frames)
- Where/how are segments placed in PM?
- Contiguous versus paged application
26Contiguous Allocation Per Segment
Segment x
Segment s
STR
Segment Table Register
Segment y
Segment Tables
Physical Memory
27Contiguous Allocation Per Segment
- Each segment is contiguous in PM
- Segment Table (ST) tracks starting locations
- STR points to ST
- Address translation
- Drawback
- External fragmentation
address_map(s, w) if (resident((STRs)))
pa (STRs)w return pa else
segment_fault
28Contiguous Allocation Per Segment
- Each segment is contiguous in PM
- Segment Table (ST) tracks starting locations
- STR points to ST
- Address translation
- Drawback
- External fragmentation
29Paging with segmentation
30Paging with segmentation
- Each segment is divided into fix-size pages
- va (s, p, w)
- s determines of segments (size of ST)
- p determines of pages per segment (size of
PT) - w determines page size
- Address Translation
- Drawback
- 2 extra memory references
31Paging of System Tables
32Paging of System Tables
Drawback3 extra memory references.
- ST or PT may be too large to keep in PM
- Divide ST or PT into pages
- Keep track by additional page table
- Paging of ST
- ST divided into pages
- Segment directory keeps track of ST pages
- Address Translation
33Translation Look-Aside Buffers (TLB)
- Advantage of VM
- Users view memory in logical sense.
- Disadvantage of VM
- Extra memory accesses needed.
- Solution
- Translation Look-aside Buffers (TLB)
- A special high-speed memory
- Basic idea of TLB
- Keep the most recent translation of virtual to
physical addresses readily available for possible
future use. - An associative memory is employed as a buffer.
34Translation Look-Aside Buffers (TLB)
35Translation Look-Aside Buffers (TLB)
When the search of (s, p) fails, the complete
address translation is needed. Replacement
strategy LRU.
36Translation Look-Aside Buffers (TLB)
The buffer is searched associatively (in parallel)
37Operating Systems PrinciplesMemory
ManagementLecture 8 Virtual Memory
- Memory Allocation in Paged Systems
38Memory Allocation with Paging
- Placement policy ?
- where to allocate the memory on request?
- Any free frame is OK (no external fragmentation)
- Keep track of available space is sufficient both
for statically and dynamically allocated memory
systems - Replacement policy ?
- which page(s) to be replaced on page fault?
- Goal Minimize the number of page faults and/or
the total number pages loaded.
39Global/Local Replacement Policies
- Global replacement
- Consider all resident pages (regardless of
owner). - Local replacement
- Consider only pages of faulting process, i.e.,
the working set of the process.
40Criteria for Performance Comparison
- Tool Reference String (RS)
- r0 r1 ... rt ... rT
- rt the page number referenced at time t
- Criteria
- The number of page faults
- The total number of pages loaded
41Criteria for Performance Comparison
- Tool Reference String (RS)
- r0 r1 ... rt ... rT
- rt the page number referenced at time t
- Criteria
- The number of page faults
- The total number of pages loaded
To be used in the following discussions.
Equivalent
42Global Page Replacement Algorithms
- Optimal Replacement Algorithm (MIN)
- Accurate prediction needed
- Unrealizable
- Random Replacement Algorithm
- Playing roulette wheel
- FIFO Replacement Algorithm
- Simple and efficient
- Suffer from Beladys anormaly
- Least Recently Used Algorithm (LRU)
- Doesnt suffer from Beladys anormaly, but high
overhead - Second-Chance Replacement Algorithm
- Economical version of LRU
- Third-Chance Replacement Algorithm
- Economical version of LRU
- Considering dirty pages
43Optimal Replacement Algorithm (MIN)
- Replace page that will not be referenced for the
longest time in the future. - Problem
- Reference String not known in advance.
44ExampleOptimal Replacement Algorithm (MIN)
Replace page that will not be referenced for the
longest time in the future.
RS c a d b e b a b c d
2 page faults
c
a
d
b
e
b
a
b
c
d
Problem Reference String not known in advance.
45Random Replacement
- Program reference string are never know in
advance. - Without any prior knowledge, random replacement
strategy can be applied. - Is there any prior knowledge available for common
programs? - Yes, the locality of reference.
- Random replacement is simple but without
considering such a property.
46The Principle of Locality
- Most instructions are sequential
- Except for branch instruction
- Most loops are short
- for-loop
- while-loop
- Many data structures are accessed sequentially
- Arrays
- files of records
47FIFO Replacement Algorithm
- FIFO Replace oldest page
- Assume that pages residing the longest in memory
are least likely to be referenced in the future. - Easy but may exhibit Beladys anormaly, i.e.,
- Increasing the available memory can result in
more page faults.
48ExampleFIFO Replacement Algorithm
Replace oldest page.
RS c a d b e b a b c d
5 page faults
c
a
d
b
e
b
a
b
c
d
?
?
?
?
?
?
?
?
?
?
?
49Example Beladys Anormaly
RS dcbadcedcbaecdcbae
17 page faults
14 page faults
50Example Beladys Anormaly
15 page faults
14 page faults
51Least Recently Used Replacement (LRU)
- Replace Least Recently Used page
- Remove the page which has not been referenced for
the longest time. - Comply with the principle of locality
- Doesnt suffer from Beladys anormaly
52ExampleLeast Recently Used Replacement (LRU)
Replace Least Recently Used page.
RS c a d b e b a b c d
3 page faults
c
a
d
b
e
b
a
b
c
d
53LRU Implementation
- Software queue too expensive
- Time-stamping
- Stamp each referenced page with current time
- Replace page with oldest stamp
- Hardware capacitor with each frame
- Charge at reference
- Replace page with smallest charge
- n-bit aging register with each frame
- Set left-most bit of referenced page to 1
- Shift all registers to right at every reference
or periodically - Replace page with smallest value
R Rn?1 Rn?2 R1 R0
54Second-Chance Algorithm
Also called clock algorithm since search cycles
through page frames.
- Approximates LRU
- Implement use-bit u with each frame
- Set u1 when page referenced
- To select a page
- If u0, select page
- Else, set u0 and consider next frame
- Used page gets a second chance to stay in PM
55ExampleSecond-Chance Algorithm
- To select a page
- If u0, select page
- Else, set u0 and consider next frame
cycle through page frames
RS c a d b e b a b c d
4 page faults
c
a
d
b
e
b
a
b
c
d
?
?
?
?
?
?
?
?
?
?
?
56Third-Chance Algorithm
- Second chance algorithm does not distinguish
between read and write access - Write access more expensive
- Give modified pages a third chance
- u-bit set at every reference (read and write)
- w-bit set at write reference
- to select a page, cycle through frames,resetting
bits, until uw00 - uw ? uw
- 1 1 0 1
- 1 0 0 0
- 0 1 0 0 (remember modification)
- 0 0 select
Can be implemented by an additional bit.
57ExampleThird-Chance Algorithm
uw ? uw 1 1 0 1 1 0 0 0 0 1 0
0 0 0 select
RS c aw d bw e b aw b c d
3 page faults
c
aw
d
bw
e
b
aw
b
c
d
?
?
?
?
?
?
?
?
?
?
?
58Local Page Replacement Algorithms
- Measurements indicate thatEvery program needs a
minimum set of pages - If too few, thrashing occurs
- If too many, page frames are wasted
- The minimum varies over time
- How to determine and implement this minimum?
- Depending only on the behavior of the process
itself.
59Local Page Replacement Algorithms
- Optimal Page Replacement Algorithm (VMIN)
- The Working Set Model (WS)
- Page Fault Frequency Replacement Algorithm (PFF)
60Optimal Page Replacement Algorithm (VMIN)
- The method
- Define a sliding window (t, t ?) ? width ? 1
- ? is a parameter (a system constant)
- At any time t, maintain as resident all pages
visible in window - Guaranteed to generate smallest number of page
faults corresponding to a given window width.
61ExampleOptimal Page Replacement Algorithm
(VMIN)
? 3
RS c c d b c e c e a d
5 page faults
62ExampleOptimal Page Replacement Algorithm
(VMIN)
? 3
RS c c d b c e c e a d
5 page faults
63ExampleOptimal Page Replacement Algorithm
(VMIN)
? 3
- By increasing ?, the number of page faults can
arbitrarily be reduced, of course at the expense
of using more page frames. - VMIN is unrealizable since the reference string
is unavailable.
RS c c d b c e c e a d
5 page faults
64Working Set Model
- Use trailing window (instead of future window)
- Working set W(t, ?) is all pages referenced
during the interval (t ?, t) (instead of (t, t
?) ) - At time t
- Remove all pages not in W(t, ?)
- Process may run only if entire W(t, ?) is resident
65ExampleWorking Set Model
? 3
RS e d a c c d b c e c e a d
5 page faults
66ExampleWorking Set Model
? 3
RS e d a c c d b c e c e a d
5 page faults
67Approximate Working Set Model
- Drawback costly to implement
- Approximations
- 1. Each page frame with an aging register
- Set left-most bit to 1 whenever referenced
- Periodically shift right all aging registers
- Remove pages which reach zero from working set.
- 2. Each page frame with a use bit and a time
stamp - Use bit is turned on by hardware whenever
referenced - Periodically do following for each page frame
- Turn off use-bit if it is on and set current time
as its time stamp - Compute turn-off time toff of the page frame
- Remove the page from the working set if toff gt
tmax
68Page Fault Frequency (PFF) Replacement
- Main objective Keep page fault rate low
- Basic principle
- If the time btw the current (tc) and the previous
(tc?1) page faults exceeds a critical value ?,
all pages not referenced during that time
interval are removed from memory. - The algorithm of PFF
- If time between page faults ? ?
- grow resident set by adding new page to resident
set - If time between page faults gt ?
- shrink resident set by adding new page and
removing all pages not referenced since last page
fault
69ExamplePage Fault Frequency (PFF) Replacement
? 2
RS c c d b c e c e a d
5 page faults
70ExamplePage Fault Frequency (PFF) Replacement
? 2
RS c c d b c e c e a d
5 page faults
71Load Control and Thrashing
- Main issues
- How to choose the degree of multiprogramming?
- Decrease? Increase?
- When level decreased,which process should be
deactivated? - When a process created or a suspended one
reactivated,which of its pages should be loaded? - One or many?
- Load Control
- Policy to set the number type of concurrent
processes - Thrashing
- Most systems effort pays on moving pages between
main and secondary memory, i.e., low CPU
utilization.
72Load control ?Choosing Degree of Multiprogramming
- Local replacement
- Each process has a well-defined resident set,
e.g., Working set model PFF replacement - This automatically imposes a limit, i.e., up to
the point where total memory is allocated. - Global replacement
- No working set concept
- Use CPU utilization as a criterion
- With too many processes, thrashing occurs
73Load control ?Choosing Degree of Multiprogramming
- Local replacement
- Each process has a well-defined resident set,
e.g., Working set model PFF replacement - This automatically imposes a limit, i.e., up to
the point where total memory is allocated. - Global replacement
- No working set concept
- Use CPU utilization as a criterion
- With too many processes, thrashing occurs
L mean time between faultsS mean page fault
service time
74Load control ?Choosing Degree of Multiprogramming
How to determine the optimum, i.e., Nmax
- Local replacement
- Each process has a well-defined resident set,
e.g., Working set model PFF replacement - This automatically imposes a limit, i.e., up to
the point where total memory is allocated. - Global replacement
- No working set concept
- Use CPU utilization as a criterion
- With too many processes, thrashing occurs
L mean time between faultsS mean page fault
service time
75Load control ?Choosing Degree of Multiprogramming
How to determine Nmax ?
- LS criterion
- Page fault service S needs to keep up with mean
time between faults L. - 50 criterion
- CPU utilization is highest when paging disk 50
busy (found experimentally). - Clock load control
- Scan the list of page frames to find replaced
page. - If the pointer advance rate is too low, increase
multiprogramming level.
76Load control ?Choosing the Process to Deactivate
- Lowest priority process
- Consistent with scheduling policy
- Faulting process
- Eliminate the process that would be blocked
- Last process activated
- Most recently activated process is considered
least important. - Smallest process
- Least expensive to swap in and out
- Largest process
- Free up the largest number of frames
77Load control ? Prepaging
- Which pages to load when process activated
- Prepage last resident set
78Evaluation of Paging
- Advantages of paging
- Simple placement strategy
- No external fragmentation
- Parameters affecting the dynamic behavior of
paged systems - Page size
- Available memory
79Evaluation of Paging
80Evaluation of Paging
Prepaging is important.
A process requires a certain percentages of its
pages within the short time period after
activation.
81Evaluation of Paging
However, small pages require lager page tables.
Smaller page size is beneficial.
Another advantage with a small page size Reduce
memory waste due to internal fragmentation.
82Evaluation of Paging
W Minimum amount of memory to avoid thrashing.
Load control is important.