在 Windows 下,什么是进程“工作集”?

Eri*_*ith 4 windows memory

迄今为止,我对这个问题还没有一个满意的答案,但我经常被 Sysinternals Process Explorer 中“工作集”列下的淫秽数字所震惊。有人可以以易于理解的方式定义它吗?

Emm*_*NAT 9

工作集可以定义为:

工作集字节数 = Sizeof(RAM) –(可用字节数 + 池非分页字节数 + 池分页驻留字节数 + 系统缓存驻留字节数 + 系统代码驻留字节数 + 系统驱动驻留字节数)

具有以下定义:

Pool Nonpaged Bytes:这些表示分配给非分页池,这是一组始终驻留在 RAM 中的虚拟内存页面。(这些是不可分页的字节。)设备驱动程序和操作系统使用非分页池来存储必须保留在物理内存中并且永远不能被分页到磁盘的数据结构。(例如,TCP/IP 驱动程序必须为计算机上活动的每个 TCP/IP 连接分配一定数量的非分页内存,用于处理网络适配器中断期间无法容忍页面错误时所需的数据结构。)

池分页驻留字节数:在操作系统虚拟地址范围内获取的大多数虚拟内存页都可以分页。池分页驻留字节表示当前驻留在 RAM 中的可分页池中的内存位置。System Cache Resident Bytes:系统的文件缓存占用虚拟内存地址的保留范围,其中一些当前可能驻留在 RAM 中。(缓存的文件段也可以是非常驻的,在这种情况下,当它们被执行进程引用时,它们必须从磁盘中获取。)

系统缓存驻留字节数:表示当前驻留在 RAM 中的文件缓存段。

系统代码驻留字节:与当前驻留在 RAM 中的系统代码相关联的内存位置。

系统驱动程序驻留字节数:与当前驻留在 RAM 中的设备驱动程序代码相关联的内存位置。

  • 简而言之,一个进程使用的物理 RAM 量。这是 Windows 与该概念最接近的计数器。 (3认同)