Operating system 多级寻呼操作系统

Operating system 多级寻呼操作系统,operating-system,paging,Operating System,Paging,我在今天的考试中遇到了这个问题: 假设您有一个38位逻辑地址的计算机系统,页面大小为16K,每页表项4字节 逻辑地址空间中有多少页?假设我们使用两级分页,并且每个页表都可以完全放在一个框架中 对于上述系统,给出逻辑地址位的分解,清楚地指示偏移位、页表索引位和页目录索引位的数量 假设我们有一个32MB的程序,整个程序和所有必要的页表(使用两级分页)都在内存中。程序(包括其页表)使用了多少内存(以帧数计) 我如何着手解决这样一个问题?到目前为止,我一直认为页面大小=帧大小,但这种情况下不会发生 以

我在今天的考试中遇到了这个问题:

假设您有一个38位逻辑地址的计算机系统,页面大小为16K,每页表项4字节

  • 逻辑地址空间中有多少页?假设我们使用两级分页,并且每个页表都可以完全放在一个框架中

  • 对于上述系统,给出逻辑地址位的分解,清楚地指示偏移位、页表索引位和页目录索引位的数量

  • 假设我们有一个32MB的程序,整个程序和所有必要的页表(使用两级分页)都在内存中。程序(包括其页表)使用了多少内存(以帧数计)

  • 我如何着手解决这样一个问题?到目前为止,我一直认为页面大小=帧大小,但这种情况下不会发生


    以下是我的想法:

    由于页面大小为16K,我的偏移量将为17位(
    2^17=16K
    )。现在我如何划分其余的位,帧的大小是多少?我要把剩下的部分一分为二吗

  • 238/16384=16777216页
  • 一方面,剩余的38-log216384=24位地址可以合理地在逻辑地址的页目录和页表部分之间平均划分,因为这样的对称将简化设计。另一方面,每个页表应具有与页相同的大小,以便能够以与包含程序代码和数据的正常/叶页完全相同的方式将它们卸载到磁盘。幸运的是,在本例中,使用12位作为页面目录索引和页面表索引可以同时获得这两个索引,因为页面表条目大小为212*4字节=16384。此外,由于页面地址总是有14个最低有效位由于自然页面对齐而设置为零,因此页面地址中只有38-14=24位需要存储在页面表条目中,这为其余控制数据(存在、主管/用户、可写/不可写、脏、访问等位)提供了32-24=8位。这是假设物理地址也不超过38位时得到的结果。系统可能具有略多于38位的物理地址,但以控制位较少为代价。不管怎样,一切都合适。因此,38=12(页面目录索引)+12(页面表索引)+14(偏移量)
  • 32MB/16KB=程序本身的2048页。每个页表包含212=4096页,因此您需要为该程序提供大约2048/4096=0页表。我们把这张桌子凑成一页。然后还有页面目录。2048+1+1=2050是内存中包含整个程序及其相关页表所需的页数

  • @MichaelPetrotta,因为页面大小是16K,这意味着我的偏移量将是17位(2^17=16K)。现在我该如何划分剩余的部分,帧的大小是多少?我要把剩下的位一分为二吗?@Karan:你在一页中的偏移量是14位,因为2^14=16384。使用计算器。。。