昨天CSAPP上的疑问的解答
今天整明白了。
CSAPP英文版第2版,826页,或者中文版第2版546页,有这么一段。关于多级页表的。
"But if we had a 32-bit address space, 4KB pages, and a 4-byte PTE[page table entry, 杨注], then we would need a 4MB page table resident in memory at all time..."
其中"32-bit address space"的意思是 2^32 bytes,而不是2^32 bits,因为内存是按字节而不是按比特寻址的。
根据公式:页表尺寸 = (地址空间 / 页尺寸) * PTE入口大小........公式1
32-bit address space: 2^32 bytes (昨天误作bits)
4KB pages: 4K bytes
a 4-byte: 4 bytes
B: bytes
又
K = 2^10
M = 2^22
代入公式1的右侧,得
(2^32 bytes / 4K bytes) * 4 bytes
= 2^32 * 2^2 / (2^2 * 2^10) bytes
= 2^22 bytes
= 2^2 M bytes
= 4MB
--------------------