Problem For Practice

Q. Consider a virtual memory system with physical memory of 8GB, a page size of 8KB, and a 46-bit virtual address. Assume every page table exactly fits into a single page. If page table entry size is 4B then how many levels of page tables would be required? 

Explanation: 

Page size = 8KB = 213 B
Virtual address space size = 246 B
PTE = 4B = 22 B

Number of pages or number of entries in page table,
= (virtual address space size) / (page size)
= 246B/213 B
= 233

Size of Page Table, 

= (number of entries in page table)*(size of PTE) 
= 233*22 B
= 235 B

To create one more level,  

Size of Page Table > Page Size

Number of page tables in last level,
= 235 B / 213 B
= 222

The base address of these tables is stored in the page table [second last level].

Multi-Level Paging

Size of page table [second last level] 
= 222*22B
= 224B

To create one more level, 
Size of page table [second last level] > page size  

Number of page tables in second last level 
= 224B/213 B
= 211

The base address of these tables are stored in page table [third last level]  

Size of page table [third last level] 
= 211*22 B
= 213 B
= page size

∴ 3 levels are required. 

Multilevel Paging in Operating System

Multilevel Paging is a paging scheme that consists of two or more levels of page tables in a hierarchical manner. It is also known as hierarchical paging. The entries of the level 1 page table are pointers to a level 2 page table and entries of the level 2 page tables are pointers to a level 3 page table and so on. The entries of the last level page table store actual frame information. Level 1 contains a single-page table and the address of that table is stored in PTBR (Page Table Base Register).

Similar Reads

Why Multi-Level Paging is Required?

Consider a 32-bit physical address space with page size = 4KB and let there be 220  = 1M, the total entries in the page table, page table entry size = 232 /212 = 220, and adding some protection bits and a dirty bit in the page table entry. Now page table size =220 * 24 = 3MB which should be in the physical memory and since each process has its own page table there is so much memory wastage only for storing page tables....

Advantages of Multilevel Paging in Operating Systems

Reduced memory overhead: Multilevel paging can help to reduce the memory overhead associated with the page table. This is because each level contains fewer entries, which means that less memory is required to store the page table. Faster page table lookup: With a smaller number of entries per level, it takes less time to perform a page table lookup. This can lead to faster system performance overall. Flexibility: Multilevel paging provides greater flexibility in terms of how the memory space is organized. This can be especially useful in systems with varying memory requirements, as it allows the page table to be adjusted to accommodate changing needs....

Disadvantages of Multilevel Paging in Operating Systems

Increased complexity: Multilevel paging adds complexity to the memory management system, which can make it more difficult to design, implement, and debug. Increased overhead: Although multilevel paging can reduce the memory overhead associated with the page table, it can also increase the overhead associated with page table lookups. This is because each level must be traversed to find the desired page table entry. Fragmentation: Multilevel paging can lead to fragmentation of the memory space, which can reduce overall system performance. This is because the page table entries may not be contiguous, which can result in additional overhead when accessing memory....

Problem For Practice

Q. Consider a virtual memory system with physical memory of 8GB, a page size of 8KB, and a 46-bit virtual address. Assume every page table exactly fits into a single page. If page table entry size is 4B then how many levels of page tables would be required?...

FAQs on Multi-Level Paging

1. Can External Fragmentation be reduced by Multl-Level Paging?...