编程接口指南

分时类

分时策略的目标是为交互式进程提供快速响应,并为计算密集 (CPU-bound) 的进程提供大吞吐量。调度器会按合适的频率切换 CPU 分配,既保证提供快速响应,同时又不使系统花费大量时间进行切换。时间片通常只有几百毫秒。

分时策略可动态更改优先级,并指定不同长度的时间片。对于使用 CPU 较短时间后便休眠的进程,调度器会提升其优先级。例如,进程启动 I/O 操作(如终端读取或磁盘读取)时会进入休眠状态。频繁休眠是交互式任务(如编辑和运行简单的 shell 命令)的特点。对于长时间使用 CPU 而不休眠的进程,分时策略会降低其优先级。

分时策略缺省情况下会为优先级较低的进程提供较大的时间片。低优先级进程可能是计算密集 (CPU-bound) 的进程。其他进程将首先获取 CPU,但是当优先级低的进程最终获取 CPU 之后,此进程会获取较大的时间片。但是,如果优先级较高的进程在某个时间片内进入可运行状态,则优先级较高的进程会抢占运行的进程所获取的 CPU。

全局进程优先级和用户提供的优先级按升序排列:优先级越高,运行时间便越早。用户优先级的范围从负的配置相关最大值到正的配置相关最大值。进程可继承其用户的优先级。缺省的初始用户优先级为零。

“用户优先级限制”是指用户优先级的配置相关最大值。可以将用户优先级设置为低于用户优先级限制的任意值。如果具有适当的权限,则可以提升用户优先级限制。缺省的用户优先级限制为零。

您可以降低进程的用户优先级,以减少进程对 CPU 的访问。或者,如果具有适当的权限,则还可以提升用户优先级以获取更快的服务。但是不能将用户优先级设置为高于用户优先级限制的值。因此,如果用户优先级限制和用户优先级的缺省值均为零,则必须先提升用户优先级限制才能提升用户优先级。

管理员配置最高用户优先级时可以不考虑全局分时优先级。例如,在缺省配置中,用户可以在–20 到 +20 范围内设置用户优先级。但是,此时会设置 60 种分时全局优先级。

调度器使用分时参数表 ts_dptbl(4) 中的可配置参数来管理分时进程。该表包含特定于分时类的信息。