器时间的一部分。 管理时间片可以使调度程序为系统做出全局调度决策。 它还可以防止任何一个进程独占处理器
在许多现代操作系统上,时间片是根据进程行为和可配置系统策略动态计算的。 如我们所见,#$ 独特的“公平”
调度程序本身并不使用时间片,从而产生了有趣的效果。
-
'
0
6&
6
)+7!
895!!$+1$
相反,在协作多任务处理中,直到自愿决定这样做时,流程才会停止运行。 进程自愿中止自身的行为称为退让。
理想情况下,进程通常会退让,从而为每个可运行的进程分配了相当数量的处理器,但是操作系统无法强制执行
此操作。 这种方法的缺点很明显:调度程序无法就进程运行多长时间做出全局决策; 进程可以垄断处理器的时间
超出用户的期望; 永无休止的死机过程可能会破坏整个系统。 值得庆幸的是,最近二十年来设计的大多数操作系
统都采用了抢先式多任务处理,其中 )+7(及更早版本)和 895(及更早版本)是最引人注目的(且
令人尴尬的)例外。 当然,自从诞生以来,1$ 就具有抢占式的多任务处理能力。
#$2
:#$2"5775;#$
'
从 5775 年 #$ 的第一个版本到 ; 内核系列,#$ 调度程序的设计非常简单。 这很容易理解,但是鉴于许多可
运行的进程或许多处理器,可扩展性很差。
';<#$*
+5!5#$
% =
=."
作为响应,在 ;< 内核开发系列中,#$ 内核进行了调度程序大修。 一种新的调度程序,由于其算法行为而被称
为 +(5)调度程序,它解决了以前的 #$ 调度程序的缺点,并引入了强大的新功能和性能特征。 通过引入用于
时间片计算和每个处理器运行队列的恒定时间算法,它纠正了早期调度程序的设计限制。
5+5!$='
&*$=->3?(4+(5)是 = 表示法
的一个示例。 简而言之,这意味着调度程序可以在恒定时间内执行其工作,而不管任何输入的大小。 第 > 章“内
核数据结构”中对 = 表示法有完整的解释。
+5!,#$34
++5!
=
+5!@
@2A
+(5)调度程序的性能令人赞叹,并且可以轻松扩展,因为 #$ 支持带有数十个甚至数百个处理器的大型“铁”。
但是,随着时间的流逝,很明显,+(5)调度程序具有一些与调度对延迟敏感的应用程序有关的病理故障。 这些
应用程序称为交互过程,包括用户与之交互的任何应用程序。 因此,尽管 +(5)调度程序非常适合大型服务器工
作负载(缺少交互式进程),但是它在台式机系统上的性能低于同等水平,而台式机系统则以交互式应用程序为
生。
%;>
+5! B(
.#$2
+5!2;>;9-:
;
评论0
最新资源