当作业在系统中移动并取得进展时,它的状态会从 HOLD 更改为 FINISH。当作业管理器和流程管理器正在处理作业时,它始终处于以下 5 种状态之一:
- 抓住:
当用户提交作业并接受该作业时,该作业将被搁置并放入队列中。 - 准备好:
当作业准备好运行并等待 CPU 时,它处于 READY 状态。 - 跑步:
当作业处于 RUNNING 状态时,它正在被执行。 - 等待:
当一个作业处于 WAITING 状态时,这意味着该作业在指定的 I/O 操作完成或资源被分配之前不能继续。 - 完成的:
当作业处于 FINISHED 状态时,表示作业已完成,输出将返回给用户。
作业从一种状态转换到另一种状态或从一种状态转换为另一种状态是由作业调度程序或进程调度程序根据某些特定算法完成的:
- 从 HOLD到READY的转换是由作业调度程序根据主内存空间的可用性和一些特定策略完成的。
- 从 READY到RUNNING的转换是由进程调度程序根据某些算法(例如 FCFS)完成的(决定哪个作业将首先完成)。
- 从 RUNNING返回到READY的转换是由进程调度程序根据某种标准(例如优先级中断)完成的。
- 当作业本身遇到一些 I/O 请求或需要一些资源分配时,从 RUNNING到WAITING的转换由进程调度程序完成。
- 当满足作业所需的要求(满足 I/O 请求)时,进程调度程序会完成从 WAITING到READY的转换。
- 从 RUNNING到FINISHED的转换由进程调度程序在两种情况下完成:
- (i)当工作成功完成时。
- (ii)发生错误并提前终止作业时。
- 当工作结束时,从队列中另一个作业进入从READY RUNNING的状态。