Virtual Memory
Virtual Memory
Operating System Concepts – 9th Edition 9.2 Silberschatz, Galvin and Gagne
Basic Hardware
Operating System Concepts – 9th Edition 9.3 Silberschatz, Galvin and Gagne
Base and Limit Registers
A pair of base and limit registers define the logical
address space
Operating System Concepts – 9th Edition 9.4 Silberschatz, Galvin and Gagne
Hardware Address Protection
Operating System Concepts – 9th Edition 9.5 Silberschatz, Galvin and Gagne
Logical vs. Physical Address Space
Operating System Concepts – 9th Edition 9.6 Silberschatz, Galvin and Gagne
Memory-Management Unit (MMU)
Hardware device that at run time maps virtual to
physical address
Many methods possible, covered in the rest of this
chapter
To start, consider simple scheme where the value in
the relocation register is added to every address
generated by a user process at the time it is sent to
memory
Base register now called relocation register
MS-DOS on Intel 80x86 used 4 relocation registers
The user program deals with logical addresses; it
never sees the real physical addresses
Execution-time binding occurs when reference is
made to location in memory
Logical address bound to physical addresses
Operating System Concepts – 9th Edition 9.7 Silberschatz, Galvin and Gagne
Operating System Concepts – 9th Edition 9.8 Silberschatz, Galvin and Gagne
Dynamic relocation using a relocation register
Operating System Concepts – 9th Edition 9.9 Silberschatz, Galvin and Gagne
Dynamic Loading
Routine is not loaded until it is called
by the All routines are kept on disk in a relocatable
load format
The main program is loaded into memory and
executed
When a routine needs to call another routine :
1. The calling routine first checks to see if the other
routine has been loaded
2. If not, the linking loader is called to load desired
routine into memory and update the program
address table to reflect this change
Better memory space utilization: unused routine is
never loaded
Operating System Concepts – 9th Edition 9.10 Silberschatz, Galvin and Gagne
Swapping
A process can be swapped temporarily out of
memory to a backing store, and then brought back
into memory for continued execution
Total physical memory space of processes can
exceed physical memory
Backing store – fast disk large enough to
accommodate copies of all memory images for all
users; must provide direct access to these memory
images
Roll out, roll in – swapping variant used for priority-
based scheduling algorithms; lower-priority process
is swapped out so higher-priority process can be
loaded and executed
Major part of swap time is transferring time; total
transfer time is directly proportional to the amount
of memory swapped
System maintains a ready queue of ready-to-run
processes which have memory images on disk
Operating System Concepts – 9th Edition 9.11 Silberschatz, Galvin and Gagne
Schematic View of Swapping
Operating System Concepts – 9th Edition 9.12 Silberschatz, Galvin and Gagne
Segmentation
Memory-management scheme that supports user view of
memory
A program is a collection of segments
A segment is a logical unit such as:
main program
procedure
function
method
object
local variables, global variables
common block
stack
symbol table
arrays
Operating System Concepts – 9th Edition 9.13 Silberschatz, Galvin and Gagne
Logical View of Segmentation
4
1
3 2
4
Operating System Concepts – 9th Edition 9.14 Silberschatz, Galvin and Gagne
Paging
Physical address space of a process can be
noncontiguous; process is allocated physical
memory whenever available
Divide physical memory into fixed-sized blocks
called frames
Divide logical memory into blocks of same size
called pages
Keep track of all free frames
To run a program of size N pages, need to find N free
frames and load program
Set up a page table to translate logical to physical
addresses
Operating System Concepts – 9th Edition 9.15 Silberschatz, Galvin and Gagne
Address Translation Scheme
Address generated by CPU is divided into:
Page number (p) – used as an index into a page
table which contains base address of each page in
physical memory
Page offset (d) – combined with base address to
define the physical memory address that is sent to
the memory page
unitnumber page offset
p d
m -n n
Operating System Concepts – 9th Edition 9.16 Silberschatz, Galvin and Gagne
Paging Hardware
Operating System Concepts – 9th Edition 9.17 Silberschatz, Galvin and Gagne
Page Table
When a process arrives in the system to be
executed:
Its size, expressed in pages, is examined.
Each page of the process needs one frame.
If the process requires n pages , at least n frames
must be available in memory.
If n frame are available, they are allocated to this
arriving process.
The first page of the process is loaded into one
of the allocated frames, and the frame number is
put in the page table for this process.
The next page is loaded into another frame, and
its frame number is put in the page table, and so
on.
Operating System Concepts – 9th Edition 9.18 Silberschatz, Galvin and Gagne
Paging Model of Logical and Physical Memory
Operating System Concepts – 9th Edition 9.19 Silberschatz, Galvin and Gagne
Background
The goal of memory management strategies : to
keep many processes in memory simultaneously to
allow multiprogramming.
To execute any program, it should be in main
memory.
Virtual memory is technique that allows the
execution of processes that may not be completely
in physical memory (only part of the program needs
to be in memory)
This technique depends on get only those pages that
are demanded for program execution.
This approach enables the OS to separate the logical
view of the memory (user view) from the physical
view(CPU view)
Operating System Concepts – 9th Edition 9.20 Silberschatz, Galvin and Gagne
Background (Cont.)
An examination of real programs shows that in many
cases, the entire program is not needed.
Error code, unusual routines, large data structures
Entire program code not needed at same time
To execute a program that is only partially in
memory would confer many benefits:
Program no longer constrained by limits of
physical memory
Each program takes less memory while running ->
more programs run at the same time
Increased CPU utilization and throughput with
no increase in response time or turnaround
time.
Operating System Concepts – 9th Edition 9.21 Silberschatz, Galvin and Gagne
Virtual memory
Virtual memory : is allocation scheme in which
secondary memory can be addresses as though it were
part of main memory. Program generated addresses are
translated automatically to the corresponding physical
addresses.
Virtual address space – logical view of how
process is stored in memory
Usually start at address 0, contiguous addresses
until end of space
Meanwhile, physical memory organized in page
frames
MMU must map logical to physical
Virtual memory can be implemented via:
Demand paging
Demand segmentation
Operating System Concepts – 9th Edition 9.22 Silberschatz, Galvin and Gagne
Virtual Memory That is Larger Than Physical Memory
Operating System Concepts – 9th Edition 9.23 Silberschatz, Galvin and Gagne
Demand Paging
Consider how an executable
program might be loaded from
disk into memory.
1. One option is to load the entire
program in physical memory at
program execution time .
2. An alternative strategy is to load
pages only as they are needed.
This technique is known as
demand paging.
Rather than swapping the entire
process into memory, though,
we use a lazy swapper.
Lazy swapper – never swaps a
page into memory unless page
will be needed
Swapper that deals with
pages is a pager
Operating System Concepts – 9th Edition 9.24 Silberschatz, Galvin and Gagne
Basic Concepts
When a process is to be swapped in, the pager
guesses which pages will be used, instead of swapping
in the whole process, the pager brings only those
pages into memory.
Thus, it avoid reading into memory pages that will not
be used anyway, decreasing the swap time and the
amount of physical memory needed.
We need some form of hardware support to distinguish
between the pages that are in memory and the pages
that are on the disk.
Operating System Concepts – 9th Edition 9.25 Silberschatz, Galvin and Gagne
Valid-Invalid Bit
With each page table entry a valid–invalid bit is
associated
(v in-memory – memory resident, i not-in-memory)
Initially valid–invalid bit is set to i on all entries
Example of a page table snapshot:
Operating System Concepts – 9th Edition 9.27 Silberschatz, Galvin and Gagne
Page Fault
Operating System Concepts – 9th Edition 9.28 Silberschatz, Galvin and Gagne
Steps in Handling a Page Fault
Operating System Concepts – 9th Edition 9.29 Silberschatz, Galvin and Gagne
What Happens if There is no Free Frame?
Operating System Concepts – 9th Edition 9.30 Silberschatz, Galvin and Gagne
Basic Page Replacement
1. Find the location of the desired page on disk
3. Bring the desired page into the (newly) free frame; update
the page and frame tables
Operating System Concepts – 9th Edition 9.31 Silberschatz, Galvin and Gagne
Page Replacement
Operating System Concepts – 9th Edition 9.32 Silberschatz, Galvin and Gagne
Page and Frame Replacement Algorithms
We must solve two major problems to implement demand
paging:
We must develop a Frame-allocation algorithm and
A Page-replacement algorithm
That is, if we have multiple processes in memory, we must
decide how many frames to allocate to each process ?
When page replacement is required, we must select the
frames that are to be replaced.
Evaluate algorithm by running it on a particular string of
memory references (reference string) and computing the
number of page faults on that string
String is just page numbers, not full addresses
Repeated access to the same page does not cause a page
fault
Results depend on number of frames available
In all our examples, the reference string of referenced page
numbers is 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
Operating System Concepts – 9th Edition 9.33 Silberschatz, Galvin and Gagne
Graph of Page Faults Versus The Number of Frames
Operating System Concepts – 9th Edition 9.34 Silberschatz, Galvin and Gagne
First-In-First-Out (FIFO) Algorithm
Reference string:
7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
3 frames (3 pages can be in memory at a time per
process)
15 page faults
Operating System Concepts – 9th Edition 9.35 Silberschatz, Galvin and Gagne
Optimal Algorithm
Replace page that will not be used for longest period of time
9 is optimal for the example
How do you know this?
Can’t read the future
Used for measuring how well your algorithm performs
Operating System Concepts – 9th Edition 9.36 Silberschatz, Galvin and Gagne
Least Recently Used (LRU) Algorithm
Use past knowledge rather than future
Replace page that has not been used in the most
amount of time
Associate time of last use with each page
Operating System Concepts – 9th Edition 9.37 Silberschatz, Galvin and Gagne
Learn and apply:
Virtual Memory
Operating System Concepts – 9th Edition 9.38 Silberschatz, Galvin and Gagne