5.4 “抖动”与工作集

 

在讨论请求分页式虚拟存储器系统时,我们不能忽视其潜在的问题之一——“抖动”现象,及其对系统性能的重大影响。尽管请求分页系统因其能有效减少内存碎片、提高处理器利用率和系统吞吐量而广受欢迎,但在进程过多、物理内存资源有限的情况下,系统性能可能会因“抖动”而大幅度下降。本文将探讨“抖动”的成因、影响以及通过“工作集”概念来缓解“抖动”现象的方法。

多道程序度与“抖动”

多道程序度增加的影响

在虚拟存储器系统中,增加多道程序度——即同时运行的进程数——理论上可以提高处理机的利用率。这是因为系统能够逻辑上扩大内存,允许即使只加载了部分程序和数据的进程也能开始运行。然而,实际上,当进程数量增加到一定程度后,处理机利用率并不是无限增加,而是达到一个峰值后开始下降,这主要是由于“抖动”现象的发生。

“抖动”现象的出现

“抖动”是指系统中的进程由于频繁发生缺页中断,导致大部分时间都花费在页面换入换出上,而无法执行有效工作,从而使得CPU利用率急剧下降的现象。当系统运行的进程过多,而物理内存资源有限时,每个进程分配到的物理内存页太少,无法满足其正常运行的需求,进而导致频繁的缺页中断和页面换入换出操作。

工作集概念

为了解决“抖动”问题,提出了“工作集”概念。工作集定义为进程在最近一段时间内实际访问过的页面集合。该概念基于局部性原理,即进程在执行过程中倾向于在短时间内重复访问一部分特定的页面。

工作集的作用

工作集的管理允许系统动态调整分配给每个进程的物理内存量,以确保每个进程有足够的物理内存来满足其当前工作需求。这样,可以有效减少缺页中断的发生,避免或减轻“抖动”现象,从而提高系统性能。

缓解“抖动”的策略

  1. 动态监控工作集:系统需要实时监控每个进程的工作集大小,并根据其变化动态调整内存分配。
  2. 合理分配物理内存:系统应保证每个进程有足够的物理内存来覆盖其工作集,减少缺页率。
  3. 限制进程数量:当检测到“抖动”现象时,系统应限制新进程的创建或减少运行进程的数量,以减轻系统负载。

结论

“抖动”现象是请求分页式虚拟存储器系统中的一个关键问题,它可以严重降低系统的处理机利用率和整体性能。通过有效管理每个进程的“工作集”,系统可以减少缺页中断的发生,从而避免“抖动”,优化系统性能。这要求操作系统具备灵活的内存管理机制,以动态适应不断变化的进程需求,确保系统资源的高效利用。在设计和实施虚拟存储器系统时,充分考虑和应用“工作集”概念,对于缓解“抖动”现象、提高系统稳定性和效率具有重要意义。

 

 

在探索请求分页式虚拟存储器系统的性能时,我们不得不面对一个关键概念——“工作集”(Working Set)。这一概念,首由Peter Denning于1968年提出,旨在解释和优化进程在运行时的内存访问模式,特别是在缓解系统“抖动”现象方面发挥了重要作用。本文将深入探讨工作集的基本概念、定义及其对虚拟存储器性能的影响。

工作集的基本概念

工作集理论基于一个观察:程序运行时对页面的访问呈现出明显的局部性原理,即在一段时间内,程序可能主要访问内存中的一小部分页面。这些频繁访问的页面构成了所谓的“活跃页面集”,或称为工作集。通过有效管理这一工作集,即确保这些页面尽可能地留在内存中,可以大幅度降低缺页率,从而提升处理机的利用率和整体系统性能。

缺页率与物理块数的关系

如图所示,缺页率随分配给进程的物理块数增加而显著下降。达到某一临界点后,再增加物理块对缺页率的改善作用不再明显。这说明存在一个最优的物理块分配数量,超过该数量,资源的分配将不再经济高效。

工作集的定义

