class slides

Download Report

Transcript class slides

Virtual Memory
Operating Systems
Fall 2002
OS Fall’02
Paging and Virtual Memory
 Paging makes virtual memory possible
Logical to physical address mapping is
dynamic
Processes can be broken to a number of
pages that need not be mapped into a
contiguous region of the main memory
=> It is not necessary that all of the
process pages be in main memory during
execution
OS Fall’02
How does this work?
 CPU can execute a process as long as
some portion of its address space is
mapped onto the physical memory
E.g., next instruction and data addresses are
mapped
 Once a reference to an unmapped page
is generated (page fault):
Put the process into blocking state
Read the page from disk into the memory
Resume the process
OS Fall’02
Benefits
 More processes may be maintained in the
main memory
Better system utilization
 The process size is not restricted by the
physical memory size: the process
memory is virtual
But what is the limit anyway?
OS Fall’02
Why is this practical?
 Observation: Program branching and data
access patterns are not random
 Principle of locality: program and data
references tend to cluster
=> Only a fraction of the process virtual
address space need to be resident to
allow the process to execute for
sufficiently long
OS Fall’02
Virtual memory implementation
 Efficient run-time address translation
Hardware support, control data structures
 Fetch policy
Demand paging: page is brought into the
memory only when page-fault occurs
Pre-paging: pages are brought in advance
 Page replacement policy
Which page to evict when a page fault
occurs?
OS Fall’02
Thrashing
 A condition when the system is engaged
in moving pages back and forth between
memory and disk most of the time
 Bad page replacement policy may result
in thrashing
 Programs with non-local behavior
OS Fall’02
Address translation
 Virtual address is divided into page
number and offset
Virtual Address
Page Number
Offset
 Process page table maintains mappings
of virtual pages onto physical frames
Each process has its own unique page table
OS Fall’02
Forward-mapped page tables (FMPT)
 Page table entry
P M Other Control Bits
(PTE) structure
Frame Number
P: present bit
M: modified bit
Page Table
 Page table is an array
of the above
Page #
Index is the virtual
page number
Frame #
OS Fall’02
Address Translation using FMPT
Virtual address
Page #
Offset
Frame # Offset
Register
Page Table Ptr
Page Table
Offset
+
P#
Frame #
Program
Paging
OS Fall’02
Main Memory
Page
Frame
Handling large address spaces
 One level FMPT is not suitable for large
virtual address spaces
32 bit addresses, 4K (212) page size, 232 / 212
= 220 entries ~4 bytes each =>
4Mbytes resident page table per process!
What about 64 bit architectures??
 Solutions:
multi-level FMPT
Inverted page tables (IPT)
OS Fall’02
Multilevel FMPT
 Use bits of the virtual address to index a
hierarchy of page tables
 The leaf is a regular PTE
 Only the root is required to stay resident
in main memory
Other portions of the hierarchy are subject to
paging as regular process pages
OS Fall’02
Two-level FMPT
page number
pi
10
page offset
p2
10
d
12
OS Fall’02
Two-level FMPT
OS Fall’02
Inverted page table (IPT)
 A single table with one entry per physical
page
 Each entry contains the virtual address
currently mapped to a physical page (plus
control bits)
 Different processes may reference the
same virtual address values
Address space identifier (ASID) uniquely
identifies the process address space
OS Fall’02
Address translation with IPT
 Virtual address is first indexed into the
hash anchor table (HAT)
 The HAT provides a pointer to a linked list
of potential page table entries
 The list is searched sequentially for the
virtual address (and ASID) match
 If no match is found -> page fault
OS Fall’02
Address translation with IPT
Virtual address
page number
register
offset
frame number
HAT
ASID
ASID
page number
+
hash
Frame#
+
IPT base
HAT base
register
register
OS Fall’02
IPT
Translation Lookaside Buffer (TLB)
 With VM accessing a memory location
involves at least two intermediate
memory accesses
Page table access + memory access
 TLB caches recent virtual to physical
address mappings
ASID or TLB flash is used to enforce
protection
OS Fall’02
TLB internals
 TLB is associative, high speed memory
Each entry is a pair (tag,value)
When presented with an item it is compared
to all keys simultaneously
If found, the value is returned; otherwise, it
is a TLB miss
Expensive: number of typical TLB entries:
64-1024
Do not confuse with memory cache!
OS Fall’02
Address translation with TLB
OS Fall’02
Bits in the PTE: Present (valid)
 Present (valid) bit
Indicates whether the page is assigned to
frame or not
Invalid page can be not a part of any
memory segment
A reference to an invalid page generates
page fault which is handled by the operating
system
OS Fall’02
Bits in PTE: modified, used
 Modified (dirty) bit
Indicates whether the page has been
modified
Unmodified pages need not be written back
to the disk when evicted
 Used bit
Indicates whether the page has been
accessed recently
Used by the page replacement algorithm
OS Fall’02
Bits in PTE
 Access permissions bit
indicates whether the page is read-only or
read-write
 UNIX copy-on-write bit
Set whether more than one process shares a
page
If one of the processes writes into the page,
a separate copy must first be made for all
other processes sharing the page
Useful for optimizing fork()
OS Fall’02
Protection with VM
 Preventing processes from accessing
other process pages
 Simple with FMPT
Load the process page table base address
into a register upon context switch
 ASID with IPT
OS Fall’02
Segmentation with paging
 Segmentation
simplifies protection and sharing, enforce
modularity, but prone to external
fragmentation
 Paging
transparent, eliminates ext. fragmentation,
allows for sophisticated memory management
 Segmentation and paging can be
combined
OS Fall’02
Address translation
Seg #
Page #
Frame #
Offset
Offset
Seg Table Ptr
Segment
Table
Page Table
Offset
P#
S#
+
Program
+
Segmentation
Paging
OS Fall’02
Main Memory
Page
Frame
Page size considerations
 Small page size
better approximates locality
large page tables
inefficient disk transfer
 Large page size
internal fragmentation
 Most modern architectures support a
number of different page sizes
 a configurable system parameter
OS Fall’02
Next: Page replacement
OS Fall’02