SlideShare a Scribd company logo
Silberschatz, Galvin and Gagne ©200210.1
Chapter 10: Virtual Memory
Background
Demand Paging
Process Creation
Page Replacement
Allocation of Frames
Thrashing
Operating System Examples
Silberschatz, Galvin and Gagne ©200210.2
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
Silberschatz, Galvin and Gagne ©200210.3
Virtual Memory That is Larger Than Physical
Memory
Silberschatz, Galvin and Gagne ©200210.4
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
Silberschatz, Galvin and Gagne ©200210.5
Transfer of a Paged Memory to Contiguous Disk
Space
Silberschatz, Galvin and Gagne ©200210.6
Valid-Invalid Bit
With each page table entry a valid–invalid bit is
associated
(1 ⇒ in-memory, 0 ⇒ not-in-memory)
Initially valid–invalid but is set to 0 on all entries.
Example of a page table snapshot.
During address translation, if valid–invalid bit in page
table entry is 0 ⇒ page fault.
1
1
1
1
0
0
0

Frame # valid-invalid bit
page table
Silberschatz, Galvin and Gagne ©200210.7
Page Table When Some Pages Are Not in Main
Memory
Silberschatz, Galvin and Gagne ©200210.8
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
Silberschatz, Galvin and Gagne ©200210.9
Steps in Handling a Page Fault
Silberschatz, Galvin and Gagne ©200210.10
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.
Silberschatz, Galvin and Gagne ©200210.11
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)
Silberschatz, Galvin and Gagne ©200210.12
Demand Paging Example
Memory access time = 1 microsecond
50% of the time the page that is being replaced has been
modified and therefore needs to be swapped out.
Swap Page Time = 10 msec = 10,000 msec
EAT = (1 – p) x 1 + p (15000)
1 + 15000P (in msec)
Silberschatz, Galvin and Gagne ©200210.13
Process Creation
Virtual memory allows other benefits during process
creation:
- Copy-on-Write
- Memory-Mapped Files
Silberschatz, Galvin and Gagne ©200210.14
Copy-on-Write
Copy-on-Write (COW) allows both parent and child
processes to initially share the same pages in memory.
If 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.
Silberschatz, Galvin and Gagne ©200210.15
Memory-Mapped Files
Memory-mapped file I/O allows file I/O to be treated as routine
memory access by mapping a disk block to a page in memory.
A file is initially read using demand paging. A page-sized portion
of the file is read from the file system into a physical page.
Subsequent reads/writes to/from the file are treated as ordinary
memory accesses.
Simplifies file access by treating file I/O through memory rather
than read() write() system calls.
Also allows several processes to map the same file allowing the
pages in memory to be shared.
Silberschatz, Galvin and Gagne ©200210.16
Memory Mapped Files
Silberschatz, Galvin and Gagne ©200210.17
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.
Silberschatz, Galvin and Gagne ©200210.18
Need For Page Replacement
Silberschatz, Galvin and Gagne ©200210.19
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.
Silberschatz, Galvin and Gagne ©200210.20
Page Replacement
Silberschatz, Galvin and Gagne ©200210.21
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.
Silberschatz, Galvin and Gagne ©200210.22
Graph of Page Faults Versus The Number of
Frames
Silberschatz, Galvin and Gagne ©200210.23
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
FIFO Replacement – Belady’s Anomaly
more frames ⇒ less page faults
1
2
3
1
2
3
4
1
2
5
3
4
9 page faults
1
2
3
1
2
3
5
1
2
4
5 10 page faults
44 3
Silberschatz, Galvin and Gagne ©200210.24
FIFO Page Replacement
Silberschatz, Galvin and Gagne ©200210.25
FIFO Illustrating Belady’s Anamoly
Silberschatz, Galvin and Gagne ©200210.26
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
2
3
4
6 page faults
4 5
Silberschatz, Galvin and Gagne ©200210.27
Optimal Page Replacement
Silberschatz, Galvin and Gagne ©200210.28
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.
1
2
3
5
4
4 3
5
Silberschatz, Galvin and Gagne ©200210.29
LRU Page Replacement
Silberschatz, Galvin and Gagne ©200210.30
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
Silberschatz, Galvin and Gagne ©200210.31
Use Of A Stack to Record The Most Recent Page
References
Silberschatz, Galvin and Gagne ©200210.32
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.
Silberschatz, Galvin and Gagne ©200210.33
Second-Chance (clock) Page-Replacement
Algorithm
Silberschatz, Galvin and Gagne ©200210.34
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.
Silberschatz, Galvin and Gagne ©200210.35
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
Silberschatz, Galvin and Gagne ©200210.36
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.
m
S
s
pa
m
sS
ps
i
ii
i
ii
×==
=
∑=
=
forallocation
framesofnumbertotal
processofsize
5964
137
127
564
137
10
127
10
64
2
1
2
≈×=
≈×=
=
=
=
a
a
s
s
m
i
Silberschatz, Galvin and Gagne ©200210.37
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.
Silberschatz, Galvin and Gagne ©200210.38
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.
Silberschatz, Galvin and Gagne ©200210.39
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.
Silberschatz, Galvin and Gagne ©200210.40
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
Silberschatz, Galvin and Gagne ©200210.41
Locality In A Memory-Reference Pattern
Silberschatz, Galvin and Gagne ©200210.42
Working-Set Model
∆ ≡ working-set window ≡ a fixed number of page
references
Example: 10,000 instruction
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 > m ⇒ Thrashing
Policy if D > m, then suspend one of the processes.
Silberschatz, Galvin and Gagne ©200210.43
Working-set model
Silberschatz, Galvin and Gagne ©200210.44
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.
Silberschatz, Galvin and Gagne ©200210.45
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.
Silberschatz, Galvin and Gagne ©200210.46
Other Considerations
Prepaging
Page size selection
fragmentation
table size
I/O overhead
locality
Silberschatz, Galvin and Gagne ©200210.47
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.
Silberschatz, Galvin and Gagne ©200210.48
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.
Silberschatz, Galvin and Gagne ©200210.49
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
Silberschatz, Galvin and Gagne ©200210.50
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.
Silberschatz, Galvin and Gagne ©200210.51
Reason Why Frames Used For I/O Must Be In
Memory
Silberschatz, Galvin and Gagne ©200210.52
Operating System Examples
Windows NT
Solaris 2
Silberschatz, Galvin and Gagne ©200210.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.
Silberschatz, Galvin and Gagne ©200210.54
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.
Silberschatz, Galvin and Gagne ©200210.55
Solar Page Scanner

