SlideShare a Scribd company logo
Virtual Memory
Chapter 8
Process (broken: Some portion in memory,
Non- contagious location)
Pages (invisible to programmer)
Segmentation
Like Dynamic Partitioning
Suffers External Fragmentation
Visible to programmer
Growing Data Structure Handled
Modularity
Sharing and Protection Support
etc.
Characteristics of
Paging and Segmentation
Memory references are dynamically
translated into physical addresses at run time
a process may be swapped in and out of main
memory such that it occupies different regions
A process may be broken up into pieces that
do not need to located contiguously in
main memory
All pieces of a process do not need to be loaded
in main memory during execution
Execution of a Program
Operating system brings into main
memory a few pieces of the program
Resident set - portion of process that is
in main memory
An interrupt is generated when an
address is needed that is not in main
memory
Operating system places the process in
a blocking state
Execution of a Program
Piece of process that contains the logical
address is brought into main memory
operating system issues a disk I/O Read
request
another process is dispatched to run while
the disk I/O takes place
an interrupt is issued when disk I/O
complete which causes the operating system
to place the affected process in the Ready
state
Advantages of
Breaking up Process
More processes may be maintained in
main memory
only load in some of the pieces of each
process
With so many processes in main memory,
it is very likely a process will be in the
Ready state at any particular time
It is possible for a process to be larger
than all the main memory
Advantages of
Breaking up Processes
Programmer is dealing with memory the
size of the hard disk
It would be wasteful to load in many
pieces of the process when only a few
pieces will be used
Time can be saved because unused pieces
are not swapped in and out of memory
Types of Memory
Real memory
main memory
Virtual memory
memory on disk
Thrashing
Swapping out a piece of a process just
before that piece is needed
The processor spends most of its time
swapping pieces rather than executing
user instructions
Principle of Locality
Program and data references within a
process tend to cluster
Only a few pieces of a process will be
needed over a short period of time
Possible to make intelligent guesses about
which pieces will be needed in the future
This suggests that virtual memory may
work efficiently
Support Needed for
Virtual Memory
Hardware must support paging and
segmentation
Operating system must be able to
management the movement of pages
and/or segments between secondary
memory and main memory
Paging
Each process has its own page table
Each page table entry contains the frame
number of the corresponding page in
main memory
A bit is needed to indicate whether the
page is in main memory or not
Modify Bit in
Page Table
A bit is needed to indicate if the page has
been altered since it was last loaded into
main memory
If no change has been made, the page
does not have to be written to the disk
when it needs to be swapped out
Paging
Virtual Address
Page Table Entry
Page Number Offset
P M Frame Number
Other Control Bits
Address Translation in a
Paging System
Program Paging Main Memory
Virtual Address
Register
Page Table
Page
Frame
Offset
P#
Frame #
Page Table Ptr
Page # Offset Frame # Offset
+
Page Tables
The entire page table may take up too
much main memory
Page tables are also stored in virtual
memory
When a process is running, part of its
page table is in main memory
Translation Lookaside
Buffer
Each virtual memory reference can cause
two physical memory accesses
one to fetch the page table
one to fetch the data
To overcome this problem a special cache
is set up for page table entries
called the TLB - Translation Lookaside Buffer
Translation Lookaside
Buffer
Contains page table entries that have
been most recently used
Works similar to main memory cache
Translation Lookaside
Buffer
Given a virtual address, processor
examines the TLB
If page table entry is present (a hit), the
frame number is retrieved and the real
address is formed
If page table entry is not found in the TLB
(a miss), the page number is used to
index the process page table
Translation Lookaside
Buffer
First checks if page is already in main
memory
if not in main memory a page fault is issued
The TLB is updated to include the new
page entry
Use of a Translation
Lookaside Buffer
Virtual Address
Translation
Lookaside Buffer
Page Table
TLB miss
Page fault
Real Address
TLB hit
Offset
Main Memory
Secondary
Memory
Load
page
Page # Offset
Frame # Offset
START
CPU checks
the TLB
Page
table entry in
TLB?
Access page
table
Page in main
memory?
Update TLB
CPU generates
Physical
Address
Yes
No
Yes
Page fault
handling routing
No
Operation of TLB
Page Fault
Handling Routine
OS instructs
CPU to read the
page from disk
CPU activates
I/O Hardware
Memory
full?
Perform
Page
Replacement
Page transferred
from disk to
main memory
Page tables
updated
Yes
No
Page Size
Smaller page size, less amount of internal
fragmentation
Smaller page size, more pages required per
process
More pages per process means larger page
tables
Larger page tables means large portion of page
tables in virtual memory
Secondary memory is designed to efficiently
transfer large blocks of data so a large page size
is better
Page Size
Small page size, large number of pages
will be found in main memory
As time goes on during execution, the pages
in memory will all contain portions of the
process near recent references. Page faults
low.
Increased page size causes pages to
contain locations further from any recent
reference. Page faults rise.
Page Size (Multiple)
Multiple page sizes provide the flexibility
needed to effectively use a TLB
Large pages can be used for program
instructions
Small pages can be used for threads
Segmentation
May be dynamic
Simplifies handling of growing data
structures
Allows programs to be altered and
recompiled independently
Used for sharing data among processes
Lends itself to protection
Segment Tables
Each entry contains the starting address
of the corresponding segment in main
memory
Each entry contains the length of the
segment
A bit is needed to determine if segment is
already in main memory
A bit is needed to determine if the
segment has been modified since it was
loaded in main memory
Segmentation
Virtual Address
Segment Table Entry
Segment Number Offset
P M Other Control Bits Length Segment Base
Address Translation in a
Segmentation System
Base + d
Program Segmentation Main Memory
Virtual Address
Register
Segment Table
Segment
d
S#
Length Base
Seg Table Ptr
Seg # Offset = d
Segment Table
+
+
Segmentation Ex.
Page Size: 100 B, Total 3 Segments.
Segment:0, 257 Segment:1, 225 Segment:2, 350
Combined Paging and
Segmentation
Paging is transparent to the programmer
Paging eliminates external fragmentation
Segmentation is visible to the
programmer
Segmentation allows for growing data
structures, modularity, and support for
sharing and protection
Each segment is broken into fixed-size
pages
Combined Segmentation
and Paging
Virtual Address/Logical Address
Segment Table Entry
Page Entry Table
Segment Number Page Number Offset
Other Control Bits Length Segment Base
P M Other Control Bits Frame Number
Segment Number Offset
Relative Address
Address Translation in
Segmentation/Paging System
Main Memory
Page
Frame
Offset
Paging
Page Table
P#
+
Frame # Offset
Seg Table Ptr
+
S #
Segmentation
Program
Segment
Table
Seg # Page # Offset
Chap8 Virtual Memory. 1997-2003.ppt
Covert Relative to Virtual Add &
Validate Ex.
Protection
Ring 0 contains kernel functions of the
operating system
A program may access only data that
resides on the same ring, or a less
privileged ring
A program may call services residing on
the same, or a more privileged ring
Ring Protection Control Transfer
Between Programs
Ring 0
Ring 1
Ring 2
Call Return
Call
Return
Jump
Ring Protection
Data Access
Ring 0
Ring 1
Ring 2
Data
access
Data
access
Operating System Policies
for Virtual Memory
Fetch Policy
determines when a page should be brought
into memory
demand paging only brings pages into main
memory when a reference is made to a
location on the page
many page faults when process first started
prepaging brings in more pages than needed
more efficient to bring in pages that reside
contiguously on the disk
Chap8 Virtual Memory. 1997-2003.ppt
Chap8 Virtual Memory. 1997-2003.ppt
Operating System Policies
for Virtual Memory
Placement Policy
determines where in real memory a process
piece resides
usually irrelevant because hardware
determines the real address
Operating System Policies
for Virtual Memory
Replacement Policy
deals with the selection of a page in memory
to be replaced when a new page is brought in
frame locking used for frames that cannot be
replaced
used for the kernel and key control structures of
the operating system
key control structures
I/O buffers
Operating System Policies
for Virtual Memory
Replacement Policy
Optimal policy selects for replacement that
page for which the time to the next reference
is the longest
impossible to have perfect knowledge of future
events
Operating System Policies
for Virtual Memory
Replacement Policy - Least Recently Used
(LRU)
Replaces the page that has not been
referenced for the longest time
By the principle of locality, this should be the
page least likely to be referenced in the near
future
Each page could be tagged with the time of
last reference. This would require a great
deal of overhead.
Operating System Policies for
Virtual Memory
Replacement Policy
First-in, first-out (FIFO) treats page frames
allocated to a process as a circular buffer
Pages are removed in round-robin style
Simplest replacement policy to implement
Page that has been in memory the longest is
replaced
These pages may be needed again very soon
Operating System Policies
for Virtual Memory
Replacement Policy - Clock Policy
Additional bit called a use bit
When a page is first loaded in memory, the
use bit is set to 0
When the page is referenced, the use bit is
set to 1
When it is time to replace a page, the first
frame encountered with the use bit set to 0
is replaced.
During the search for replacement, each use
bit set to 1 is changed to 0
Clock Policy
State of buffer just prior to a
page replacement
0
1
2
3
4
5
6
7
8
n
.
.
.
Page 9
use = 1
Page 19
use = 1
Page 1
use = 0
Page 45
use = 1
Page 191
use = 1
Page 556
use = 0
Page 13
use = 0
Page 67
use = 1
Page 33
use = 1
Page 222
use = 0
next frame
pointer
Clock Policy
State of buffer just after
the next page replacement
0
1
2
3
4
5
6
7
8
n
.
.
.
Page 9
use = 1
Page 19
use = 1
Page 1
use = 0
Page 45
use = 0
Page 191
use = 0
Page 727
use = 1
Page 13
use = 0
Page 67
use = 1
Page 33
use = 1
Page 222
use = 0
Page Buffering
Replaced page is added to one of two lists
free page list if page has not been modified
modified page list
Resident Set Size
Fixed-allocation
gives a process a fixed number of pages
within which to execute
when a page fault occurs, one of the pages
of that process must be replaced
Variable-allocation
number of pages allocated to a process
varies over the lifetime of the process
Cleaning Policy
Demand cleaning
a page is written out only when it has been
selected for replacement
Precleaning
pages are written out in batches
Cleaning Policy
Best approach uses page buffering
replaced pages are placed in two lists
modified and unmodified
Pages in the modified list are periodically
written out in batches
Pages in the unmodified list are either
reclaimed if referenced again or lost when its
frame is assigned to another page
Load Control
Determines the number of processes that
will be resident in main memory
Too few processes, many occasions when
all processes will be blocked and
processor will be idle
Too many processes will lead to thrashing
Process Suspension
Lowest priority process
Faulting process
this process does not have its working set
in main memory so it will be blocked
anyway
Last process activated
this process is least likely to have its
working set resident
Process Suspension
Process with smallest resident set
this process requires the least future effort to
reload
Largest process
obtains the most free frames
Process with the largest remaining
execution window
UNIX and Solaris Memory
Management
Paging system for processes
Kernel memory allocator for memory
allocation for the kernel
UNIX and Solaris Memory
Management
Data Structures
Page table - one per process
Disk block descriptor - describes the disk
copy of the virtual page
Page frame data table - describes each frame
of real memory
Swap-use table - one for each swap device
UNIX and Solaris Memory
Management
Page Replacement
refinement of the clock policy known as the
two-handed clock algorithm
Kernel Memory Allocator
most blocks are smaller than a typical page
size
Windows NT Memory
Management
All process share the same 2 Gbyte of
system space
Pages
available
reserved for a process but does not count
against the process’s memory quota
committed

More Related Content

PPT
Chapter 8 - Virtual memory - William stallings.ppt
PPT
memory management and Virtual Memory.ppt
PPT
Cache replacement policies,cache miss,writingtechniques
PPTX
coafinal1-copy-150430204758-conversion-gate01.pptx
PPTX
Computer architecture virtual memory
PPTX
Os unit 2
PPT
virtual memory operating system notes.ppt
PPT
Virtual memory This is the operating system ppt.ppt
Chapter 8 - Virtual memory - William stallings.ppt
memory management and Virtual Memory.ppt
Cache replacement policies,cache miss,writingtechniques
coafinal1-copy-150430204758-conversion-gate01.pptx
Computer architecture virtual memory
Os unit 2
virtual memory operating system notes.ppt
Virtual memory This is the operating system ppt.ppt

Similar to Chap8 Virtual Memory. 1997-2003.ppt (20)

PPTX
Paging +Algorithem+Segmentation+memory management
PPT
08 Operating System Support
PPT
understanding-operating-systems-Banu.ppt
PPT
08 virtual memory
PPT
unit-4 class (2).ppt,Memory managements part-1
DOCX
virtual memory
PPT
Cs416 08 09a
PPT
Memory management ppt coa
PDF
CSI-503 - 8.Paging and Segmentation
PDF
CH09.pdf
PPT
Memory comp
PPT
Mca ii os u-4 memory management
PPT
PPT
Ch10 OS
 
PPTX
Unit 5Memory management.pptx
PPTX
Virtual Memory Managementddddddddffffffffffffff.pptx
PPT
Understanding operating systems 5th ed ch03
PPTX
Paging and segmentation
Paging +Algorithem+Segmentation+memory management
08 Operating System Support
understanding-operating-systems-Banu.ppt
08 virtual memory
unit-4 class (2).ppt,Memory managements part-1
virtual memory
Cs416 08 09a
Memory management ppt coa
CSI-503 - 8.Paging and Segmentation
CH09.pdf
Memory comp
Mca ii os u-4 memory management
Ch10 OS
 
Unit 5Memory management.pptx
Virtual Memory Managementddddddddffffffffffffff.pptx
Understanding operating systems 5th ed ch03
Paging and segmentation
Ad

Recently uploaded (20)

PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
01-Introduction-to-Information-Management.pdf
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
Basic Mud Logging Guide for educational purpose
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Pharma ospi slides which help in ospi learning
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Classroom Observation Tools for Teachers
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Lesson notes of climatology university.
O5-L3 Freight Transport Ops (International) V1.pdf
01-Introduction-to-Information-Management.pdf
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Complications of Minimal Access Surgery at WLH
Basic Mud Logging Guide for educational purpose
Microbial disease of the cardiovascular and lymphatic systems
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
VCE English Exam - Section C Student Revision Booklet
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pharma ospi slides which help in ospi learning
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Insiders guide to clinical Medicine.pdf
Renaissance Architecture: A Journey from Faith to Humanism
GDM (1) (1).pptx small presentation for students
Classroom Observation Tools for Teachers
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Microbial diseases, their pathogenesis and prophylaxis
Lesson notes of climatology university.
Ad

