免费注册 查看新帖 |

Chinaunix

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

[内存管理] 为什么要分配连续物理页面呢? 为了增加cache命中么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-21 09:45 |只看该作者 |倒序浏览
1、 在free_pages[]数组中所构成的buddy管理系统,是为了增加命中么。
2、还有在释放页面free_pages(addr       ,order).地址倒是好获得,但是这个order是如何保存下来的呢?也就是说释放页面块的时候,这个order是通过怎样的计算来的,还是前面申请的时候,有某个变量保存了此值?

论坛徽章:
0
2 [报告]
发表于 2012-06-21 11:11 |只看该作者
本帖最后由 azfa123 于 2012-06-21 11:16 编辑

个人理解:
1.内核低端映射采用直接映射(地址就是连续的),一次全部映射好,以后直接用,当然比用的时候再临时映射刷TLB来的好使。此外DMA要是要求空间多,物理地址连续,不连续它没法玩。有这样需求以及设计思路,才有了伙伴关系。不然我想位图就差不多了,要几个分几个空的(无需连续),自己映射应该就可以干活了。

简单点:要连续,才要伙伴关系,所以就不存在伙伴关系管理的页面为什么要连续的疑问了。

2.多大空间,申请释放都是程序员所为,不存在不知道大小。

论坛徽章:
0
3 [报告]
发表于 2012-07-11 18:40 |只看该作者
内存是自己要求的分配的,大小自己应该知道,释放的时候order也应该是那个值。忘了看LS的回复了,LS说的很好,补充一句,内核接受来自用户的参数会选择既不信任的态度,对他检查又检查,不行就直接返回。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP