Title: Virtual Memory
1Virtual Memory
2What 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.
3Reasons 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.
42 Main Advantages of Virtual Memory
- 1. Main memory is used more efficiently
- 2.Programs that are bigger than
- main memory can still be executed.
5Implementation of Virtual Memory System
- Paging - Fixed-size blocks
- Segmentation- Variable size blocks
- Paged Segmentation Combination of two systems.
6Paging
- Paging systems use fixed-length blocks called
pages and assign them to fixed regions of
physical memory called page frames.
7Page Table
Page Table
Frame Number
Page Number
4
6
2
5
0
1
2
3
8Pages
- Example Each page has the same length, typically
a power of 2.
Code
Data
9Advantage 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.
10Memory 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. -
11The Mapping of a Virtual Addressto a Physical
Address Via a PageTable
Virtual address
Main memory
Virtual page number Page offset
Page table
Physical Address
12Techniques 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.
13Structure of a Virtual Memory System
Physical block Address
TLB
Memory Map
Virtual Block Address
Logical (virtual) Address
Displacement
Physical Address
Main Memory
Secondary Memory
14Representative Organization of a Page Table
Page Page Presence
Change Access Address Frame
bit P bit C
rights
A 0
1 0
R, X
C D6C7T9
0
R, W, X E
24 1
1
R, W, X F 16
1 0
R
15Selecting 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
16Advantage 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.
17Advantage 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.
18Page Replacement Policies
- 3 major page replacement policies
- FIFO
- LRU
- OPT
19FIFO
- FIFO(first in first out) With FIFO, the oldest
page in memory is selected for replacement - Example
- 2 3 2 1 5 2 4 5 3 2 5
2
2 2 2 2 5 5 5 5 3 3 3 3
3 3 3 3 2 2 2 2 2 5 5
1 1 1 4 4 4 4 4 2
20LRU (least recently used)
- LRU Policy- a policy that selects the page that
has gone unused for the longest period of time. - 2 3 2 1 5 2 4 5 3
2 5 2
2 3 2 1 5 2 4 5 3 2 5 2
2 3 2 1 5 2 4 5 3 2 5
3 2 1 5 2 4 5 3 3
21OPT(optimal replacement policy)
- In this policy we will replace the memory with
the page address which we will not use in the
near future.
22Examples of OPT
2 2 2 2 2 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
23Segmentation
- 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.
24Size of Segments
- Variable size blocks are called segments.
- Segments size varies.
- The largest segment supported on any machine
ranges from 216 bytes up to 232 bytes
Data
Code
25Segment Table
- The physical addresses assigned to the segments
are maintained in a memory map called a segment
table.
26Segment-Table Entry
- Segment-Table
- 0 1 2 3 8 18 33
47
Tag
Physical address S
Presence Bit P
Segment size Z
27External Fragmentation
- External Fragmentation It happens because of
unused pieces of main memory.
28Paged Segments
- Combination of paging and segmentation.
- This is done by dividing each segment into pages.
- A word then has a logical address with 3
components- - Segment Address
- Page Address
- Line Address
29Advantage of Paged Segments
- It eliminates the need to store the segment in a
contiguous region of main memory.
30References
- 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.