跳转至

批处理作业调度算法

根据操作系统的性质,作业调度算法可以分为以下两种类型:

单道批处理作业调度算法

  • 定义: 在单道批处理系统中,一次只装入并运行一个作业,作业在执行期间独占所有系统资源。待该作业执行完毕后,系统才会调度下一个作业。
  • 特点:
    • 作业在执行期间独占所有计算机资源。
    • 系统资源利用率较低,尤其在作业进行 I/O 操作时,CPU 会出现空闲等待。
    • 通常用于早期的计算机系统或资源有限的环境。

常见算法:


先来先服务算法 (FCFS)

  • 定义:每次调度按照作业进入“输入井”后备作业队列的先后次序来挑选作业,优先将最先进入队列的作业调入主存,分配资源,创建进程,放入进程就绪队列准备运行。
  • 特点:FCFS是一种非剥夺式调度算法,容易实现,体现了公平,但效率不高,只考虑等候时间而不考虑作业服务时间长短。
  • 优点:简单,易于实现,保证公平。
  • 缺点:对短作业不利,有利于长作业和CPU繁忙型作业,不利于I/O繁忙型作业。因此,FCFS作为主调度算法不常用。

短作业优先算法 (SJF)

  • 定义:调度时以作业运行时间长短作为标准,从后备作业队列中选取运行时间最短的作业装入主存运行。
  • 特点:优先选择短作业,有助于提高系统整体响应效率。

响应比最高者优先算法 (HRRF)

  • 定义:既考虑作业等待时间,又考虑作业运行时间,计算所有作业的响应比,选择响应比最高的作业优先装入主存运行。
  • 响应比公式:响应比 = (作业等待时间 + 作业运行时间) / 作业运行时间
  • 特点:综合考虑等待时间和运行时间,保证公平性和高效性。

优先数调度算法

  • 定义:为每个作业确定一个优先数,根据优先数的不同将作业排成多个队列,优先选取优先数最高且资源能满足的作业装入主存运行。
  • 优先数确定原则
    1. 对于时间要求紧迫的作业赋予较高优先数。
    2. 对于I/O量大的作业给予较高优先数,CPU量大的作业给予较低优先数。

分类调度算法 (均衡调度算法)

  • 定义:根据系统运行情况和作业对资源的需求,先将作业分类,然后调度程序轮流从不同的作业类中挑选作业,尽可能使不同资源的作业同时执行,保证资源均衡利用。

多道批处理作业调度算法

  • 定义: 在多道批处理系统中,系统支持多道程序设计,允许多个作业同时装入内存,这样可以在一个作业等待 I/O 操作时,CPU 可以调度其他作业执行,从而提高系统的资源利用率。
  • 特点:

    • 通过多道程序设计,系统可以并发处理多个作业,提升资源利用率和系统吞吐量。
    • 可以同时运行多个作业,每个作业分别使用 CPU 和 I/O 资源。
    • 适用于现代多任务操作系统,能够显著提高系统性能。
  • 常见算法:

  • 高级调度(作业调度):
    • 负责从后备作业队列中选择合适的作业装入内存,以提高系统吞吐量。
    • 常用策略包括先来先服务、优先级调度、按作业大小调度等。
  • 低级调度(进程调度):
    • 负责在内存中的就绪进程队列中选择下一个执行的进程。
    • 常见算法包括时间片轮转、最短剩余时间优先、优先级调度等。
  • 中级调度(内存调度):
    • 使用交换技术(Swapping),在内存空间不足时将部分作业移到外存,以释放内存空间。
    • 负责动态调整内存中的作业数量,平衡系统负载。

两者的对比

特性 单道批处理作业调度算法 多道批处理作业调度算法
并发性 不支持,单次只执行一个作业 支持,多个作业可并发执行
资源利用率 低,CPU 经常空闲等待 高,充分利用 CPU 和 I/O
系统复杂度 简单,调度策略较少 复杂,需要高级、中级和低级调度
适用场景 资源有限、任务量少的场景 现代多任务、多用户系统
典型算法 先来先服务、短作业优先、响应比最高 时间片轮转、优先级调度、作业调度

总结

  • 单道批处理作业调度算法 适合资源有限的环境,较为简单,但资源利用率低,不适用于现代多任务系统。
  • 多道批处理作业调度算法 能充分利用系统资源,提高 CPU 和 I/O 设备的利用率,是现代操作系统的标准设计模式。