How does multi-level page table save memory space?

I am trying to understand how multi-level page table saves memory. As per my understanding, Multi-level page table in total consumes more memory than single-level page table. Example : Consider a memory system with page size 64KB and 32-bit processor. Each entry in the page table is 4 Bytes. Single-level Page Table : 16 (2^16 = 64KB) bits are required to represent page offset. So rest 16-bits are used to index into page table. So *Size of page table = 2^16(# of pages) * 4 Bytes(Size of each page table entry) = 2^18 Bytes* Multi-level Page Table : In case of two-level page table, lets use first 10-most significant bits to index into first level page table. Next 10-bits to index into second level page table, which has the page number to frame number mappings. Rest 12-bits represents the page offset. Size of a second-level page table = 2^10 (# of entries) * 4 bytes(size of each entry) = 4 KB Total size of all the second-level page tables = 2^10 (# of second-level page tables) * 4KB (Size of each second-level page table) = 4 MB Size of first-level page table = 2^10(# of entries) * (10/8) Bytes (Size of each entry) = 1.25 KB Total memory required to store first and second level page tables = 4 MB + 1.25 KB So we need more memory to store multi-level page tables. If this is the case, How does multi-level page tables save memory space ?

asked Apr 6, 2015 at 7:58 Anil Kumar K K Anil Kumar K K 1,435 1 1 gold badge 18 18 silver badges 28 28 bronze badges

All page table entries don't have to be present in memory at the same time. Just the top-level dictionary, the rest can be swapped out to the disk and loaded and used when needed (if ever). So the saving is (in my opinion) in the fact that the page map occupies modest amount of memory