More Related Content

PPT
Chapter 9 - Virtual Memory
PPTX
File system structure
PPT
Query processing-and-optimization
PDF
Virtual memory
PPT
File Allocation Methods.ppt
PPT
File organization 1
PPTX
Page replacement algorithms
PPTX
Memory management ppt
Chapter 9 - Virtual Memory
File system structure
Query processing-and-optimization
Virtual memory
File Allocation Methods.ppt
File organization 1
Page replacement algorithms
Memory management ppt

What's hot (20)

PPTX
12. oracle database architecture
PPT
Ch2: Computer System Structure (OS)
PPTX
Demand paging
PPT
Disk scheduling algorithms
PPT
File access methods.54
PPTX
Presentation on Segmentation
PDF
Operating systems system structures
PPTX
File concept and access method
PPTX
Operations on Processes and Cooperating processes
PPT
Memory Management in OS
PPTX
contiguous memory allocation.pptx
PPTX
Master page in Asp.net
PPT
File organisation
PPTX
Database , 12 Reliability
PPTX
Oracle Tablespace - Basic
PPT
Disk scheduling
PPTX
database recovery techniques
PDF
Memory management
PPT
FILE STRUCTURE IN DBMS
PPTX
Database replication
12. oracle database architecture
Ch2: Computer System Structure (OS)
Demand paging
Disk scheduling algorithms
File access methods.54
Presentation on Segmentation
Operating systems system structures
File concept and access method
Operations on Processes and Cooperating processes
Memory Management in OS
contiguous memory allocation.pptx
Master page in Asp.net
File organisation
Database , 12 Reliability
Oracle Tablespace - Basic
Disk scheduling
database recovery techniques
Memory management
FILE STRUCTURE IN DBMS
Database replication
Ad

Viewers also liked (20)

DOCX
virtual memory
PPT
PPT
Os8
PPTX
Virtual Memory (Making a Process)
PDF
Virtual Memory
PPTX
Virtual memory
PPTX
basics of virtual memory
PPTX
Virtual Memory
PDF
Virtual memory
PPTX
Virtual memory
PPT
39 virtual memory
PPT
Virtual memory
PPT
virtual memory
PDF
Operating Systems - Virtual Memory
PPTX
Virtual memory managment
DOC
Virtual Memory vs Cache Memory
PPTX
Operating System (Scheduling, Input and Output Management, Memory Management,...
PDF
Virtual Memory and Paging
PPTX
VIRTUAL MEMORY
virtual memory
Os8
Virtual Memory (Making a Process)
Virtual Memory
Virtual memory
basics of virtual memory
Virtual Memory
Virtual memory
Virtual memory
39 virtual memory
Virtual memory
virtual memory
Operating Systems - Virtual Memory
Virtual memory managment
Virtual Memory vs Cache Memory
Operating System (Scheduling, Input and Output Management, Memory Management,...
Virtual Memory and Paging
VIRTUAL MEMORY
Ad

Similar to Ch10: Virtual Memory (20)

PPT
Galvin-operating System(Ch10)
PPT
virtual memory concepts in operating systems
PPT
page replacement algorithm powerpoint presentation
PPT
viruhuawdalsijdiajwlidjalisjdlaijdliajwldi.ppt
PPT
PPT
Virtual memory
PPT
9.Virtual Memory
PPT
Ch9 Virtual Memory
PPT
unit 4 virtual memory.ppt
PPT
운영체제론 Ch10
PPT
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
PPT
ch9 Virtual Memory Manipal UNiversitgy Jaipurt
PPT
Ch8 of OS
PPT
Chap09_Virtual Memory File_System_Fundamentals savitchAbsJavaPPT Java Program...
PPTX
Chapter 10 Operating Systems silberschatz
PPT
ch9 memory Management and virtual memory.ppt
PPT
Operating system virtual memory by silberscatz
PPT
ch9VirtualMemory in the operating system.ppt
Galvin-operating System(Ch10)
virtual memory concepts in operating systems
page replacement algorithm powerpoint presentation
viruhuawdalsijdiajwlidjalisjdlaijdliajwldi.ppt
Virtual memory
9.Virtual Memory
Ch9 Virtual Memory
unit 4 virtual memory.ppt
운영체제론 Ch10
LecturePPT_Unit_3b_AY2021-22_TechngVrsn.ppt
ch9 Virtual Memory Manipal UNiversitgy Jaipurt
Ch8 of OS
Chap09_Virtual Memory File_System_Fundamentals savitchAbsJavaPPT Java Program...
Chapter 10 Operating Systems silberschatz
ch9 memory Management and virtual memory.ppt
Operating system virtual memory by silberscatz
ch9VirtualMemory in the operating system.ppt

More from Ahmar Hashmi (20)

PPT
32 Security in_Internet_IP_SEC_SSL/TLS_PGN_VPN_and_Firewalls
PPT
31 Network Security
PPT
30 Cryptography
PPT
29 Multimedia
PPT
28 Network Management_SNMP
PPT
27 WWW and_HTTP
PPT
26 Remote Logging_Electronic_Mail_and_File_Transfer
PPT
25 DNS
PPT
24 Congestion Control_and_Quality_of_Service
PPT
23 Process to_Process_Delivery_UDP_TCP_and_SCTP
PPT
22 Network Layer_Delivery_forwarding_and_Routing
PPT
21 Network Layer_Address_Mapping_Error_Reporting_and_Multicasting
PPT
20 Network Layer_Internet_Protocol
PPT
19 Network Layer_Logical_Addressing
PPT
18 Virtual Circuit_Networks_Frame_Relay_and_ATM
PPT
17 SONET/SDH
PPT
16 Wireless WANs_Cellular_Telephone_and_Satellite_Networks
PPT
15 Connecting LANs_Backbone_Networks_and_Virtual_LAN
PPT
14 Wireless LAN
PPT
13 Wired Lans_Ethernet
32 Security in_Internet_IP_SEC_SSL/TLS_PGN_VPN_and_Firewalls
31 Network Security
30 Cryptography
29 Multimedia
28 Network Management_SNMP
27 WWW and_HTTP
26 Remote Logging_Electronic_Mail_and_File_Transfer
25 DNS
24 Congestion Control_and_Quality_of_Service
23 Process to_Process_Delivery_UDP_TCP_and_SCTP
22 Network Layer_Delivery_forwarding_and_Routing
21 Network Layer_Address_Mapping_Error_Reporting_and_Multicasting
20 Network Layer_Internet_Protocol
19 Network Layer_Logical_Addressing
18 Virtual Circuit_Networks_Frame_Relay_and_ATM
17 SONET/SDH
16 Wireless WANs_Cellular_Telephone_and_Satellite_Networks
15 Connecting LANs_Backbone_Networks_and_Virtual_LAN
14 Wireless LAN
13 Wired Lans_Ethernet

Recently uploaded (20)

PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Insiders guide to clinical Medicine.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Final Presentation General Medicine 03-08-2024.pptx
Microbial diseases, their pathogenesis and prophylaxis
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
2.FourierTransform-ShortQuestionswithAnswers.pdf
Basic Mud Logging Guide for educational purpose
Renaissance Architecture: A Journey from Faith to Humanism
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Week 4 Term 3 Study Techniques revisited.pptx
PPH.pptx obstetrics and gynecology in nursing
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
01-Introduction-to-Information-Management.pdf
Pharma ospi slides which help in ospi learning
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Insiders guide to clinical Medicine.pdf
O7-L3 Supply Chain Operations - ICLT Program
Module 4: Burden of Disease Tutorial Slides S2 2025
Supply Chain Operations Speaking Notes -ICLT Program
102 student loan defaulters named and shamed – Is someone you know on the list?
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES

Ch10: Virtual Memory

  • 1. Silberschatz, Galvin and Gagne ©200210.1 Chapter 10: Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples
  • 2. Silberschatz, Galvin and Gagne ©200210.2 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
  • 3. Silberschatz, Galvin and Gagne ©200210.3 Virtual Memory That is Larger Than Physical Memory
  • 4. Silberschatz, Galvin and Gagne ©200210.4 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
  • 5. Silberschatz, Galvin and Gagne ©200210.5 Transfer of a Paged Memory to Contiguous Disk Space
  • 6. Silberschatz, Galvin and Gagne ©200210.6 Valid-Invalid Bit With each page table entry a valid–invalid bit is associated (1 ⇒ in-memory, 0 ⇒ not-in-memory) Initially valid–invalid but is set to 0 on all entries. Example of a page table snapshot. During address translation, if valid–invalid bit in page table entry is 0 ⇒ page fault. 1 1 1 1 0 0 0  Frame # valid-invalid bit page table
  • 7. Silberschatz, Galvin and Gagne ©200210.7 Page Table When Some Pages Are Not in Main Memory
  • 8. Silberschatz, Galvin and Gagne ©200210.8 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
  • 9. Silberschatz, Galvin and Gagne ©200210.9 Steps in Handling a Page Fault
  • 10. Silberschatz, Galvin and Gagne ©200210.10 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.
  • 11. Silberschatz, Galvin and Gagne ©200210.11 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)
  • 12. Silberschatz, Galvin and Gagne ©200210.12 Demand Paging Example Memory access time = 1 microsecond 50% of the time the page that is being replaced has been modified and therefore needs to be swapped out. Swap Page Time = 10 msec = 10,000 msec EAT = (1 – p) x 1 + p (15000) 1 + 15000P (in msec)
  • 13. Silberschatz, Galvin and Gagne ©200210.13 Process Creation Virtual memory allows other benefits during process creation: - Copy-on-Write - Memory-Mapped Files
  • 14. Silberschatz, Galvin and Gagne ©200210.14 Copy-on-Write Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory. If 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.
  • 15. Silberschatz, Galvin and Gagne ©200210.15 Memory-Mapped Files Memory-mapped file I/O allows file I/O to be treated as routine memory access by mapping a disk block to a page in memory. A file is initially read using demand paging. A page-sized portion of the file is read from the file system into a physical page. Subsequent reads/writes to/from the file are treated as ordinary memory accesses. Simplifies file access by treating file I/O through memory rather than read() write() system calls. Also allows several processes to map the same file allowing the pages in memory to be shared.
  • 16. Silberschatz, Galvin and Gagne ©200210.16 Memory Mapped Files
  • 17. Silberschatz, Galvin and Gagne ©200210.17 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.
  • 18. Silberschatz, Galvin and Gagne ©200210.18 Need For Page Replacement
  • 19. Silberschatz, Galvin and Gagne ©200210.19 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.
  • 20. Silberschatz, Galvin and Gagne ©200210.20 Page Replacement
  • 21. Silberschatz, Galvin and Gagne ©200210.21 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.
  • 22. Silberschatz, Galvin and Gagne ©200210.22 Graph of Page Faults Versus The Number of Frames
  • 23. Silberschatz, Galvin and Gagne ©200210.23 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 FIFO Replacement – Belady’s Anomaly more frames ⇒ less page faults 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 44 3
  • 24. Silberschatz, Galvin and Gagne ©200210.24 FIFO Page Replacement
  • 25. Silberschatz, Galvin and Gagne ©200210.25 FIFO Illustrating Belady’s Anamoly
  • 26. Silberschatz, Galvin and Gagne ©200210.26 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 2 3 4 6 page faults 4 5
  • 27. Silberschatz, Galvin and Gagne ©200210.27 Optimal Page Replacement
  • 28. Silberschatz, Galvin and Gagne ©200210.28 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. 1 2 3 5 4 4 3 5
  • 29. Silberschatz, Galvin and Gagne ©200210.29 LRU Page Replacement
  • 30. Silberschatz, Galvin and Gagne ©200210.30 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
  • 31. Silberschatz, Galvin and Gagne ©200210.31 Use Of A Stack to Record The Most Recent Page References
  • 32. Silberschatz, Galvin and Gagne ©200210.32 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.
  • 33. Silberschatz, Galvin and Gagne ©200210.33 Second-Chance (clock) Page-Replacement Algorithm
  • 34. Silberschatz, Galvin and Gagne ©200210.34 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.
  • 35. Silberschatz, Galvin and Gagne ©200210.35 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
  • 36. Silberschatz, Galvin and Gagne ©200210.36 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. m S s pa m sS ps i ii i ii ×== = ∑= = forallocation framesofnumbertotal processofsize 5964 137 127 564 137 10 127 10 64 2 1 2 ≈×= ≈×= = = = a a s s m i
  • 37. Silberschatz, Galvin and Gagne ©200210.37 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.
  • 38. Silberschatz, Galvin and Gagne ©200210.38 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.
  • 39. Silberschatz, Galvin and Gagne ©200210.39 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.
  • 40. Silberschatz, Galvin and Gagne ©200210.40 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
  • 41. Silberschatz, Galvin and Gagne ©200210.41 Locality In A Memory-Reference Pattern
  • 42. Silberschatz, Galvin and Gagne ©200210.42 Working-Set Model ∆ ≡ working-set window ≡ a fixed number of page references Example: 10,000 instruction 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 > m ⇒ Thrashing Policy if D > m, then suspend one of the processes.
  • 43. Silberschatz, Galvin and Gagne ©200210.43 Working-set model
  • 44. Silberschatz, Galvin and Gagne ©200210.44 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.
  • 45. Silberschatz, Galvin and Gagne ©200210.45 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.
  • 46. Silberschatz, Galvin and Gagne ©200210.46 Other Considerations Prepaging Page size selection fragmentation table size I/O overhead locality
  • 47. Silberschatz, Galvin and Gagne ©200210.47 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.
  • 48. Silberschatz, Galvin and Gagne ©200210.48 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.
  • 49. Silberschatz, Galvin and Gagne ©200210.49 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
  • 50. Silberschatz, Galvin and Gagne ©200210.50 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.
  • 51. Silberschatz, Galvin and Gagne ©200210.51 Reason Why Frames Used For I/O Must Be In Memory
  • 52. Silberschatz, Galvin and Gagne ©200210.52 Operating System Examples Windows NT Solaris 2
  • 53. Silberschatz, Galvin and Gagne ©200210.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.
  • 54. Silberschatz, Galvin and Gagne ©200210.54 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.
  • 55. Silberschatz, Galvin and Gagne ©200210.55 Solar Page Scanner