A system uses a two-level paging scheme. The page size is 4 KB. The first-level page table has 1024 entries and the second-level page table also has 1024 entries. Given the following entries for a process:

What is the physical address for the logical address 0x00401000?
Solution
First, split the logical address 0x00401000 into parts:
- First-level page number: bits 22-31
- Second-level page number: bits 12-21
- Offset: bits 0-11
Logical address: 0x00401000 in binary: 0000 0000 0100 0000 0001 0000 0000 0000
- First-level index (bits 22-31): 0x1 (0000 0000 01)
- Second-level index (bits 12-21): 0x0 (0000 0000 00)
- Offset (bits 0-11): 0x1000 (0001 0000 0000)
From the first-level page table, index 1 maps to address 0x2000. From the second-level page table at 0x2000, index 0 maps to frame number 7.
Physical address base = frame number * page size = 7 * 4096 = 0x1C000 Physical address = base + offset = 0x1C000 + 0x1000 = 0x1D000