批处理作业与 CPU 绑定任务和调度

batch-job vs CPU-bound task and scheduling

我的第一个问题是关于批处理作业和 CPU 绑定任务:

cpu绑定任务和批处理作业之间究竟有什么区别?

批处理作业是一种无需与用户交互即可运行的程序,但是如果 cpu 绑定任务不是吗?


我的第二个问题是关于 uniprocessor 调度:

循环法和优先级调度等调度策略通常是为交互式工作负载实施的,为什么不为批处理作业实施?

在过去,批处理作业是通过 reader 送入的成堆打孔卡。有专用的交互系统和专用的批处理系统。

然后交叉开发。 TSO(分时选项)是一个永无止境的批处理作业,允许用户与底层批处理系统进行交互。

交互式系统开发了批处理队列。批处理队列可以以各种方式安排作业(由 JCL 或 DCL 等命令脚本控制)。如果您有 10 个作业需要 运行,您可以设置队列让 1 个或 2 个(或更多)运行 同时进入队列,这样您就不会因为让所有 [=28] 而使系统过载=] 一次。您还可以安排它们在特定时间 运行。如果您有一个为期 2 周的分子建模任务,您的批处理队列可以在晚上 7 点打开它并在人们开始工作之前早上 8 点关闭它。

Unix 除了基本的批处理设施外,再没有其他东西了。

What are exactly the differences between a cpu-bound task and a batch job?

它们是完全不同的两个东西。批处理作业可能绑定也可能不绑定 cpu。 cpu 绑定任务可能是也可能不是批处理作业。

A batch job is a program that runs without interaction with the user, but so if a cpu-bound task isn't it ?

批处理作业从不与用户交互。所有命令输入都在开始时进入。非批处理作业可能在某一时刻变成 cpu-boud,然后在稍后与用户交互。