This is the question where I'm stuck: With a 32-bit virtual address, 4 KB pages(12 offset bits), and 4 bytes per page table entry, we can compute the total page table size:
Number of page table entries = 2^(32-12) = 2^20 Size of page table is 2^20 * 2 = 4MB
I understand this, but what I don't get is that each page table entry is of 4 bytes which is 32 bits. That would make the Physical address= 32+ 12 (offset bits)= 44 bits. Wouldn't it?
I've read and understood the point that Virtual Memory size should be bigger than Physical address because that's when the Virtual memory can hold more memory value (Main memory+Disk, though virtually) than the physical address. Am I right?
Also, I've found a block diagram showing all virtual addresses pointing to physical through a page table, and from there they are mapped to main memory and disk address; mapped to disk if valid bit is 0 or else mapped to main memory.
Let me know if I'm wrong anywhere.