作业与进程的关系
转自:https://blog.csdn.net/astx1596321/article/details/81188422
https://blog.csdn.net/u010585135/article/details/44515843
1.作业与进程
作业是用户提交给系统的一个任务,在用户向计算机提交作业后,系统将它放入外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内存中。
- 一个作业通常包括几个进程,几个进程共同完成一个任务,且必须至少由一个进程组成。
- 用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
- 作业与进程最主要的区别是:前者是由用户提交,后者是由系统自动生成;前者以用户任务为单位,后者是操作系统控制的单位。
1.1 作业、进程、程序
一个作业通常包括程序、数据和操作说明书3部分。
每一个进程由PCB、程序和数据集合组成。这说明程序是进程的一部分,是进程的实体。
因此,一个作业可划分为若干个进程来完成,而每一个进程有其实体————程序和数据集合。
作业举例:一个批处理就是一个作业。管道连接在一起的命令也是一个作业。test.sh中包含分支、循环等,这个作业具体执行的时候,可能会生成一个进程(比如ls),或者多个进程(比如:who | cut -c 1-8 | sort | uniq -c)。
2.举例
在windows系统中查看作业:at命令
一个作业可能包含多个进程。 使用tasklist查看进程: