免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 独孤九贱
打印 上一主题 下一主题

我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了) [复制链接]

论坛徽章:
0
141 [报告]
发表于 2010-06-21 12:03 |只看该作者
学习了

论坛徽章:
0
142 [报告]
发表于 2010-06-30 21:12 |只看该作者
:wink:

论坛徽章:
0
143 [报告]
发表于 2010-07-01 16:25 |只看该作者
mark, 好文顶一下。

论坛徽章:
0
144 [报告]
发表于 2010-07-02 10:08 |只看该作者
总结的不错。 收藏了。

论坛徽章:
0
145 [报告]
发表于 2010-07-21 16:11 |只看该作者
楼主大牛。。。膜拜。。纠结了很久。我有点茅塞顿开的感觉。。

论坛徽章:
0
146 [报告]
发表于 2010-07-23 19:02 |只看该作者
感觉搂主并没有了解,了解的话,讲出来的东西应该让人通俗易懂,
比如  吞吐量, 如果理解了,应该可以举出 鲜明让人了解的例子,
吞吐量, 比如, 公路上的 关卡, 如果同时有5俩车同时进入,每次只能出来一辆,

我看了你的  文章,似乎都没有这样的例子, 操作系统内核都是出自生活。
比如,先进现出,就像我们 排队打饭一样。
还有还多生活上的例子.

论坛徽章:
0
147 [报告]
发表于 2010-08-17 12:36 |只看该作者
本帖最后由 dolphin1987 于 2010-08-17 12:40 编辑

回复 137# ye020510625
首先感谢九剑兄花这么多的时间和心血来完成如些大作,最近终于有静下心来拜读了,不过还有以下的一个疑问:
你在《我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了) 》中有一段话如下:
“值得一提的是,虽然页目录和页表中的项,都是4个字节,32位,但是它们都只用高20位,低12位屏蔽为0——把页表的低12屏蔽为0,是很好理解的,因为这样,它刚好和一个页面大小对应起来,大家都成整数增加。计算起来就方便多了。但是,为什么同时也要把页目录低12位屏蔽掉呢?因为按同样的道理,只要屏蔽其低10位就可以了,不过我想,因为12>10,这样,可以让页目录和页表使用相同的数据结构,方便。”
文中红色的部分,我也没有看明白。引用一下Linux 2.6内核教程里的一段话:

页目录项和页表项具有相同的数据结构。它们都占用4个字节,其中的高20位用于保存页表基址、页框起始地址,由于页表、页框以及页目录都为4KB,且保证4KB对齐,所以只需要20位即可记录其起始地址;剩余12位用作标志位,划分成了不同的字段,分别记录当前页目录项/页表项对应页框的状态。

综上所述,我认为,由于Linux的分页管理机制,且页框大小为4KB,所以不管是页的起始地址,还是页表的起始地址都应该是4KB=2的12次方整数倍,所以地址的后面12位都是零,因此表示物理地址的32位就只需要32-12=20位就可以表示了。而页目录项和页表项都为4个字节,所以其后12位用作标志位,用于权限管理以及状态表示。

论坛徽章:
0
148 [报告]
发表于 2010-08-17 19:18 |只看该作者
顶!

论坛徽章:
0
149 [报告]
发表于 2010-08-18 08:54 |只看该作者
回复  ye020510625
首先感谢九剑兄花这么多的时间和心血来完成如些大作,最近终于有静下心来拜读了,不过 ...
dolphin1987 发表于 2010-08-17 12:36


这么老的贴子大家还顶,谢谢了,不过我自己都忘了这个贴了。你说的部份,好像原贴中有错误,后来经网友指正,在后面的跟贴中有讨论的,记得是这样。

论坛徽章:
0
150 [报告]
发表于 2010-08-19 03:03 |只看该作者
谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP