【读书笔记】现代操作系统(第三版)勘误一

最近停下了教程,安安心心的准备先把操作系统的一些基础概念啃完,今天在读《现代操作系统》(第三版)的第三章<存储管理>时,看到P112页,分析二级页表时,感觉有些问题,不知道是不是作者笔误,还是我理解有误,现在先剔出来,供自己以后检索:

原文如下:(3.3.4节 针对大内存的页表 P112)
下面看一个示例,考虑32位虚拟地址0x00403004(十进制4 206 596)位于数据部分12 292字节处。它的虚拟地址对应PT1=1,PT2=2,Offset=4。MMU首先用PT1作为索引访问顶级页表得到表项1,它对应的地址范围是4M~8M。然后,它用PT2作为索引访问刚刚找到的二级页表并得到表项3,它对应的虚拟地址范围是在它的4M块内的12 288~16 383(即绝对地址4 206 592~4 210 687)。这个表项含有虚拟地址0x00403004所在页面的页框号。如果该页面不在内存中,页表项中的“在/不在”位将是0,引发一次缺页中断。如果该页面在内存中,从二级页表中得到的页框号将与偏移量(4)结合形成物理地址。该地址被放到总线上并送到内存中。

上面这段话中,PT1=1,PT2=2,Offset=4

我自己分析:
虚拟地址0x00403004(十进制4206596),位于数据部分的12292字节处。
0x4206596 =:4*1024*1024 + 12292 = 4194304 + 12292 ,
所以,数据部分位于12292字节处。
地址0x4206596在PT1中是应该属于4M ~ 8M,因此在顶级页面中是1,所以PT1 = 1。
12292=1024*12+4 ,在PT2中是从4M开始的,所以在PT2的前三个是0K ~ 4K, 4K~8K,8K~12K,12K-16K,所以这个地址在二级页面中映射到第4表项,所以PT2 = 3,再加偏移量4,所以Offset = 4 。

由此分析可以得出:这里应该是PT2=3 ,他是在第4表项中有4个偏移量,书上写的是PT=2,是第3表项。
个人分析,此处应该是PT2 = 3,照第二版和第三版的英文版,全是写的PT2=2,实在理解不通,也许真的是大神Andrew S.Tanenbaum的笔误吧
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值