操作系统二级页表

计算机采用二级页表的分页存储管理方式,按字节编址,页面大小为1024B,每个页表项占2B,
逻辑地址结构为:

若逻辑地址空间的大小为 64K 个页面,则表示整个逻辑地址空间的页目录表中包含的表项的个数至
少为_______

在解决这个问题前,我们用类比的方式来举一个例子。

  1. 假设有一本书,这本书每一页固定大小,最多一页有 1000 个字(页面大小);
  2. 每一页对应有一个目录中的条目,这个条目用 2 个字表示(页表项大小);
  3. 那么我 一页纸 就可以写下 1000/2 = 500 个目录条目;
  4. 现在我整本书有 1000 页(逻辑地址空间大小),我们说了每一页对应一个目录条目,所以有 1000 个目录条目;
  5. 所以我需要 1000 个目录条目/ 500 个目录条目 = 2 页(注意前面说到了,一页可写 500 个条目。所以我需要 2 个页面来保存目录条目。

回到题目本身,对应的含义用黑体在上面标识出来了。
其计算过程如下:
页面大小 210B,页表项大小为 2B,所以一页可以写 210B/2B=29B 个页表项。
逻辑地址空间大小为 216 页,就是说需要 216 个与之对应的页表项,因此需要 216B/29B=27=128 个页面存放页表项。

PS:关于分页存储管理,你完全可以和现实中的书本结合理解,把一页的大小理解为书本一页固定写多少多少字,页表项就是书本前面的目录。

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
(1) 由于每个页面大小为64Byte,因此每个页面的偏移量需要6位二进制位来表示。操作系统的物理地址和逻辑地址寻址空间为64KB,即2^16Byte,因此需要16位二进制位来表示。因为采用两级页表的分页管理方式,所以可以将16位逻辑地址分为两部分,一部分用于访问一级页表,另一部分用于访问二级页表。因此,一级页表需要10位二进制位来表示,而二级页表需要6位二进制位来表示。每个页表项需要记录页面的物理地址,因此每个页表项需要占用6位二进制位。因此,一级页表二级页表的大小均为2^10个和2^6个,页表占用的存储空间大小为2^10*6bit=60Byte和2^6*6bit=24Byte。 (2) 一级页表二级页表逻辑地址结构图如下: 一级页表逻辑地址结构图: |--------10位--------|--------6位--------| | 一级页表索引 | 页内偏移量 | 二级页表逻辑地址结构图: |--------10位--------|--------6位--------| | 一级页表索引 | 二级页表索引 | 页内偏移量 | 一级页表项包含了指向二级页表的指针,而二级页表项包含了页面的物理地址。 (3) TLB(Translation Lookaside Buffer)是一种高速缓存,用于存储最近访问过的页表项,以加快操作系统对内存的访问速度。当操作系统需要访问某个页面时,首先会检查TLB中是否已经存在该页面的页表项。如果存在,操作系统就可以直接从TLB中获取该页表项,而不需要访问内存中的页表。这样可以大大减少访问内存的次数,从而提高了操作系统对内存的访问速度。如果TLB中不存在该页表项,操作系统就需要访问内存中的页表来获取页面的物理地址。在访问完毕后,操作系统会将该页表项加载到TLB中,以便下次访问时直接从TLB中获取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值