调度 (计算机)

在计算中,调度是分配资源以执行任务的动作。 资源可以是处理器、网络链路或扩展卡。 任务可以是线程、进程或数据流。

调度活动由称为调度程序的进程执行。 调度程序通常设计为使所有计算机资源保持忙碌(如在负载平衡中),允许多个用户有效地共享系统资源,或实现目标服务质量。

调度是计算本身的基础,也是计算机系统执行模型的固有部分; 调度的概念使得使用单个中央处理器 (CPU) 进行计算机多任务处理成为可能。

目标

一个调度器可以针对一个或多个目标,例如:

  • 最大化吞吐量(每个时间单位完成的工作总量);
  • 最小化等待时间(从工作准备就绪到开始执行的xxx点的时间);
  • 最小化延迟或响应时间(对于批处理活动,从工作准备就绪到完成的时间,或者对于交互活动,直到系统响应并将xxx个输出交给用户的时间);
  • xxx限度地提高公平性(每个进程的 CPU 时间相等,或者更普遍地根据每个进程的优先级和工作量分配适当的时间)。

在实践中,这些目标经常发生冲突(例如吞吐量与延迟),因此调度程序将实现适当的折衷。 根据用户的需要和目标,偏好可以通过上述任何一项来衡量。

在实时环境中,例如工业中用于自动控制的嵌入式系统(例如机器人技术),调度程序还必须确保进程能够满足最后期限; 这对于保持系统稳定至关重要。 计划任务也可以通过网络分发到远程设备,并通过管理后端进行管理。

操作系统调度器的类型

调度程序是一个操作系统模块,它选择下一个要进入系统的作业和下一个要运行的进程。 操作系统可能具有多达三种不同的调度程序类型:长期调度程序(也称为准入调度程序或高级调度程序)、中期或中期调度程序以及短期调度程序。 这些名称暗示了它们执行功能的相对频率。

进程调度器

进程调度程序是操作系统的一部分,它决定哪个进程在某个时间点运行。 它通常有能力暂停一个正在运行的进程,将它移到运行队列的后面并启动一个新进程; 这样的调度器被称为抢占式调度器,否则它就是协作式调度器。

我们根据必须做出决策的频率来区分长期调度、中期调度和短期调度。

长期调度

长期调度器,或准入调度器,决定哪些作业或进程被准入就绪队列(在主内存中); 也就是说,当尝试执行一个程序时,它对当前正在执行的进程集的准入是由长期调度程序授权或延迟的。 因此,这个调度程序决定了系统上要运行哪些进程,以及在任何时候支持的并发程度——是要同时执行许多进程还是少数进程,以及 I/O 密集型和 CPU 密集型之间的分配方式 处理密集型流程。 长期调度程序负责控制多道程序的程度。

通常,大多数进程都可以描述为 I/O-bound 或 CPU-bound。 I/O-bound 进程是指花在 I/O 上的时间多于花在计算上的时间的进程。 相反,受 CPU 限制的进程很少生成 I/O 请求,而是将更多时间用于计算。 重要的是,长期调度程序选择 I/O 绑定和 CPU 绑定进程的良好进程组合。

调度 (计算机)

如果所有进程都是 I/O-bound,就绪队列几乎总是空的,短期调度程序将无事可做。 另一方面,如果所有进程都受 CPU 限制,则 I/O 等待队列几乎总是空的,设备将闲置,系统将再次失衡。 因此,具有最佳性能的系统将结合 CPU 绑定和 I/O 绑定进程。 在现代操作系统中,这用于确保实时进程获得足够的 CPU 时间来完成它们的任务。

长期调度在批处理系统、计算机集群、超级计算机和渲染农场等大型系统中也很重要。 例如,在并发系统中,通常需要对交互进程进行协同调度,以防止它们因相互等待而阻塞。

0

点评

点赞

相关文章