【操作系统】作业调度(高级调度)

作业和作业步

作业 (job)

  • 作业是把命令、程序和数据按照预先确定的次序结合在一起,并提交给系统的一个组织单位。
  • 或者:作业是用户交给系统的具有独立功能的任务。
  • 作业:程序和数据 + 作业说明书
  • 在批处理系统中,是以作业为基本单位从外存调入内存
    的。

作业步 (job step)

一个典型的作业可分成三个作业步:
1.“编译”作业步;
2.“连结装配”作业步;
3.“运行”作业步。

作业控制块 JCB

在多道批处理系统中通常有上百个作业,为了管理和调度作业,系统为每个作业设置了一个作业控制块(JCB),它记录该作业的有关信息。不同系统的 JCB的组成内容有所区别。

JCB 是作业在系统中存在的唯一标志。作业进入系统时由系统为每个作业建立一个 JCB;当作业退出系统时,则它的 JCB 也一起被撤消。

作业运行的三个阶段和三种状态

收容阶段

当用户完成作业的提交,作业存在于外存中,系统建立JCB。在它还未被调度去执行前,该作业处于后备状态。

运行阶段

作业被调度进入内存,并以进程的形式存在,其状态是执行状态。处于执行状态的作业可以有多个。

处于执行状态的作业并不意味着一定在 CPU 上运行,是否运行依赖于进程控制。

完成阶段

当作业已经完成其指定的功能,便进入停止状态,系统回收已分配资源。

作业调度的主要任务

接纳多少作业

  • 即多道程序的“道”。
  • 太多则可能会影响系统的服务质量(如周转时间太长),太少又将导致系统资源利用率和吞吐量的下降。
  • 根据系统的规模和运行速度来确定,同时要求 I/O 型进程与 CPU 型进程中和调度。

接纳哪些作业

取决于采用何种调度算法(先来先服务、短作业优先等)

先来先服务调度算法 FCFS

基本思想

按进程(作业)进入就绪(后备)队列的先后次序来分配处理机(为其创建进程)。

一般采用非剥夺的调度方式。

例如:例题

例题

例题

FCFS 调度算法的平均作业周转时间与作业提交的顺序有关。

FCFS 调度算法的特点:

  • 简单,但效率不高。
  • 有利于 CPU 繁忙型作业。
  • 不利于 I/O 繁忙型作业。
  • 现在操作系统中,已很少用该算法作为主要调度策略,尤其是在分时系- 统和实时系统中。但它常被结合在其它调度策略中使用。

例题

短作业优先调度算法(SJF)

  • 用于作业调度
  • 主要任务是从后备队列中选择一个或若干个估计运行时间最短的作业,-将它们调入内存运行。
  • 类似地,用于进程调度的是短进程优先调度算法(SPF)

例如

例题

FCFS 与 SJF 的比较

比较

短作业优先调度算法的优缺点

优点

  • 能有效降低作业的平均等待时间。
  • 能有效缩短进程的平均周转时间。
  • 提高了吞吐量。

缺点

  • 对长作业不利。
  • 没有考虑作业的紧迫程度。
  • 作业执行时间、剩余时间仅为估计。

SJF 算法虽然是优化的,但在 CPU 调度中很难实现。

优先级调度算法

对于 FCFS,等待时间是优先级。对于 SJF,作业的长短是优先级。

优先级调度算法(Priority-Scheduling Algorithm, PSA)以作业的紧迫程度为优先级。

系统选择优先级最高的几个作业装入内存。

优先级调度算法也用于进程调度,系统在可运行的进程中选择优先级最高者使其投入运行。

优先级的类型

  • 静态优先级
  • 动态优先级

静态优先级

优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般用整数表示,小表示优先级高。

确定原则:

  • 进程类型(系统进程 > 用户进程)
  • 进程对资源的需求(要求少的有较高的优先权)
  • 用户要求(紧急程度和付费情况)

优点:简单,开销小。
缺点:公平性差(对低优先权进程)

动态优先级

动态优先级在进程的存在过程中不断发生变化。

动态优先级的变化取决于:

  • 进程的等待时间
  • 进程的运行时间
  • 进程使用资源的情况

动态优先权确定方法的资源利用率高,公平性好,但开销较大,实现较为复杂。

