为什么不是通过与页数乘以页面大小来确定页表大小?



页表大小是通过页数乘以页表条目大小来确定的,为什么不乘以页数与页面大小

您可能会对什么是页面和什么是帧(在主内存中完成的内存划分(感到困惑。希望一个例子对您有所帮助。

假设您有一个大小为 1KB 的进程,您的主内存大小为 1MB。要将进程放入主内存中,您需要将进程分类为页面,以便进程中的每个页面都将放置在主内存中的一个帧中[所以页面大小==帧大小]

让您的页面大小 = 帧大小 = 32B = 25B

那么过程中的总页数为 1KB/32B = (210B(/25B

即 25

主存储器中的总帧数为 1MB/32B = (220B(/25B

即 215

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

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

由于主存储器中有 2 个 15 帧,因此我们需要15位来表示帧号。

所以总页面大小将是

25 *15 = 480字节

附加说明

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

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

最新更新