Windows 2000 内存管理与页面替换策略解析
1. LRU 算法与时钟算法
在虚拟内存管理中,页面替换是一个关键问题。LRU(Least Recently Used,最近最少使用)算法是一种经典的页面替换策略,但在实际应用中,很少以纯粹的形式使用。因为维护页面按最后引用时间的全序关系是一个开销极高的操作,考虑到实际内存页面的访问频率,这种开销是难以承受的。
为了支持 LRU 内存老化机制,计算机硬件进行了相应的发展,提供了一种在虚拟地址转换为物理地址时自动更新引用位的功能。例如,Intel IA - 32 架构在页表项(PTE)中维护这些引用位(访问位)。
时钟算法是 LRU 算法的一个流行变体,它利用硬件维护的访问位进行页面替换。该算法在 MVS 和 Unix 系统中都有应用。在每个时钟间隔,操作系统的内存管理函数会扫描并重置所有硬件访问位,同时积累物理内存中页面未被引用的时间信息。根据这些老化信息,页面会按最近引用时间进行排序。当物理内存耗尽时,就会替换掉最旧的驻留页面。
不过,时钟算法也有其局限性,特别是在处理非常大的内存配置时,扩展性较差。其老化算法的执行时间与驻留页面帧数据库的大小成正比。例如,IBM 大型机 MVS 操作系统针对大内存进行了优化,根据系统中最旧页面的年龄来调整时钟更新的频率。
2. Windows 2000 单处理器系统的页面替换策略
在单处理器系统上,Windows 2000 实现了一种退化形式的时钟老化算法,利用 PTE 访问位来区分新页面和旧页面。负责页面修剪的平衡集管理器(Balance Set Manager)内核线程每秒会对每个进程的工作集进行一次扫描。
<
超级会员免费看
订阅专栏 解锁全文
2101

被折叠的 条评论
为什么被折叠?



