Windows xp的内存管理技术综述

来源:百度知道 编辑:UC知道 时间:2024/09/19 15:52:36

内存管理器是Windows 2000/XP执行体的一部分,位于Ntoskrnl.exe文件中。在硬件抽象层(HAL)中没有内存管理器的任何部分。它由以下几个部分组成:

·一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。大多数这些服务都是以Win32API或核心态的设备驱动程序接口形式出现。

·一个转换无效和访问错误陷阱处理程序,用于解决硬件检测到的内存管理异常,并代表进程将虚拟页面装入内存。

·运行在六个不同的核心态系统线程上下文中的几个关键组件:

工作集管理器(working setmanager)(优先级为16) 平衡集管理器(内核创建的系统线程)每秒钟调用它一次。当空闲内存低于某一界限时,便启动所有的内存管理策略,如工作集的修整、老化和已修改页面的写入等。

进程/堆栈交换程序(process/stackswapper)(优先级为23) 完成进程和内核线程堆栈的换入和换出操作。当需要进行换人和换出操作时,平衡集管理器和内核中的线程调度代码将唤醒该线程。

已修改页面写入器(modifiedpagewriter)(优先级为17) 将修改链表上的“脏”页写回到适当的页文件。需要减小修改链表的大小时,此线程将被唤醒。

映射页面写入器(mappedpagewriter)(优先级为17) 将映射文件中脏页写回磁盘。需要减小修改链表的大小,或映射文件中某些页面在修改链表中超过了5分钟时,它将被唤醒。

废弃段线程(dereference segmentthread)(优先级为18) 负责系统高速缓存和页面文件的扩大和缩小。(例如,如果没有虚拟地址空间满足分页缓冲池的增加,该线程将减小系统高速缓存的大小。

零页线程(zeropagethread)(优先级为0》 将空闲链表中的页面清零,以便有足够的零页面满足将来的零页需求。

正如其他所有的Windows:2000/XP.执行程序组件一样;内存管理器是完全可重人的,它支持多进程并发执行。为了实现可重入,内存管理器使用了几个不同的内部同-步机制来控制它自身数据结构的访问,如旋转锁和执行程序资源。 下面