SlideShare a Scribd company logo
1 of 61
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
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
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

Similar to Chap8 Virtual Memory. 1997-2003.ppt

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

Cs416 08 09a
Cs416 08 09aCs416 08 09a
Cs416 08 09a
 
Memory management ppt coa
Memory management ppt coaMemory management ppt coa
Memory management ppt coa
 
CSI-503 - 8.Paging and Segmentation
CSI-503 - 8.Paging and SegmentationCSI-503 - 8.Paging and Segmentation
CSI-503 - 8.Paging and Segmentation
 
Memory management
Memory managementMemory management
Memory management
 
CH09.pdf
CH09.pdfCH09.pdf
CH09.pdf
 
Memory comp
Memory compMemory comp
Memory comp
 
Mca ii os u-4 memory management
Mca  ii  os u-4 memory managementMca  ii  os u-4 memory management
Mca ii os u-4 memory management
 
OSCh10
OSCh10OSCh10
OSCh10
 
Ch10 OS
Ch10 OSCh10 OS
Ch10 OS
 
OS_Ch10
OS_Ch10OS_Ch10
OS_Ch10
 
Unit 5Memory management.pptx
Unit 5Memory management.pptxUnit 5Memory management.pptx
Unit 5Memory management.pptx
 
Understanding operating systems 5th ed ch03
Understanding operating systems 5th ed ch03Understanding operating systems 5th ed ch03
Understanding operating systems 5th ed ch03
 
Paging and segmentation
Paging and segmentationPaging and segmentation
Paging and segmentation
 
operating system
operating systemoperating system
operating system
 
VIRTUAL MEMORY
VIRTUAL MEMORYVIRTUAL MEMORY
VIRTUAL MEMORY
 
Virtual Memory
Virtual MemoryVirtual Memory
Virtual Memory
 
Chapter 9 - Virtual Memory
Chapter 9 - Virtual MemoryChapter 9 - Virtual Memory
Chapter 9 - Virtual Memory
 
Main memory os - prashant odhavani- 160920107003
Main memory   os - prashant odhavani- 160920107003Main memory   os - prashant odhavani- 160920107003
Main memory os - prashant odhavani- 160920107003
 
Mem mgt
Mem mgtMem mgt
Mem mgt
 
virtual memory
virtual memoryvirtual memory
virtual memory
 

Recently uploaded

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 

Recently uploaded (20)

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 

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
  • 35.
  • 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
  • 41.
  • 42.
  • 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