Operating system 工作、任务和流程,什么';有什么区别

Operating system 工作、任务和流程,什么';有什么区别,operating-system,Operating System,这些概念之间的区别是什么?它们可以被认为是同一件事,这取决于上下文。然而,进程通常是由操作系统管理的独立实体。作业通常更像是一个应用程序级别的术语,或者只是为了完成一组特定任务而执行的脚本。任务通常是作业的一部分,有时是作业的唯一部分。作业是用户提交的工作单元。它通常与批处理系统相关联。批处理作业可能是连续运行多个程序的请求[144页]。但是,可以假定作业是运行单个程序的请求。因此,根据上下文的不同,作业可以是一个程序(我们通常假设这一点),也可以是一组程序(例如批处理系统)[8页] 进程是一个

这些概念之间的区别是什么?

它们可以被认为是同一件事,这取决于上下文。然而,进程通常是由操作系统管理的独立实体。作业通常更像是一个应用程序级别的术语,或者只是为了完成一组特定任务而执行的脚本。任务通常是作业的一部分,有时是作业的唯一部分。

作业是用户提交的工作单元。它通常与批处理系统相关联。批处理作业可能是连续运行多个程序的请求[144页]。但是,可以假定作业是运行单个程序的请求。因此,根据上下文的不同,作业可以是一个程序(我们通常假设这一点),也可以是一组程序(例如批处理系统)[8页]

进程是一个活动实体,它需要一组资源,包括处理器和特殊寄存器来执行其功能。它是可执行程序的单个实例。从这里,你可以看到进程和程序之间的联系,也就是作业

Linux内核在内部将进程表示为任务[pg 742]


来源:Tanenbaum的《现代操作系统》(第三版),由Pearson Education,Inc.出版,2009年

任务表示在计算节点上执行单个进程或多个进程。用于执行计算的任务集合称为作业。作业用于保留任务所需的资源


来源:作业和任务

“流程”定义明确;“工作”和“任务”是不明确的

从根本上说,工作/任务是指工作完成了什么,而过程是如何完成的,通常被拟人化为谁做的。作业是整个工作单元,由任务组成。在实践中,用法非常不一致,通常是“任务”==“流程”,尽管流程正式执行任务

进程是一个定义良好的操作系统概念,线程也一样:进程是正在执行的程序的实例,是资源的基本单位:进程由映像、执行上下文、内存、文件等组成或“拥有”它们。;从词源上讲,过程是由处理器完成的步骤。一个进程由一个或多个线程组成,这些线程是调度单元,并且由一个进程的某个子集(可能与其他线程共享)组成:执行上下文,或者更多。传统上,线程是处理器上的执行单元(线程是“正在执行的内容”),但对于多核处理器,甚至在单核级别上也会执行一些调度。有各种各样的进程和线程,不同平台的确切定义各不相同

Jobtask如今是模糊的、模棱两可的术语,尤其是task。“”通常意味着一组进程,而“”可能意味着一个进程、一个线程、一个进程或线程,或者,很明显,是一个进程或线程完成的工作单元

要想知道命名有多混乱, 管理(运行)进程,同时 计划将来执行的程序(传统上称为a),并使用
.job
扩展

术语“传统上是指“一件工作”(与“职业”相对),在制造业中使用,在短语“中”是指“定制生产”,其中它与(一次多个项目,一次一个步骤)和(一次多个项目,同时所有步骤,按项目)形成对比。请注意,这些区别在计算中变得模糊,尤其是在矛盾修饰词“中”

在计算中,“作业”起源于大型机上的非交互式处理,特别是在IBM的60年代中期,正式指“操作系统的工作单元”,包括步骤,每个步骤都是执行特定程序的请求。早期的计算机主要是这样做的(在许多输入数据上运行相同的程序),比如人口普查或账单,而标准的一次性工作是从源代码处编译一个程序,然后可以处理成批的数据。后来的批处理应用于所有非交互式计算,无论是一次性的还是多个项目

在Unix shell中,a“”是a的shell表示形式,a是一组进程,所有进程都可以发送一个信号,具体地说是一个管道及其子进程;请注意,运行脚本会启动作业,与大型机中完全相同。在进程完成之前,作业不会完成,作业可以停止、恢复或终止,这与挂起、恢复或终止进程相对应。因此,虽然从形式上讲,作业不同于流程组,但这是一个微妙的区别,因此人们通常使用“作业”来表示“一组流程”

传统作业(和批处理)具有有限的输入数据,无论成功与否,都应该完成处理。相反,当运行服务器(如web服务器)时,输入(如请求流)是不受限制的(形式上是codata)。这类似于流水生产,流程(或“作业”)永远不会完成,尽管可以终止或“取消”。在一句俏皮话中,“服务器的工作从未完成”(正式地说,退出状态将被取消,未完成/成功)

术语“步骤”对于顺序计算是有意义的——一个步骤接着一个步骤——但是一旦你有了并行计算,你就有了一组任务,这些任务不一定按照特定的顺序运行,而不是一系列的步骤。“任务”一词在OS/360上得到推广,其特点是“固定任务数的多道程序设计(MFT)”和“可变任务数的多道程序设计(MVT)”,尽管在本例中,“任务”与“进程”或“线程”同义,因为基本任务是“执行此程序”(因此产生的过程/原因是