交互进程通过从键盘或指示装置接收命令或数据,并且通过生成用户的终端或其它输出设备上的输出响应与在对话框的形式与用户通信。
调度交互进程的主要目标是对每个输入做出迅速响应。因此,交互式进程必须使用抢占式调度来分时共享 CPU,以便让每个进程都有机会及时取得进展。
RR调度算法
时间量子,Q,是在进程内被允许使用的CPU时间的一个很短的时间单位(通常为10到100毫秒)。
RR(round-robin)算法使用单一的进程队列。优先级仅由进程在队列中的位置决定。队列头部的进程具有最高优先级,允许运行 Q 个时间单位。当 Q 结束时,进程被移动到队列的尾部,下一个位于队列头部的进程又被允许运行 Q 个时间单位。
ML 调度算法
RR调度平等对待所有的进程。外部优先级可以根据重要性划分成多个组。ML(MultiLevel) 调度在每个优先级维护一个单独的进程队列。在每个级别内,进程使用 RR 进行调度。
例:
- ML 在队列中维护 N 个不同优先级的进程。
- 选择最高优先级队列 § 头部的进程执行。
- 当该级别允许的最长时间到期时,正在运行的进程 § 移动到同一队列的尾部,下一个进程 (q) 开始使用 CPU。
- 优先级为 N-2 的新进程 (v) 进入相应队列的尾部。
- 优先级高于当前运行进程 (q) 的新进程 (x) 抢占正在运行的进程。只有当更高级别的所有队列都为空时,给定级别的进程才能运行。例如:s 将仅在级别 N 和 N-1 的进程终止后运行。