工作集,定义为在某段时间窗口Δ内,进程实际所要访问的页面集合。这个时间窗口Δ,被称为工作集的“窗口尺寸”。工作集的大小和组成随时间而变化,反映了进程的动态内存需求。通过跟踪和维护每个进程的工作集,系统可以动态调整内存分配,以适应进程的实际需求,减少缺页中断的发生。

窗口尺寸的影响

工作集的窗口尺寸Δ是一个关键参数,决定了系统如何响应进程的内存访问模式。较小的窗口尺寸可能无法捕捉到进程的全部活跃页面,而较大的窗口尺寸则可能包含了一些实际上不再活跃的页面。因此,选择合适的窗口尺寸对于优化系统性能至关重要。

工作集策略对系统性能的影响

通过维护和优化进程的工作集,系统可以有效降低缺页率,提高内存利用率和处理机的利用率。此外,工作集策略还有助于预防和缓解“抖动”现象,使得系统能够在高负载下仍保持较高的性能水平。

实施工作集策略

实施工作集策略需要操作系统具备强大的监控和调度能力,以实时跟踪进程的内存访问模式,动态调整内存分配。此外,合理设置窗口尺寸、准确预测进程的内存需求也是成功实施工作集策略的关键因素。

结论

工作集是请求分页式虚拟存储器系统性能优化的核心概念。通过理解和应用工作集概念,系统可以更有效地管理内存资源,提高系统的响应性和吞吐量,同时减轻或避免“抖动”现象的发生。随着计算机科学的发展,对工作集理论的深入研究和应用,将继续推动虚拟存储技术向前发展,实现更高效、更稳定的计算机系统。

 

 

为了确保系统具有较高的吞吐量并防止“抖动”现象的发生,研究人员和工程师们已经开发出多种策略。这些策略主要通过调节多道程序度来控制或预防“抖动”。本文将介绍几种常用的预防“抖动”发生的方法。

1. 采取局部置换策略

局部置换策略指的是在页面分配和置换策略中,为每个进程分配一定数量的物理内存,并且在进程发生缺页时,只在其已分配的物理内存中替换页面。这种策略的优点是即使个别进程发生“抖动”,也不会影响到其他进程,将“抖动”造成的影响限制在较小的范围内。然而,这种方法的缺点是当进程发生“抖动”后,可能会长时间处于等待状态,延长了其他进程的磁盘访问时间。

2. 把工作集算法融入处理机调度中

将工作集算法融合到处理机的调度策略中,意味着系统在调度进程时,会考虑进程的工作集大小,优先调度那些其工作集完全或部分在内存中的进程。这样可以确保被调度的进程在执行时缺页率较低,从而减少“抖动”。此方法要求系统能够实时监控和预测每个进程的工作集,这对系统的资源管理和调度算法提出了更高的要求。

3. 利用“4:1”准则调节缺页率

“4:1”准则是一种经验法则,它建议系统的缺页率应保持在一个合理的范围内,例如,每访问内存4次发生1次缺页是可以接受的比例。通过调整系统中运行的进程数或者为每个进程分配的物理内存大小,可以控制缺页率,从而间接预防“抖动”。

4. 选择暂停进程

当系统检测到“抖动”现象时,可以通过暂停一部分进程来减轻系统负载,特别是那些缺页率高的进程。暂停进程可以释放一部分物理内存,为其他进程提供更多的物理内存空间,从而降低整个系统的缺页率,缓解“抖动”现象。选择哪些进程暂停需要根据进程的重要性、当前状态和历史缺页率等因素综合考虑。

结论

预防“抖动”是维持请求分页式虚拟存储器系统高效运行的关键。通过实施上述策略,系统管理员和操作系统可以更有效地管理内存资源,确保系统在面临高负载时仍能保持良好的性能。这些策略的实施需要精细的资源监控和管理机制,以及灵活高效的调度算法支持。随着计算机科学的不断进步,预防“抖动”的方法和技术也将不断发展和完善。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值