Document 7931904

Download Report

Transcript Document 7931904

Virtual Memory
BY
JEMINI ISLAM
What is Virtual Memory
Virtual memory is a memory management
system that gives a computer the
appearance of having more main memory
than it really has.
Reasons for using virtual memory



To free programmers from the need to carry out
storage allocation and to permit efficient sharing
of memory space among different users.
To make programs independent of the
configuration and the capacity of the memory
systems used during their execution.
To achieve the high access rates and low cost per
bit that is possible with a memory hierarchy.
2 Main Advantages of Virtual
Memory


1. Main memory is used more efficiently
2.Programs that are bigger than
main memory can still be executed.
Implementation of Virtual
Memory System:



Paging: - Fixed-size blocks
Segmentation:- Variable size blocks
Paged Segmentation: Combination of two
systems.
Paging

Paging systems use fixed-length blocks
called pages and assign them to fixed
regions of physical memory called page
frames.
Page Table
Table:
Page Number
Frame Number
0
4
1
6
2
2
3
5
Pages:

Example: Each page has the same
length, typically a power of 2.
Code
Data
Advantage of Paging:

The main advantage of paging is that
memory allocation is greatly simplified,
since an incoming pages can be assigned to
any available page frame which is also
known as fully associative.
Memory Mapping and Page Table:


Memory Mapping: With virtual memory, the CPU
produces virtual addresses that are translated by
combination of hardware and software to physical
addresses, which access main memory. This is
called memory mapping or address translation.
Page Table: Translation between virtual addresses
and physical addresses is done via a page table.
The Mapping of a Virtual Address
to a Physical Address Via a Page
Table
Virtual address
Virtual page
number
Page offset
Main
memory
Page
table
Physical Address
Techniques for Fast Address
Translation:

To reduce address translation time,
computers use a cache dedicated to these
address translation, which is called a
translation look-aside buffer or TLB.
Structure of a Virtual Memory
System :
TLB
Physical block
Address
Virtual Block Address
Logical
(virtual)
Address
Memory
Map
Displacement
Physical
Address
Main
Memory
Secondary Memory
Representative Organization of a
Page Table :
Page
Address
A
C
E
F
Page
Frame
0
D6C7T9
24
16
Presence
bit P
1
0
1
1
Change
bit C
0
1
0
Access
rights
R, X
R, W, X
R, W, X
R
Selecting Page Size:
Choosing a page size is a question
of balancing forces that favor a
larger page size versus those
favoring a smaller size.
 They both have some advantages
and disadvantages:

Advantage of Choosing Large
Page Size:


The size of the page table is inversely
proportional to the page size: Memory
can therefore be saved by making the
pages bigger
Transferring larger pages to or from
secondary storage, possibly over a network,
is more efficient than transferring smaller
pages.
Advantage Of Choosing Small
Page Size :

The main reason for choosing smaller page
is conserving storage. A small page size will
result in less wasted storage when a
contiguous region of virtual memory is not
equal in size to a multiple of the page size.
The term for this unused memory in a page
is internal fragmentation.
Page Replacement Policies:

3 major page replacement policies:
FIFO

LRU

OPT

FIFO

FIFO(first in first out) : With FIFO, the
oldest page in memory is selected for
replacement
Example:
2 3
2 2
3
2 1 5
*2 2
5
3 3 3
1 1
2
5
2
1
4 5
5 *5
2 2
4 4
3 2 5 2
3 3 3 3
2 *2 5 5
4 4 4 2
LRU: (least recently used)

LRU Policy- a policy that selects the page
that has gone unused for the longest period
of time.
2
3
2
3
2
2
1
5
2 1
3 2
3
5
1
2
*
2
4
2 4
5 2
1 5
*
5
3
2
5 3
4 5
2 4
2
3
5
*
5
2
5 *2
2 5
3 3
*
OPT(optimal replacement policy)

In this policy we will replace the memory
with the page address which we will not use
in the near future.
Examples of OPT :

2 3 2 1 5 2 4 5 3 2 5 2
2
2
3
2 2
3 3
1
*
2
3
5
2 4
3 3
5 5
*
4 4 2
3 *3 3
*5 5
5
2 *2
3 3
*5 5
Segmentation :


Segment : A segment is a set of logically
related contiguous words generated by a
compiler or a programmer.
Segmentation : A memory management
technique that allocates main memory by
segments is called segmentation.
Size of Segments :



Variable size blocks are called segments.
Segments size varies.
The largest segment supported on any
machine ranges from 2^16 bytes up to
2^32 bytes
Code
Data
Segment Table:

The physical addresses assigned to the
segments are maintained in a memory map
called a segment table.
Segment-Table Entry
Segment-Table
0123
8

18
33
Tag
Presence
Bit P
Segment size Z
Physical address S
47
External Fragmentation:

External Fragmentation: It happens because
of unused pieces of main memory.
Paged Segments :






Combination of paging and segmentation.
This is done by dividing each segment into
pages.
A word then has a logical address with 3
componentsSegment Address
Page Address
Line Address
Advantage of Paged Segments:

It eliminates the need to store the segment
in a contiguous region of main memory.
References





Dos Reis, Anthony J. Assembly Language And
Computer Architecture Using C++ And Java.
Hennessy, John and Patterson, David. Computer
Organization and Design. San Mateo,California :
Morgan Kaufmann, 1994.
Hennessy, John and Patterson, David. Computer
Architecture A Quantitative Approach. Sanfrancisco
: Morgan Kaufmann, 1996.
Hennessy, John and Patterson, David. Computer
Architecture A Quantitative Approach : Morgan
Kaufmann, 1990.
Hayes,
John.
Computer
Architecture
And
Organization. McGraw-Hill Book Company, 1988.