【问题标题】:batch-job vs CPU-bound task and scheduling批处理作业与 CPU 密集型任务和调度
【发布时间】:2016-06-04 10:46:06
【问题描述】:

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

cpu 密集型任务和批处理作业之间到底有什么区别?

批处理作业是在不与用户交互的情况下运行的程序,但如果是 cpu-bound 任务不是吗?


我的第二个问题是关于单处理器调度:

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

【问题讨论】:

  • 这些都是过时的概念。你的 CS 课程教你一些专业开发人员不需要的东西。
  • 我的课程是关于操作系统的:p
  • 我认为任务也可能会休眠(等待某个时间事件)或通过网络进行通信。或者通过阿帕网。在开发本课程时,他们是否已经拥有网络? :)
  • 好吧,我想它仍然相关。大多数系统都有类似批处理的后台任务,CPU 爆发可以建模为批处理作业,无需提及 Web 服务

标签: multithreading process operating-system scheduled-tasks system


【解决方案1】:

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

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

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

Unix 从来没有比基本的批处理工具更重要的东西。

cpu 密集型任务和批处理作业之间到底有什么区别?

它们是两个完全不同的东西。批处理作业可能受 CPU 限制,也可能不受 CPU 限制。受 CPU 限制的任务可能是批处理作业,也可能不是。

批处理作业是在不与用户交互的情况下运行的程序,但如果是 cpu-bound 任务不是吗?

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

【讨论】:

  • cpu 绑定的任务怎么可能不是批处理作业?由于 cpu-bound 任务一直在使用 cpu,所以它不要求 I/O,因此它是一个批处理作业?
  • 使用 CAD 程序。以交互方式绘制。要求它重建表面。它受 CPU 限制。完成后,它会恢复为交互状态。
猜你喜欢
  • 2020-06-16
  • 2014-08-10
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多