高响应比优先算法 (HRRN)采用动态优先权。

高响应比优先调度算法

FCFS 只考虑了作业的等待时间,忽略了运行时间。SJF 只考虑了作业的运行时间,忽略了等待时间。

高响应比优先调度算法(Highest Response Ratio Next,HRRN) 既考虑了作业的等待时间,也考虑了作业的运行时间,是一种动态优先级调度算法。

公式

周转时间:从提交到完成的时间间隔。响应时间:在交互式系统中,从提交请求到产生首次响应的时间,而不是到产生输出结果所需的时间。

如等待时间相同,则要求服务时间越短其优先权越高→SJF。
如要求服务时间相同,优先权决定于等待时间→FCFS。
对长作业,若等待时间足够长,优先权也高,也能获得CPU。

例如:

例题

示例

不同调度算法对同一个调度实例的性能分析

比较

  • 15
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Slurm作业调度系统是一个用于分配和管理计算任务的开源软件。它允许用户在一个大规模的计算集群上提交、管理和监视作业。 首先,用户需要了解Slurm的基本概念。在Slurm中,一个作业是用户指定的一项计算任务,可以包括一个或多个任务。任务是作业的一个单元,可能会在不同的计算节点上执行。作业可以使用不同的资源进行调度,如CPU、内存和 GPU。用户需要清楚地定义作业的资源需求,以便Slurm可以正确地分配资源。 使用Slurm提交作业非常简单。用户只需要编写一个作业提交脚本,该脚本包含了作业的配置信息,如资源需求、输入文件、输出文件等。然后使用`sbatch`命令提交这个脚本即可。Slurm会按照其配置进行作业调度,将作业分配给相应的计算节点进行执行。 一旦作业提交后,用户可以使用`squeue`命令来跟踪作业的状态。该命令显示了作业的ID、状态、开始时间和节点信息等。用户可以根据需要使用`scancel`命令来取消作业。 Slurm还提供了一些高级功能,用于更精细地控制作业的调度和资源分配。用户可以使用`srun`命令在计算节点上启动特定的任务,并通过在作业提交脚本中设置一些参数来控制任务的执行方式。 总之,Slurm作业调度系统是一个强大且灵活的工具,可以帮助用户有效地管理和调度计算任务。通过了解基本概念和使用指南,用户可以更好地使用Slurm来利用集群资源进行高性能计算。 ### 回答2: Slurm作业调度系统是一个开源的、高效的集群管理和作业调度工具。它被广泛用于大规模计算集群和超级计算机系统。以下是使用Slurm的一些指南: 1. 提交作业:通过使用sbatch命令,可以向Slurm系统提交作业。作业通常是一个可执行的程序或脚本。可以使用sbatch命令指定作业的名称、资源需求、作业优先级等。 2. 查看作业状态:可以使用squeue命令查看当前正在运行的作业以及等待运行的作业和队列中的作业。squeue命令可以提供作业的ID、状态、用户等信息。 3. 取消作业:如果需要取消一个已经提交的作业,可以使用scancel命令。需要提供作业的ID来取消作业。 4. 调整作业优先级:使用sprio命令可以调整作业的优先级。较高优先级的作业将更早地得到处理。可以根据需求调整作业的优先级。 5. 资源管理:Slurm可以有效地分配集群的资源给不同的作业。可以使用scontrol命令设置和管理资源分配策略。可以向Slurm系统添加、删除或修改节点。 6. 队列管理:使用squeue和scontrol命令可以管理队列。可以创建、暂停、恢复、删除队列。可以根据不同的作业需求和优先级配置不同的队列。 7. 使用预定义脚本:Slurm提供了一些预定义的脚本,可以用于常见的作业操作,比如提交作业、取消作业等。可以根据需要进行修改和使用这些脚本。 8. 集群监控:Slurm提供一些工具来监控集群的状态和性能。可以使用sinfo命令查看集群中的节点状态和资源使用情况。可以使用sacct命令查看作业的执行情况和资源使用情况。 总之,Slurm作业调度系统是一个功能强大的集群管理工具,可以帮助用户高效地管理和调度作业。通过使用上述指南,用户可以更好地了解和使用Slurm系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值