轉自: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查看進程: