免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1166 | 回复: 0
打印 上一主题 下一主题

[C] 请教个内存管理的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-26 19:30 |只看该作者 |倒序浏览
我看到书上说:
内核用数据结构page描述一个页框的状态信息,所有的页描述符存放在全局mem_map数组中,其数组的下标为页框号(pfn)。
因为每个描述符长度为32字节,那么一个页描述符怎样与一个占据4k的页框相联系(映射)呢?有了mem_map数组,
这个问题就很简单了。因为如果知道了page数据的地址pd,用pd去减去mem_map就得到了pd的页框号pfn。

可是我对这个有疑问:
比如我的内存是1M,那么1M的内存可以分为1M/4k=256个页面,也就是说mem_map的最大下标是255,
每个页面需要32个字节的描述符,那么256个页面需要32*256个字节,也就是需要32*256/4k=2个页面,
即前面8k的内存是描述符,也就是存放mem_map的内容,即mem_map的地址是0,那么从第三个页面
可是存放数据,那么第三个页面的地址-mem_map的地址应该是8*1024,这个怎么可能是mem_map
的下标呢?
请问我这样理解有什么问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP