Presentation is loading. Please wait.

Presentation is loading. Please wait.

Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can.

Similar presentations


Presentation on theme: "Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can."— Presentation transcript:

1 Paging and Virtual Memory

2 Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can be loaded only if a contiguous memory chunk is available to accommodate the process Process size is limited by the main memory size  Advantage: simplicity

3 Paging  Process memory is divided into fixed size chunks of the same size, called pages  Pages are mapped onto frames in the main memory  Process pages can be scattered all over the main memory

4 Paging example 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D.4 0 1 2 3 Process A 0 1 2 3 0 1 2 Process B --- 0 1 2 3 4 0 1 2 3 Process C 7 8 9 10 4 5 6 11 12 Process D Free Frame List 13 14

5 Paging support  Page table maintains mapping of process pages onto frames  Hardware support is needed to support translation of relative addresses within a program (logical addresses) into the memory addresses

6 Address translation  Page (frame) size is a power of 2 with page size = 2 r, a logical address of l+r bits is interpreted as a tuple (l,r) l = page number, r = offset within the page  Page number is used as an index into the page table

7 Hardware support ProgramPagingMain Memory Logical address Register Page Table Page Frame Offset P# Frame # Page Table Ptr Page #OffsetFrame #Offset +

8 Virtual Memory  Paging makes virtual memory possible Logical to physical address mapping is dynamic => It is not necessary that all of the process pages be in main memory during execution

9 Benefits  More processes may be maintained in the main memory Better system utilization and throughput  The process size is not restricted by the physical memory size: the process memory is virtual But what is the limit anyway?  Less disk I/O to swap/load programs

10 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): Page fault interrupt transfers control to the OS handler

11 Page Fault Handler  Put the process into blocking state  Program disk controller to read the page from disk into the memory  Later on: I/O interrupt signals completion  Resume the process

12 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

13 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?

14 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

15 Address translation  Virtual address is divided into page number and offset  Mapping of virtual pages onto physical frames are facilitated by page table(s) Forward-mapped page tables (FMPT) Inverted page tables (IPT) Virtual Address Page NumberOffset

16 Forward-mapped page tables (FMPT)  Page table entry (PTE) structure  Page table is an array of the above Index is the virtual page number PM Frame Number Other Control Bits Page Table Frame # Page # P: present (valid) bit M: modified bit

17 Address Translation using FMPT ProgramPagingMain Memory Virtual address Register Page Table Page Frame Offset P# Frame # Page Table Ptr Page #OffsetFrame #Offset +

18 Handling large address spaces  One level FMPT is not suitable for large virtual address spaces 32 bit addresses, 4K (2 12 ) page size, 2 32 / 2 12 = 2 20 entries ~4 bytes each => 4Mbytes resident page table per process! What about 64 bit architectures??  Solutions: multi-level FMPT Inverted page tables (IPT)

19 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

20 Two-level FMPT page number page offset pipi p2p2 d 10 12

21 Two-level FMPT

22 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

23 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

24 Address translation with IPT Virtual address page number offset hash + HAT base register ASID register page number ASID Frame# IPT + IPT base register frame number HAT

25 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

26 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!

27 Address translation with TLB

28 Bits in the PTE: Present (valid)  Present (valid) bit Indicates whether the page is assigned to frame or not A reference to an invalid page generates page fault which is handled by the operating system

29 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

30 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()

31 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

32 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

33 Next: Page replacement


Download ppt "Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can."

Similar presentations


Ads by Google