“已提交字节”和“池非分页字节”之间有什么区别

“已提交字节”和“池非分页字节”之间有什么区别

我在一些博客上看到了关于已提交字节和池非分页字节之间的差异。我认为两者都是 NT 系统的保留内存,无法写入pagefile.sys。那么它们有什么区别呢?

答案1

从这里:http://support.microsoft.com/kb/2267427

内存,已提交的字节数:这是对虚拟内存需求的衡量指标。它显示进程分配了多少字节,以及操作系统已将 RAM 页框或页面文件中的页槽(或两者)提交给哪些字节。随着已提交字节数增长超过可用 RAM,页面调度会增加,使用的页面文件数量也会增加。在某个时候,页面调度活动开始显著影响感知性能。

从 ”突破 Windows 的限制:分页池和非分页池” 作者:Mark Russinovich

非分页池 内核和设备驱动程序使用非分页池来存储系统无法处理页面错误时可能访问的数据。内核在执行中断服务例程 (ISR) 和延迟过程调用 (DPC)(与硬件中断相关的函数)时会进入这种状态。当内核或设备驱动程序获取自旋锁时,页面错误也是非法的,因为它们是 ISR 和 DPC 中唯一可以使用的锁类型,因此必须使用自旋锁来保护从 ISR 或 DPC 以及其他 ISR 或 DPC 或内核线程上执行的代码中访问的数据结构。如果驱动程序未能遵守这些规则,则会导致最常见的崩溃代码 IRQL_NOT_LESS_OR_EQUAL。

因此,非分页池始终存在于物理内存中,非分页池虚拟内存被分配为物理内存。非分页池中存储的常见系统数据结构包括内核和表示进程和线程的对象、同步对象(如互斥锁、信号量和事件)、对文件的引用(表示为文件对象)以及表示 I/O 操作的 I/O 请求数据包 (IRP)。

相关内容