加载中...
工作集是指进程在某段时间窗口内实际访问的页面集合,反映其当前的内存需求。操作系统据此判断应为进程保留多少物理页,防止因分配页框过少而引发频繁缺页导致的抖动。

| 提出背景 | 虚拟内存管理 |
| 核心依据 | 局部性原理 |
| 度量方式 | 时间窗口页集合 |
| 主要作用 | 预防抖动 |
工作集是虚拟内存管理中的核心概念,指一个进程在最近一段时间窗口内所访问过的页面集合。它近似刻画了进程当前阶段真正需要驻留在内存中的页面数量,是操作系统进行页框分配和抑制抖动的重要依据。
程序的内存访问通常具有局部性:在一段时间里,进程往往集中访问少数页面。工作集模型用一个滑动的时间窗口来观察进程访问了哪些页,这些页构成工作集。若系统能为进程保留其完整工作集所需的物理页框,进程就能顺畅运行,缺页较少;反之,若可用页框少于工作集,进程会不断把刚换出的页又换进来,陷入大量换页而几乎无法推进的状态,即抖动。
工作集模型指导操作系统的内存分配与换页策略。在多道程序系统中,内核根据各进程工作集之和与物理内存的关系,决定同时运行多少进程,这被称为负载控制。当发现系统整体缺页率过高、面临抖动风险时,可暂时挂起某些进程,把内存集中给其余进程,待压力缓解后再恢复,从而维持整体吞吐。
问:工作集和抖动是什么关系?答:抖动源于分配给进程的页框少于其工作集需求,导致频繁缺页。工作集模型正是为了度量这种需求,从而在分配内存时避免让进程陷入抖动。
问:窗口大小如何选择?答:窗口太小会遗漏刚访问但仍需要的页,窗口太大则包含已不再使用的页而浪费内存。实践中需要根据程序行为经验性地选取,并可动态调整。

| 提出背景 | 虚拟内存管理 |
| 核心依据 | 局部性原理 |
| 度量方式 | 时间窗口页集合 |
| 主要作用 | 预防抖动 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