当前位置: 首页 > news >正文

3.2.5 抖动和工作集

1.抖动

在操作系统和内存管理的语境下,抖动(Thrashing,又称“颠簸”) 是一个非常关键的概念。

简单来说,抖动就是系统把所有的时间都花在了“搬运页面”上,而没时间运行程序。


1. 什么是抖动?

当一个进程频繁地发生缺页中断,导致系统必须不断地在内存和磁盘之间换入、换出页面,而实际执行指令的时间却变得极少时,我们就说系统陷入了“抖动”状态。

形象比喻:你正在考试(运行程序),但你的脑容量不够(内存不足),每写一个字都要去翻一遍厚厚的参考书(磁盘 I/O)。结果你考试全程都在翻书,一个题也没做完。


2. 产生抖动的根本原因

抖动的本质是:分配给进程的物理块数量,少于该进程正常运行所需的最小物理块数。

主要原因包括:

  1. 多道程序度(Multiprogramming Degree)过高:

    为了提高 CPU 利用率,系统引入了更多进程。但每个进程分到的内存越来越少,导致所有进程都频繁缺页。

  2. 局部性原理失效:

    如果一个进程频繁访问的页面(称为“工作集”)大于分配给它的物理块,它就会不停地置换页面。


3. 抖动与 CPU 利用率的关系

这是一个经典的性能曲线:

  • 上升期:随着增加进程数量,CPU 利用率升高(因为一个进程等待 I/O 时,另一个可以运行)。
  • 巅峰期:内存利用率达到饱和。
  • 崩溃期(抖动):如果继续增加进程,CPU 利用率会急剧下降。因为所有的进程都在忙着处理缺页中断,CPU 此时大多处于闲置状态,等待磁盘 I/O 完成。

4. 如何预防和解决抖动?

操作系统通常采用以下策略来对抗抖动:

A. 工作集模型 (Working Set Model)

  • 概念:观察进程在一段时间内真正频繁使用的页面集合。
  • 做法:操作系统只在内存足够容纳进程的“工作集”时,才让该进程运行。如果内存不够,宁可挂起(暂停)某些进程,也不让它们都在内存里“半死不活”。

B. 缺页频率 (Page Fault Frequency, PFF) 策略

  • 这是一种动态调整的方法:
    • 如果某个进程缺页率太高,说明分配给它的内存太少,系统就多给它分配几个物理块。
    • 如果某个进程缺页率极低,说明给它的内存太多了,系统就回收一些物理块给别人。

C. L-S 算法(Load Control)

  • 当系统发现 CPU 利用率下降且缺页率上升时,主动撤销(Swap out)一些进程,释放内存,直到抖动停止。

5. 总结对比

现象 产生原因 后果 解决方法
正常运行 内存充足,符合局部性原理 CPU 高效执行 维持现状
轻微缺页 偶尔访问新数据 少量 I/O 延迟 正常置换算法(LRU/CLOCK)
抖动 内存严重不足/进程太多 CPU 利用率崩盘,系统假死 减少进程数,增加内存

一句话总结:

抖动就是因为“太贪心”,在有限的内存里塞了太多的任务,结果大家都忙着换页,谁也干不了活。

2.工作集

在操作系统(OS)的内存管理中,工作集(Working Set)是一个至关重要的概念,由 Peter Denning 在 1968 年提出。它直接关系到系统如何有效地分配内存以及如何避免“抖动”现象。


1. 什么是工作集?

工作集是指在特定的时间间隔内,进程所访问的页面(Pages)的集合。

简单来说,如果一个进程在过去的一段时间里频繁地访问某些页面,那么在不久的将来,它极有可能还会访问这些页面。为了让进程高效运行而不频繁触发缺页中断,操作系统应当尽量将这些页面保留在物理内存中。

  • 局部性原理(Locality of Reference): 这是工作集模型的理论基础。进程在执行过程中,往往在一段时间内只访问程序的一小部分代码和数据。
  • 工作集窗口($\Delta$): 这是一个预定义的参数,表示考察的时间段。如果在时间 $t$,窗口大小为 $\Delta$,那么工作集 $W(t, \Delta)$ 就是在时间间隔 $(t - \Delta, t)$ 内被访问过的页面集合。

2. 工作集与常驻集(Resident Set)的区别

理解这两个概念的差异对掌握内存管理非常重要:

特性 工作集 (Working Set) 常驻集 (Resident Set)
定义 进程在一段时间内实际需要使用的页面集合。 进程当前实际在内存中存放的页面集合。
性质 逻辑上的、动态变化的。 物理上的、受系统分配策略影响。
理想状态 常驻集 $\supseteq$ 工作集 如果常驻集 < 工作集,会频繁发生缺页(抖动)。

3. 工作集的大小变化

