NJ!(
$$-
=*
5LLP
@
+"J
考虑一个具有两个可运行任务的系统:一个文本编辑器和一个视频编码器。 文本编辑器受 'C+ 约束,因为它几乎
花费所有时间等待用户按键。 (无论用户键入的速度有多快,都没有处理器快。)尽管如此,当文本编辑器确实
收到按键时,用户希望编辑器立即做出响应。 相反,视频编码器受处理器限制。 除了从磁盘读取原始数据流并随
后写入结果视频外,编码器还花费所有时间将视频编解码器应用于原始数据,从而轻松消耗了 5LL%的处理器。
视频编码器的运行时间没有任何时间限制=如果现在或半秒后开始运行,则用户无法分辨也不会在意。 当然,越早
完成越好,但是延迟不是主要问题。
'$
$8$:
6!
$
!$
+!
$
在这种情况下,理想情况下,与文本编码器相比,调度程序为文本编辑器提供了更多的可用处理器,因为文本编
辑器是交互式的。 文本编辑器有两个目标。 首先,我们希望它有大量可用的处理器时间。 不是因为它需要很多
处理器(不是),而是因为我们希望它在需要它时总是有可用的处理器时间。 其次,我们希望文本编辑器在唤醒
时抢占视频编码器(例如,当用户按下某个键时)。 这样可以确保文本编辑器具有良好的交互性能,并且可以响
应用户输入。 在大多数操作系统上,通过为文本编辑器提供比视频编码器更高的优先级和更大的时间片,可以实
现这些目标(如果有的话)。
*$#$
,'$"
$"'$
<LP@2
%$<LP
-J<LP"
.
先进的操作系统通过检测文本编辑器是交互式的来自动执行此操作。 #$ 也可以通过不同的方式实现这些目标。
它没有为文本编辑器分配特定的优先级和时间片,而是保证了文本编辑器具有特定比例的处理器。 如果视频编码
器和文本编辑器是唯一运行的进程,并且两者都处于同一级别,则该比例将为 <L%,这将保证每个处理器有一半
的时间。 因为文本编辑器大部分时间都处于阻塞状态,等待用户按下按键,所以它不会占用处理器的 <L%左右。
相反,视频编码器可以自由使用超过其分配的 <L%的数据,从而可以快速完成编码。
$+
'-:J<LP
"-:$*J
$
$.2*$
J<LP-:$
关键的概念是当文本编辑器唤醒时会发生什么。 我们的主要目标是确保它在用户输入后立即运行。 在这种情况下
当编辑器醒来时,-: 会注意到它分配了处理器的 <L%,但使用的处理器却少得多。 具体来说,-: 确定文本编辑
器的运行时间少于视频编码器的运行时间。 尝试使所有进程公平地分配处理器,然后抢占视频编码器并使文本编
>