Prerequisite – Paging
Multilevel Paging is a paging scheme which consist 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 are stores actual frame information. Level 1 contain single page table and address of that table is stored in PTBR (Page Table Base Register).
In multilevel paging whatever may be levels of paging all the page tables will be stored in main memory.So it requires more than one memory access to get the physical address of page frame. One access for each level needed. Each page table entry except the last level page table entry contains base address of the next level page table.
Reference to actual page frame:
- Reference to PTE in level 1 page table = PTBR value + Level 1 offset present in virtual address.
- Reference to PTE in level 2 page table = Base address (present in Level 1 PTE) + Level 2 offset (present in VA).
- Reference to PTE in level 3 page table= Base address (present in Level 2 PTE) + Level 3 offset (present in VA).
- Actual page frame address = PTE (present in level 3).
Generally the page table size will be equal to the size of page.
Byte addressable memory, and n is the number of bits used to represent virtual address.
Number of entries in page table: = (virtual address space size) / (page size) = Number of pages Virtual address space size: = 2n B Size of page table: <>= (number of entries in page table)*(size of PTE)
If page table size > desired size then create 1 more level.
Extra memory references to access address translation tables can slow programs down by a factor of two or more. Use translation look aside buffer (TLB) to speed up address translation by storing page table entries.
Q.Consider a virtual memory system with physical memory of 8GB, a page size of 8KB and 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.
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/246 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
Base address of these tables are stored in page table [second last level].
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
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.
- Operating System | Paging
- Multilevel Cache Organisation
- Operating System | Multilevel Queue Scheduling
- Operating System | Multilevel Feedback Queue Scheduling
- Interprocess Communication in Distributed Systems
- Difference between Stateless and Stateful Protocol
- IIIT Hyderabad M.Tech Interview Experience
- M.Tech CTARA IIT Bombay Interview Experience
- Construct DFA which interpreted as binary number is divisible by 2, 3, 4
- Difference between Volatile Memory and Non-Volatile Memory
- Comparison on using Java for an Operating System instead of C
- Read-Copy Update (RCU)
- Difference between Blu-ray and DVD
- Difference between CLI and GUI
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.