工作集的大小并不是固定的,它随程序的执行阶段而变化:

  1. 激变阶段: 当程序进入一个新的函数或处理新数据结构时,工作集会迅速增大。
  2. 稳定阶段: 当程序在某个循环或局部区域内执行时,工作集趋于稳定。

$\Delta$ 的取值影响:

  • 如果 $\Delta$ 太小:无法涵盖进程运行所需的全部活跃页面,导致缺页率升高。
  • 如果 $\Delta$ 太大:会包含很多不再使用的旧页面,浪费内存资源。
  • 如果 $\Delta \to \infty$:工作集将变成进程自启动以来访问过的所有页面的集合。

4. 工作集模型的作用:防止抖动(Thrashing)

抖动是指系统花费在分页(换入换出)上的时间多于执行程序的时间。

操作系统利用工作集模型来实施全局内存分配策略

  • 监控工作集: OS 监测每个进程的工作集大小。
  • 准入控制: 如果所有活跃进程的工作集之和 $\sum W_i$ 超过了物理内存的总量,OS 就会选择挂起某个进程,将其内存释放给其他进程。
  • 提高多道程序度: 如果物理内存还有大量剩余(远大于工作集之和),OS 可以调入更多进程运行。

5. 实际实现中的挑战

虽然理论很完美,但在硬件层面精确追踪每一个时钟周期的工作集开销巨大。因此,现代操作系统通常使用近似算法,例如:

  • 引用位(Reference Bit): 定期清理引用位,查看哪些页在最近一段时间被访问过。
  • 缺页频率(Page Fault Frequency, PFF): 这是一种更常见的替代方案。如果一个进程缺页率太高,说明它的常驻集小于工作集,系统增加其分配的物理块;反之则减少。
http://www.jsqmd.com/news/145447/

相关文章:

  • 【计算机毕业设计案例】基于springboot的茶食酒馆网站在线预订 + 菜品展示 + 会员管理(程序+文档+讲解+定制)
  • 【毕业设计】基于springboot的旅拍在线婚纱摄影网站的设计与实现(源码+文档+远程调试,全bao定制等)
  • 手竿什么品牌质量最好?手竿鱼竿品牌排行榜前十位,中国手竿十大品牌盘点 - 品牌2026
  • PaddlePaddle镜像与MLflow集成:实现模型生命周期管理
  • 3.2.2 请求分页管理方式
  • 新手买钓鱼竿怎么选?新手鱼竿买什么牌子好?2025年新手鱼竿推荐性价比高的鱼竿推荐 - 品牌2026
  • 【毕业设计】基于springboot的马蜂窝书店网站(源码+文档+远程调试,全bao定制等)
  • PaddlePaddle镜像中的ERNIE系列模型究竟有多强?
  • WPF基于MVVM实现自定义分页控件
  • openKylin 远程调试不用愁!CPolar 让 SSH 服务轻松穿透内网
  • 【计算机毕业设计案例】基于springboot的旅拍在线婚纱摄影网站的设计与实现套餐选购 - 档期预约 - 作品互动” 一体化平台(程序+文档+讲解+定制)
  • 为什么大模型会出现幻觉
  • Coolutils Total Outlook Converter(邮件格式转换工具) 多语言安装版
  • 【课程设计/毕业设计】基于Springboot+vue的在线拍卖网站设计基于springboot的拍卖网站的设计与实现【附源码、数据库、万字文档】
  • Java毕设项目:基于springboot的旅拍在线婚纱摄影网站的设计与实现(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目推荐-基于springboot的旅拍在线婚纱摄影网站的设计与实现目的地推荐、在线预约、风格展示、套餐预订、行程规划【附源码+文档,调试定制服务】
  • 超强AI智能修图魔法换天AI光源傻瓜式调色!
  • Comtos Linux (朱雀) 系统安装——原理引导,启发式安装
  • ZX-560 兆芯加固笔记本
  • Claude code功能简介
  • 弹窗列表-时间筛选bug
  • 3.2.1 虚拟内存的基本概念
  • PassFab 4EasyPartition(系统迁移工具)
  • 【课程设计/毕业设计】基于springboot的马蜂窝书店网站书籍展示销售、活动管理、会员体系、书店管理【附源码、数据库、万字文档】
  • 计算机Java毕设实战-基于springboot的旅拍在线婚纱摄影网站的设计与实现摄影师团队、服装套数、住宿安排【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Windows系统文件wshbth.dll丢失损坏 下载方法
  • Java毕设选题推荐:基于springboot的旅拍在线婚纱摄影网站的设计与实现旅拍路线、筛选摄影风格、预约拍摄服务【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 如何评估企业的区块链数字版权交易平台
  • 计算机Java毕设实战-基于springboot的拍卖网站的设计与实现拍卖商品管理、历史竞拍管理【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 宇宙密码:数字 0.01 如何颠覆人类宇宙观