免费注册 查看新帖 |

Chinaunix

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

[内存管理] 虚拟内存和物理内存 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-03-11 11:39 |只看该作者
回复 10# yangfan876
你这应该是在内存管理单元还没有初始化的时候做的输出吧,mem_map确实是page*,没有问题。内存管理初始化的时候应该会根据当前内存的大小为mem_map分配空间。如果还没有初始化的话mem_map因该就是NULL啊。


   

论坛徽章:
0
12 [报告]
发表于 2013-03-11 14:10 |只看该作者
我貌似弄明白了....大家看看是不是这样的:

每个物理页框对应一个page结构体,也就是页描述符。页描述符是按照数组的方式组织的,这个数组的首地址存在于mem_map这个结构体指针中。如果知道了页框号pfn则可以通过pfn<<PAGE_SIZE获得其物理地址,而页框号也可以通过对应页描述符page的首地址来获得:(&page-mem_map)/sizeof(struct page)。这样就建立起了物理页框于页描述符之间的联系....

论坛徽章:
0
13 [报告]
发表于 2013-03-12 19:19 |只看该作者
回复 11# pangxiezhou

那个结果是我写的一个内核模块打印出来的值,模块插入是在系统启动完成之后才进行的....只是这个结果很令人费解。不过我在调试内核的时候打印出来的值就不是NULL....很是奇怪....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP