virtual memory
virtual memory
g
Systems
: Chapter 8
Internals Virtual Memory
and Seventh Edition
Design William Stallings
Principle
s
Hardware and Control
Structures
Two characteristics fundamental to
memory management:
1) all memory references are logical addresses that
are dynamically translated into physical
addresses at run time
2) a process may be broken up into a number of
pieces that don’t need to be contiguously
located in main memory during execution
If these two characteristics are present, it
is not necessary that all of the pages or
segments of a process be in main memory
Terminology
Execution of a
Process
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
Continued . . .
Execution of a
Process
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 is complete,
which causes the operating system to place the
affected process in the Ready state
Implications
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
A process may be larger than all of main memory
(programmers do not care)
Real and Virtual
Memory
Real memory
• main memory, the actual RAM
Virtual memory
• memory on disk
• allows for effective multiprogramming and
relieves the user of tight constraints of main
memory
Thrashing
Contemporary
programming techniques most obvious on
personal
used in large programs tend
computers where
to decrease the locality of applications are
references within a process becoming
increasingly
complex
Segmentation
Advantages:
• simplifies
Segmentation handling of
allows the growing data
programmer to structures
view memory • allows programs
as consisting of to be altered
multiple and recompiled
independently
address spaces
• lends itself to
or segments
sharing data
among
processes
• lends itself to
protection
Segment
Organization
Each segment table entry contains the starting
address of the corresponding segment in main
memory and the length of the segment
A bit is needed to determine if the segment is already
in main memory
Another bit is needed to determine if the segment has
been modified since it was loaded in main memory
Address
Translation
Combined Paging and
Segmentation
In a combined
paging/segmentation
Segmentation is visible to
system a user’s address the programmer
space is broken up into a
number of segments.
Each segment is broken
up into a number of
Paging is transparent to
fixed-sized pages which the programmer
are equal in length to a
main memory frame
Address Translation
Protection and
Sharing
Segmentation lends itself to the implementation of
protection and sharing policies
Each entry has a base address and length so
inadvertent memory access can be controlled
Sharing can be achieved by segments referencing
multiple processes
Protection
Relationship
s
Operating System
Software
The design of the memory
management portion of an operating
system depends on three fundamental
areas of choice:
• whether or not to use virtual memory
techniques
• the use of paging or segmentation or both
• the algorithms employed for various
aspects of memory management
Policies for Virtual
Memory
Key issue: Performance
minimize page faults
Fetch Policy
Determines when
Two
a page should be
main
brought into
types:
memory
Demand Prepagin
Paging g
Demand Paging
Demand Paging
only brings pages into main memory when a
reference is made to a location on the page
many page faults when process is first started
principle of locality suggests that as more and more
pages are brought in, most future references will be
to pages that have recently been brought in, and
page faults should drop to a very low level
Prepaging
Prepaging
pages other than the one demanded by a page fault
are brought in
exploits the characteristics of most secondary
memory devices
if pages of a process are stored contiguously in
secondary memory it is more efficient to bring in a
number of pages at one time
ineffective if extra pages are not referenced
Placement Policy
Determines where in real memory a process piece is to
reside
Important design issue in a segmentation system
Paging or combined paging with segmentation placing
is irrelevant because hardware performs functions with
equal efficiency
For NUMA systems, an automatic placement
strategy is desirable to assign pages to the memory
module that provides the best performance
(nearest memory part to the processor)
Replacement Policy
Deals
with the selection of a page in main
memory to be replaced when a new page
must be brought in
objective is that the page that is removed be
the page least likely to be referenced in the
near future
Themore elaborate the replacement policy
the greater the hardware and software
overhead to implement it
Frame Locking
When a frame is locked the page currently stored in
that frame may not be replaced
kernel of the OS as well as key control structures
are held in locked frames
I/O buffers and time-critical areas may be locked
into main memory frames
locking is achieved by associating a lock bit with
each frame
Basic Algorithms
Algorithms used
for the selection
of a page to
replace:
• Optimal
• Least recently used
(LRU)
• First-in-first-out (FIFO)
• Clock
Optimal Policy
Selects the page for which the time to the
next reference is the longest
Produces three page faults after the frame
allocation has been filled
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
Difficult to implement
one approach is to tag each page with the time of
last reference
this requires a great deal of overhead
LRU Example
First-in-First-out
(FIFO)
Treats page frames allocated to a process as a circular
buffer
Pages are removed in round-robin style
simple replacement policy to implement
Page that has been in memory the longest is replaced
FIFO Example
Clock Policy
Requires the association of an additional bit with each
frame
referred to as the use bit
policy
list of page
frames pages are
available for written out in
reading in clusters
pages
Resident Set
Management
The OS must decide how many pages to bring into
main memory
the smaller the amount of memory allocated to each
process, the more processes can reside in memory
small number of pages loaded increases page faults
beyond a certain size, further allocations of pages
will not effect the page fault rate
Resident Set Size
Fixed- Variable-
allocation allocation
gives a process a fixed allows the number of
number of frames in page frames allocated
main memory within to a process to be
which to execute varied over the
lifetime of the process
when a page fault
occurs, one of the
pages of that process
must be replaced
Replacement Scope
The scope of a replacement strategy can be
categorized as global or local
both types are activated by a page fault when there
are no free page frames
Local
• chooses only among the resident pages of the process
that generated the page fault
Global
• considers all unlocked pages in main memory
Cleaning Policy
Concerned with determining when a modified page
should be written out to secondary memory
Demand Cleaning
a page is written out to secondary memory only when it has
been selected for replacement
Precleaning
allows the writing of pages in batches
Load Control
Determines the number of processes that will be
resident in main memory
multiprogramming level
possibilities exist:
• Lowest-priority process
• Faulting process
• Last process activated
• Process with the smallest resident
set
• Largest process
Summary
Desirable to:
maintain as many processes in main memory as
possible
free programmers from size restrictions in program
development
With virtual memory:
all address references are logical references that are
translated at run time to real addresses
a process can be broken up into pieces
two approaches are paging and segmentation
management scheme requires both hardware and
software support