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

Memory management 为什么页面表的大小不是通过乘以页面大小的页面数来确定的?,memory-management,operating-system,paging,page-tables,page-size,Memory Management,Operating System,Paging,Page Tables,Page Size,页表大小是由页数乘以页表条目大小决定的,为什么不乘以页数乘以页大小决定呢?您可能会对什么是页和什么是帧感到困惑(内存划分在主存中完成)。希望一个例子能帮助你理解 假设您有一个大小为1KB的进程,主内存大小为1MB。要将进程放入主存,需要将进程分类为页,这样进程中的每个页都将被放置在主存中的一个框架中[so page size==frame size] 让您的页面大小=框架大小=32B=25B 那么这个过程中的总页数是1KB/32B=(210B)/25B 哪个是25 主存储器中的总帧数为1MB/3

页表大小是由页数乘以页表条目大小决定的,为什么不乘以页数乘以页大小决定呢?您可能会对什么是页和什么是帧感到困惑(内存划分在主存中完成)。希望一个例子能帮助你理解

假设您有一个大小为1KB的进程,主内存大小为1MB。要将进程放入主存,需要将进程分类为页,这样进程中的每个页都将被放置在主存中的一个框架中[so page size==frame size]

让您的页面大小=框架大小=32B=25B

那么这个过程中的总页数是1KB/32B=(210B)/25B

哪个是25

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

是215

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

页面表将有25个条目(代表每页),每个条目都将填入相应页面所在的框架编号

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

因此,总页面大小将为

25*15=480字节

附加注释

注意1:在框架示例中,由于页面表大小大于页面大小,因此需要使用多级分页

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