多级寻呼操作系统

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

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

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

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

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

  • 我该如何解决这个问题? 到现在为止,我会认为页面大小=帧大小,但在这种情况下不会发生。


    这是我的想法:

    由于页面大小为16K,我的偏移量将为17位( 2^17 = 16K )。 现在我该如何分割其余的位,以及帧大小是多少? 我将其余的比特分成两半吗?


  • 238/16384 = 16777216页。
  • 一方面,剩余的38-log216384 = 24位地址可以合理地在逻辑地址的页面目录和页面表部分之间平均分配,因为这样的对称将简化设计。 另一方面,每个页面表的大小应与页面大小相同,以便能够以与包含程序代码和数据的正常/叶子页面完全相同的方式将它们卸载到磁盘。 幸运的是,在这种情况下,对于页目录索引和页表索引,使用12位得到我们两者,因为212 * 4字节的页表条目大小= 16384.此外,由于页地址始终具有14个最低有效位,自然页面对齐,页面地址中只有38-14 = 24位需要存储在页表项中,并且为其余32位控制数据(存在,管理员/用户,可写/非可写,脏,访问等位)。 这是我们假设物理地址也不超过38位。 该系统可能具有略多于38位的物理地址,代价是具有较少的控制位。 无论如何,一切都适合。 那么,在那里,38 = 12(页面目录索引)+12(页表索引)+14(偏移量)。
  • 程序本身为32MB / 16KB = 2048页。 每个页面表格涵盖了212 = 4096页,因此您需要约2048/4096 = 0页表格用于此程序。 我们把这个最多到1页的表格。 然后还有页面目录。 2048 + 1 + 1 = 2050是需要多少页才能将整个程序及其相关的页表存储在存储器中。
  • 链接地址: http://www.djcxy.com/p/82731.html

    上一篇: Multilevel Paging Operating System

    下一篇: Process Page Tables: why don't we use simple linear array?