有人可以给我一个操作系统中使用的 VSWS 算法的高级概述吗?

Can Someone Give me a high-level overview of the VSWS Algorithm used in Operating Systems?

我试图找到 videos/resources 可以给我一个简单、清晰、简洁的 VSWS 算法描述,但我似乎找不到任何东西。如有任何帮助,我们将不胜感激!

Can Someone Give me a high-level overview of the VSWS Algorithm...

可变区间采样工作集算法的基本思想是:

  • 每个虚拟页面都有一个“已使用”标志

  • 程序在 运行 时,if/when 程序使用虚拟页面(包括必须从 elsewhere/disk 获取页面数据才能运行的情况)已使用)CPU 或 OS 设置页面的“已使用”标志。

  • 经过一段可变的时间后,OS 检查所有“已使用”标志并决定如果页面未被使用则它不属于工作集(并可能驱逐他们以释放物理内存);然后清除所有“已使用”标志(为下一个可变时间量做好准备)。

... used in Operating Systems?

我不认为它实际用于现代操作系统。

大多数操作系统松散地使用基于“最近最少使用”的东西;其中使用类似的“变量抽样”方法来估计“最后一次使用页面的时间”(而不仅仅是一个“被使用”标志),然后用于估计“未来使用的概率”;然后可以将其与“驱逐成本”和“项目优先级”结合起来得出一个综合分数;其中得分最差的页面被认为是“最好驱逐以释放物理内存”。

注1:如果一个页面被修改,需要写入swap space(然后可能稍后从swap space加载回来)那么它有更高的“驱逐费用”;如果页面自从文件中获取或最后交换 space 后未被修改,则它具有较低的“驱逐成本”。为了提高性能(降低逐出成本,不要忘记估计是粗略的并且通常不能很好地预测未来的使用),更喜欢逐出“更便宜的逐出”页面是有意义的。

注2:当有多个任务时运行;对一些任务给予优待是好的。举一个极端的例子,假设 OS 处于“低内存”条件下并不断抖动(传输数据 to/from)磁盘;并且 admin/user 试图终止导致所有磁盘垃圾的错误程序但不能,因为他们需要用来解决问题的 tool/s 没有响应(因为这些工具没有得到优先考虑处理并且必须从“已经被破坏”的磁盘中获取。

注意 3:在某些情况下(例如,一个名为 sleep() 的任务,确定它很快就会醒来是微不足道的)可以使用其他信息来更好地估计“未来使用的概率”比简单的“最近最少使用”算法所能提供的要多。

注意 4:通常当 OS 需要释放一些物理内存时,还可以考虑其他事情(例如文件数据缓存)(并且也可以参与“计算分数并驱逐分数最差的系统。

注意 5:现代系统也会在实际请求数据之前预取数据(例如从文件等)。预取的“未被任何程序请求,根本未使用”的数据完全有可能比“明确请求和以前使用过”的数据更重要。