免费注册 查看新帖 |

Chinaunix

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

Linux页替换的设计 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-26 21:44 |只看该作者 |倒序浏览
Linux页替换的设计

赵珂, cn.zhaoke.com
http://blog.zhaoke.com/70.html
2007年1月26日



图: Andrea Arcangeli

Andrea Arcangeli[专访]设计的虚拟内存子系统已经合并到2.4.10内核. 一位主修操作系统课程的学生在邮件列表上问道为什么Linux内核中的LRU(最近最少使用)页替换算法使用两个串联链表? Andrea回答: 当时之所以设计成两个链表, 因为这样可以把活动和非活动缓存分开, 从而在交换出工作集(进程当前正使用的页的集合)之前能够检测出缓存的污染状况. 他继续说, 我们可以更快地收集非活动列表中的页(比活动列表中的页). 然后虚拟内存通过释放缓存来保持两个列表的大小平衡, 显然某些时候活动列表也需要被释放.

关于LRU算法: Linux使用LRU算法从系统中公平地交换出页面.



图: Rik van Riel

Rik van Riel[专访], 反向映射[相关]虚拟内存(已经合并到2.5内核[文章])的作者. 他说, 过去十年内存大小的增长速度远远超过了磁盘的增长速度(接下来10年可能也一样), 因此页替换算法的质量可能会变得越来越重要. 关于建议LRU分成两部分, 一部分为页缓存, 另一部分用于映射页缓存, Nick Piggin[专访]的回应是: 实际上我有一个可以”分开活动列表’大补丁. 它可以在回收时根据页面是否被映射来移动页面. 这个办法没有现在的好. Rik提供了一些改进想法. 对于每一个列表, 我们跟踪: 1) 列表的大小 2)我们扫描列表的频率 3)页(非新)片断的引用数. 这种方式我们能够确定哪一个列表有最大的空闲页片断, 因此该列表将会进行强制的扫描.

关于反向映射: 反向映射提供了一个发现哪些进程正在使用给定的内存物理页的机制.

这里是邮件列表上的讨论信息.
http://blog.zhaoke.com/data/2007/0126/page_replacement.txt

参考
Linux: Page Replacement Design
http://kerneltrap.org/node/7608
内核比较: 2.6 内核中改进了内存管理
http://www.ibm.com/developerworks/cn/linux/l-mem26/

相关文章
Linux: 自动内核调整程序
http://blog.zhaoke.com/60.html
IBM Linux技术中心: Linux内核相关的出版物
http://blog.zhaoke.com/36.html
进程实际内存占用: 私有驻留内存数(Private RSS)介绍
http://blog.zhaoke.com/31.html

备注
转载请保持文章完整性, 欢迎到blog.zhaoke.com网站与赵珂交流.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP