Linux页替换的设计


图: Andrea Arcangeli

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

继续阅读全文 »

关键字: , ,