Chap8 Virtual Memory. 1997-2003.ppt

  • 2. Process (broken: Some portion in memory, Non- contagious location) Pages (invisible to programmer) Segmentation Like Dynamic Partitioning Suffers External Fragmentation Visible to programmer Growing Data Structure Handled Modularity Sharing and Protection Support etc.
  • 3. Characteristics of Paging and Segmentation Memory references are dynamically translated into physical addresses at run time a process may be swapped in and out of main memory such that it occupies different regions A process may be broken up into pieces that do not need to located contiguously in main memory All pieces of a process do not need to be loaded in main memory during execution
  • 4. Execution of a Program Operating system brings into main memory a few pieces of the program Resident set - portion of process that is in main memory An interrupt is generated when an address is needed that is not in main memory Operating system places the process in a blocking state
  • 5. Execution of a Program Piece of process that contains the logical address is brought into main memory operating system issues a disk I/O Read request another process is dispatched to run while the disk I/O takes place an interrupt is issued when disk I/O complete which causes the operating system to place the affected process in the Ready state
  • 6. Advantages of Breaking up Process More processes may be maintained in main memory only load in some of the pieces of each process With so many processes in main memory, it is very likely a process will be in the Ready state at any particular time It is possible for a process to be larger than all the main memory
  • 7. Advantages of Breaking up Processes Programmer is dealing with memory the size of the hard disk It would be wasteful to load in many pieces of the process when only a few pieces will be used Time can be saved because unused pieces are not swapped in and out of memory
  • 8. Types of Memory Real memory main memory Virtual memory memory on disk
  • 9. Thrashing Swapping out a piece of a process just before that piece is needed The processor spends most of its time swapping pieces rather than executing user instructions
  • 10. Principle of Locality Program and data references within a process tend to cluster Only a few pieces of a process will be needed over a short period of time Possible to make intelligent guesses about which pieces will be needed in the future This suggests that virtual memory may work efficiently
  • 11. Support Needed for Virtual Memory Hardware must support paging and segmentation Operating system must be able to management the movement of pages and/or segments between secondary memory and main memory
  • 12. Paging Each process has its own page table Each page table entry contains the frame number of the corresponding page in main memory A bit is needed to indicate whether the page is in main memory or not
  • 13. Modify Bit in Page Table A bit is needed to indicate if the page has been altered since it was last loaded into main memory If no change has been made, the page does not have to be written to the disk when it needs to be swapped out
  • 14. Paging Virtual Address Page Table Entry Page Number Offset P M Frame Number Other Control Bits
  • 15. Address Translation in a Paging System Program Paging Main Memory Virtual Address Register Page Table Page Frame Offset P# Frame # Page Table Ptr Page # Offset Frame # Offset +
  • 16. Page Tables The entire page table may take up too much main memory Page tables are also stored in virtual memory When a process is running, part of its page table is in main memory
  • 17. Translation Lookaside Buffer Each virtual memory reference can cause two physical memory accesses one to fetch the page table one to fetch the data To overcome this problem a special cache is set up for page table entries called the TLB - Translation Lookaside Buffer
  • 18. Translation Lookaside Buffer Contains page table entries that have been most recently used Works similar to main memory cache
  • 19. Translation Lookaside Buffer Given a virtual address, processor examines the TLB If page table entry is present (a hit), the frame number is retrieved and the real address is formed If page table entry is not found in the TLB (a miss), the page number is used to index the process page table
  • 20. Translation Lookaside Buffer First checks if page is already in main memory if not in main memory a page fault is issued The TLB is updated to include the new page entry
  • 21. Use of a Translation Lookaside Buffer Virtual Address Translation Lookaside Buffer Page Table TLB miss Page fault Real Address TLB hit Offset Main Memory Secondary Memory Load page Page # Offset Frame # Offset
  • 22. START CPU checks the TLB Page table entry in TLB? Access page table Page in main memory? Update TLB CPU generates Physical Address Yes No Yes Page fault handling routing No Operation of TLB
  • 23. Page Fault Handling Routine OS instructs CPU to read the page from disk CPU activates I/O Hardware Memory full? Perform Page Replacement Page transferred from disk to main memory Page tables updated Yes No
  • 24. Page Size Smaller page size, less amount of internal fragmentation Smaller page size, more pages required per process More pages per process means larger page tables Larger page tables means large portion of page tables in virtual memory Secondary memory is designed to efficiently transfer large blocks of data so a large page size is better
  • 25. Page Size Small page size, large number of pages will be found in main memory As time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low. Increased page size causes pages to contain locations further from any recent reference. Page faults rise.
  • 26. Page Size (Multiple) Multiple page sizes provide the flexibility needed to effectively use a TLB Large pages can be used for program instructions Small pages can be used for threads
  • 27. Segmentation May be dynamic Simplifies handling of growing data structures Allows programs to be altered and recompiled independently Used for sharing data among processes Lends itself to protection
  • 28. Segment Tables Each entry contains the starting address of the corresponding segment in main memory Each entry contains the length of the segment A bit is needed to determine if segment is already in main memory A bit is needed to determine if the segment has been modified since it was loaded in main memory
  • 29. Segmentation Virtual Address Segment Table Entry Segment Number Offset P M Other Control Bits Length Segment Base
  • 30. Address Translation in a Segmentation System Base + d Program Segmentation Main Memory Virtual Address Register Segment Table Segment d S# Length Base Seg Table Ptr Seg # Offset = d Segment Table + +
  • 31. Segmentation Ex. Page Size: 100 B, Total 3 Segments. Segment:0, 257 Segment:1, 225 Segment:2, 350
  • 32. Combined Paging and Segmentation Paging is transparent to the programmer Paging eliminates external fragmentation Segmentation is visible to the programmer Segmentation allows for growing data structures, modularity, and support for sharing and protection Each segment is broken into fixed-size pages
  • 33. Combined Segmentation and Paging Virtual Address/Logical Address Segment Table Entry Page Entry Table Segment Number Page Number Offset Other Control Bits Length Segment Base P M Other Control Bits Frame Number Segment Number Offset Relative Address
  • 34. Address Translation in Segmentation/Paging System Main Memory Page Frame Offset Paging Page Table P# + Frame # Offset Seg Table Ptr + S # Segmentation Program Segment Table Seg # Page # Offset
  • 36. Covert Relative to Virtual Add & Validate Ex.
  • 37. Protection Ring 0 contains kernel functions of the operating system A program may access only data that resides on the same ring, or a less privileged ring A program may call services residing on the same, or a more privileged ring
  • 38. Ring Protection Control Transfer Between Programs Ring 0 Ring 1 Ring 2 Call Return Call Return Jump
  • 39. Ring Protection Data Access Ring 0 Ring 1 Ring 2 Data access Data access
  • 40. Operating System Policies for Virtual Memory Fetch Policy determines when a page should be brought into memory demand paging only brings pages into main memory when a reference is made to a location on the page many page faults when process first started prepaging brings in more pages than needed more efficient to bring in pages that reside contiguously on the disk
  • 43. Operating System Policies for Virtual Memory Placement Policy determines where in real memory a process piece resides usually irrelevant because hardware determines the real address
  • 44. Operating System Policies for Virtual Memory Replacement Policy deals with the selection of a page in memory to be replaced when a new page is brought in frame locking used for frames that cannot be replaced used for the kernel and key control structures of the operating system key control structures I/O buffers
  • 45. Operating System Policies for Virtual Memory Replacement Policy Optimal policy selects for replacement that page for which the time to the next reference is the longest impossible to have perfect knowledge of future events
  • 46. Operating System Policies for Virtual Memory Replacement Policy - Least Recently Used (LRU) Replaces the page that has not been referenced for the longest time By the principle of locality, this should be the page least likely to be referenced in the near future Each page could be tagged with the time of last reference. This would require a great deal of overhead.
  • 47. Operating System Policies for Virtual Memory Replacement Policy First-in, first-out (FIFO) treats page frames allocated to a process as a circular buffer Pages are removed in round-robin style Simplest replacement policy to implement Page that has been in memory the longest is replaced These pages may be needed again very soon
  • 48. Operating System Policies for Virtual Memory Replacement Policy - Clock Policy Additional bit called a use bit When a page is first loaded in memory, the use bit is set to 0 When the page is referenced, the use bit is set to 1 When it is time to replace a page, the first frame encountered with the use bit set to 0 is replaced. During the search for replacement, each use bit set to 1 is changed to 0
  • 49. Clock Policy State of buffer just prior to a page replacement 0 1 2 3 4 5 6 7 8 n . . . Page 9 use = 1 Page 19 use = 1 Page 1 use = 0 Page 45 use = 1 Page 191 use = 1 Page 556 use = 0 Page 13 use = 0 Page 67 use = 1 Page 33 use = 1 Page 222 use = 0 next frame pointer
  • 50. Clock Policy State of buffer just after the next page replacement 0 1 2 3 4 5 6 7 8 n . . . Page 9 use = 1 Page 19 use = 1 Page 1 use = 0 Page 45 use = 0 Page 191 use = 0 Page 727 use = 1 Page 13 use = 0 Page 67 use = 1 Page 33 use = 1 Page 222 use = 0
  • 51. Page Buffering Replaced page is added to one of two lists free page list if page has not been modified modified page list
  • 52. Resident Set Size Fixed-allocation gives a process a fixed number of pages within which to execute when a page fault occurs, one of the pages of that process must be replaced Variable-allocation number of pages allocated to a process varies over the lifetime of the process
  • 53. Cleaning Policy Demand cleaning a page is written out only when it has been selected for replacement Precleaning pages are written out in batches
  • 54. Cleaning Policy Best approach uses page buffering replaced pages are placed in two lists modified and unmodified Pages in the modified list are periodically written out in batches Pages in the unmodified list are either reclaimed if referenced again or lost when its frame is assigned to another page
  • 55. Load Control Determines the number of processes that will be resident in main memory Too few processes, many occasions when all processes will be blocked and processor will be idle Too many processes will lead to thrashing
  • 56. Process Suspension Lowest priority process Faulting process this process does not have its working set in main memory so it will be blocked anyway Last process activated this process is least likely to have its working set resident
  • 57. Process Suspension Process with smallest resident set this process requires the least future effort to reload Largest process obtains the most free frames Process with the largest remaining execution window
  • 58. UNIX and Solaris Memory Management Paging system for processes Kernel memory allocator for memory allocation for the kernel
  • 59. UNIX and Solaris Memory Management Data Structures Page table - one per process Disk block descriptor - describes the disk copy of the virtual page Page frame data table - describes each frame of real memory Swap-use table - one for each swap device
  • 60. UNIX and Solaris Memory Management Page Replacement refinement of the clock policy known as the two-handed clock algorithm Kernel Memory Allocator most blocks are smaller than a typical page size
  • 61. Windows NT Memory Management All process share the same 2 Gbyte of system space Pages available reserved for a process but does not count against the process’s memory quota committed