0

页表大小由页数乘以页表条目大小确定,为什么不乘以页数和页大小

4

1 回答 1

0

您可能对什么是页和什么是帧(在主存中完成的内存划分)感到困惑。希望举个例子有助于你理解。

假设您有一个大小为 1KB 的进程,而您的主内存大小为 1MB。要将你的进程放入主存,你需要将进程分类到页面中,这样进程中的每一页都会放在主存中的一个框架中[所以页面大小==框架大小]

让你的页面大小 = 框架大小 = 32B = 2 5 B

那么进程的总页数为 1KB/32B = (2 10 B) / 2 5 B

这是 2 5

而主存的总帧数为1MB/32B = (2 20 B) / 2 5 B

这是 2 15

现在我们需要将 2 5 个进程页放在 2 15 个内存帧中。页表将在这里帮助我们。

页表将有 2 5个条目(代表每个页面),每个条目将填充相应页面所在的帧号。

由于我们在主存中有 2 15帧,我们需要 15 位来表示一个帧号。

所以总页面大小将是

2 5 * 15 = 480 字节

补充说明

注意1在框架示例中,由于我们得到的页表大小大于页面大小,我们需要使用多级分页

注 2在现实生活中,页表大小可能不是简单的 15 位。相反,将为每个页表条目提供一些附加信息。

于 2020-01-02T13:01:44.917 回答