免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
1 [报告]
发表于 2008-01-20 21:18 |显示全部楼层

回复 #1 独孤九贱 的帖子

感谢楼主分享!不过我对于这句话有点疑问:

2、这样的二级模式是否真的节约了空间;
也就是算一下页目录项和页表项共占空间 (2^10 * 4 + 2 ^10 *4) = 8KB。哎,……怎么说呢!!!

这样计算的结果应该是所有页目录的空间+一个页目录对应的页表的空间,Linux进程内存管理应该可以允许进程不只一个页目录被装入内存吧?
还是说就是只能放1024个页表?这样就说的过去了。

[ 本帖最后由 vestige 于 2008-1-20 21:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-03-29 12:42 |显示全部楼层

回复 #1 独孤九贱 的帖子

我对这里还有一点疑问:
从软件的角度上来讲,因为它的项只有一个,32位,刚好可以存放与PGD中长度一样的地址指针。那么所谓先到PUD,到到PMD中做映射转换,就变成了保持原值不变,一一转手就可以了。这样,就实现了“逻辑上指向一个PUD,再指向一个PDM,但在物理上是直接指向相应的PT的这个抽像,因为硬件根本不知道有PUD、PMD这个东西”。

我对“转手”这个过程不太了解,是不是一个32位的线性地址,先从头10位的PGD中取得PT的入口项,然后由于要兼容4级分页,需要把这个32位的线性地址拷贝到唯一的PUD入口,再拷贝到PMD入口,然后再得到PT的地址?这样做的话岂非效率很低?

论坛徽章:
0
3 [报告]
发表于 2008-03-29 15:49 |显示全部楼层

回复 #80 zx_wing 的帖子

Thanks 楼上 a lot!

我看ULK里讲到:
The kernel keeps a position for the Page Upper Directory and the Page Middle Directory by setting the number of entries in them to 1 and mapping these two entries into the proper entry of the Page Global Direcotry.

不知道这里说的proper entry指的什么?
是不是为PUD和PMD在PGD中分配的两个entry,然后这两个entry又都指回了PGD?

论坛徽章:
0
4 [报告]
发表于 2008-03-29 19:33 |显示全部楼层
还是感谢zx_wing了,呵呵,我去琢磨琢磨,搞明白了整理个东西出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP