Given information from textbook:
Suppose a machine with 32-bit virtual addresses and 40-bit physical addresses is designed with a two-level page table, subdividing the virtual address into three pieces as follows:
-----------------------------------------
10 bit page table 10 bit page 12 bit
| number | number | offset
----------------------------------------
The first 10 bits are the index into the top-level page table, the second 10 bits are the index into the second-level page table, and the last 12 bits are the offset into the page. There are 4 protection bits per page, so each page table entry takes 4 bytes.
Questions to answer:
a. What is the page size in this system?
b. How much memory is consumed by the first and second level page tables and wasted by internal fragmentation for a process that has 64K of memory starting at address 0?
c. How much memory is consumed by the first and second level page tables and wasted by internal fragmentation for a process that has a code segment of 48k starting at address 0x1000000, a data segment of 600K starting at address 0xf0000000 and growing upward (towards higher addresses)?