工作集大小 - 如果发生颠簸

时间:2016-10-05 22:02:03

标签: memory memory-management operating-system virtual-memory working-set

我对捶打感到困惑。让我们说我们有一组页面:2 4 6 8 2 5 8和工作集大小= 4.我们是否应该移动到页面大小结束然后将所有工作集大小相加然后与内存大小并决定是否发生颠簸?例如,在第一个区间中的这个集合中,WS(t1)= {2,4,6,8},WS(t2)= {4,6,8,2},WS(t3)= {6,8, 2,5},和WS(t4)= {8,2,5}。因此,当我们添加工作集大小sum = 15.我是否要将此值与内存大小进行比较并确定是否发生颠簸?

2 个答案:

答案 0 :(得分:1)

我不认为你明白什么是颠簸。 当您有许多页面错误时,CPU利用率将下降,因为您花时间将帧移入和移出RAM。操作系统会认为多道程序设计的程度很低,因此它会启动一个新的进程,这些进程也需要内存中的帧。反过来,这减少了进程所具有的帧数,这可能导致它们也发生颠簸。因此,增加了问题。而不是修复它。

您在工作集模型中的目标是估计您将在不久的将来访问的页面数量并将其保留在内存中,以免发生页面错误。

现在,如果我们想要将页面错误数保持在较低水平,我们需要按进程访问大量访问的页面在RAM中,它们是它的工作集。

如果对于所有进程总和页数,则乘以页面大小,即保持页面错误数量所需的内存量。如果此数字超过可用内存,则会发生页面错误并可能导致抖动

答案 1 :(得分:0)

如果您要学习工作集模型,

This是一个非常好的来源。

所以,如果我以简单的方式总结这些要点

    当系统花费所有时间将页面加载到内存中时,会发生
  • Thrashing
  • 因此,它不会执行任何高效的处理任务,这意味着浪费时间。
  • Thrashing 的主要原因是进程要求的内存总量(总计)大大超过实际内存总量,因此频繁出现页面错误。
  • 作为解决方案,工作集模型只保留 每个流程的工作集页面。它有助于内存仅利用当前(现在和将来)所需的页面。