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
Virtual memory Chapter 9 simple and easy
1415lv54
 
PPT
08 virtual memory
Kamal Singh
 
PPTX
Computer architecture virtual memory
Mazin Alwaaly
 
PPT
Chapter 8 - Virtual memory - William stallings.ppt
GMRavinduDulshan
 
PPT
virtual memory
surbhisinghal90
 
PPT
08 operating system support
Anwal Mirza
 
PPT
unit-4 class (2).ppt,Memory managements part-1
anchitaa1
 
PPT
memory management and Virtual Memory.ppt
ssuser09d6cd1
 
Virtual memory Chapter 9 simple and easy
1415lv54
 
08 virtual memory
Kamal Singh
 
Computer architecture virtual memory
Mazin Alwaaly
 
Chapter 8 - Virtual memory - William stallings.ppt
GMRavinduDulshan
 
virtual memory
surbhisinghal90
 
08 operating system support
Anwal Mirza
 
unit-4 class (2).ppt,Memory managements part-1
anchitaa1
 
memory management and Virtual Memory.ppt
ssuser09d6cd1
 

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

PPT
Cache replacement policies,cache miss,writingtechniques
subhasishdas79
 
PPTX
coafinal1-copy-150430204758-conversion-gate01.pptx
farantouqeer8
 
PPT
08 operating system support
Sher Shah Merkhel
 
PPT
Chapter08
sravanthibangaru31
 
PPTX
Paging +Algorithem+Segmentation+memory management
kazim Hussain
 
PDF
muja osjkkhkhkkhkkkfdxfdfddkhvjlbjljlhgg
mujahidHajishifa
 
PPT
Chapter 04
Google
 
PPTX
Abhaycavirtual memory and the pagehit.pptx
wemoji5816
 
PPTX
Virtual Memory
Archith777
 
PPT
08 Operating System Support
Jeanie Delos Arcos
 
PPT
Unit 5 Memory management System in OS.ppt
singharshpreet9460
 
PPTX
Memory Managment(OS).pptx
RohitPaul71
 
PPT
operating system
Mayank Saxena
 
PPT
Ch8
tech2click
 
PPT
08 operating system support
dilip kumar
 
PPT
08 operating system support
Bitta_man
 
PPT
Os8 2
issbp
 
PPT
Memory Management
Ramasubbu .P
 
PPTX
Memory Management
sangrampatil81
 
Cache replacement policies,cache miss,writingtechniques
subhasishdas79
 
coafinal1-copy-150430204758-conversion-gate01.pptx
farantouqeer8
 
08 operating system support
Sher Shah Merkhel
 
Paging +Algorithem+Segmentation+memory management
kazim Hussain
 
muja osjkkhkhkkhkkkfdxfdfddkhvjlbjljlhgg
mujahidHajishifa
 
Chapter 04
Google
 
Abhaycavirtual memory and the pagehit.pptx
wemoji5816
 
Virtual Memory
Archith777
 
08 Operating System Support
Jeanie Delos Arcos
 
Unit 5 Memory management System in OS.ppt
singharshpreet9460
 
Memory Managment(OS).pptx
RohitPaul71
 
operating system
Mayank Saxena
 
08 operating system support
dilip kumar
 
08 operating system support
Bitta_man
 
Os8 2
issbp
 
Memory Management
Ramasubbu .P
 
Memory Management
sangrampatil81
 
Ad

Recently uploaded (20)

PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PPTX
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
PDF
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PDF
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
PDF
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
PDF
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
PDF
Module 2: Public Health History [Tutorial Slides]
JonathanHallett4
 
PPTX
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
PPTX
CDH. pptx
AneetaSharma15
 
PPTX
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
PPTX
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PPTX
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
What is CFA?? Complete Guide to the Chartered Financial Analyst Program
sp4989653
 
Module 2: Public Health History [Tutorial Slides]
JonathanHallett4
 
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
CDH. pptx
AneetaSharma15
 
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
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