程式 程序和作業的關係

2021-06-29 06:34:09 字數 1478 閱讀 9105

程式與程序之間的區別:

(1)程序更能真實地描述併發,而程式不能。

(2)程序由程式和資料兩部分組成,程序是競爭計算機系統有限資源的基本單位,也是程序處理機排程的基本單位。

(3)程式是靜態的概念;程序是程式在處理機上一次執行的過程,是動態的概念。

(4)程序有生存週期,有誕生有消亡。是短暫的;而程式是相對長久的。

(5)乙個程式可以作為多個程序的執行程式;乙個程序也可以執行多個程式。

(6)程序具有建立其他程序的功能;而程式沒有。

作業與程序的區別:

乙個程序是乙個程式對某個資料集的執行過程,是分配資源的基本單位。作業是使用者需要計算機完成的某項任務,是要求計算機所做工作的集合。乙個作業的完成要經過作業提交、作業收容、作業執行和作業完成4個階段。而程序是對已提交完畢的程式所執行過程的描述,是資源分配的基本單位。其主要區別如下。

(1)作業是使用者向計算機提交任務的任務實體。在使用者向計算機提交作業後,系統將它放入外存中的作業等待佇列中等待執行。而程序則是完成使用者任務的執行實體,是向系統申請分配資源的基本單位。任一程序,只要它被建立,總有相應的部分存在於記憶體中。

(2)乙個作業可由多個程序組成,且必須至少由乙個程序組成,反過來則不成立。

(3)作業的概念主要用在批處理系統中,像unix這樣的分時系統中就沒有作業的概念。而程序的概念則用在幾乎所有的多道程式系統中。

注:作業與程序最主要的區別是:前者是由使用者提交,後者是由系統自動生成;前者以使用者任務為單位,後者是作業系統控制的單位。參考:

作業系統只認識程序,只對程序進行排程,作業其實和作業系統沒有關係。 

執行乙個可執行程式,就會生成乙個程序(程式裡面exec別的可執行程式或者fork程序除外),所以執行date,who,cut這些都會各自生成乙個程序。 

作業是shell裡面的乙個概念,我們的所有操作都是提交給shell,然後通過shell進行解釋後再執行,管道連起來的命令以及自己寫的shell程式都相當於乙個批處理。 

乙個批處理就是乙個作業。管道連線在一起的命令也是乙個作業。乙個作業就是我們提交給shell的一項任務,這個任務可能包含多個命令或者可執行程式,再複雜一些的任務可能需要我們自己進行shell程式設計,寫乙個shell程式,裡面含有分支,迴圈等,然後在命令列執行這個shell程式(比如:test.sh),這也是乙個作業。這個作業具體執行的時候,可能會生成乙個程序(比如ls),或者多個程序(比如:who | cut -c 1-8 | sort | uniq -c)。 

乙個作業是我們提交給shell的一項任務或者批處理,和作業系統無關。 

程序是具體執行的乙個可執行程式,是作業系統排程的物件。

參考:作業、程序和程式之間的聯絡:

乙個作業通常包括程式、資料和操作說明書3部分。每乙個程序由pcb、程式和資料集合組成。這說明程式是程序的一部分,是程序的實體。因此,乙個作業可劃分為若干個程序來完成,而每乙個程序有其實體————程式和資料集合。

參考:

程式 程序 作業 執行緒的關係

一 程式 是乙個包含了所有指令和資料的靜態實體。本身除占用磁碟的儲存空間外,並不占用系統如cpu 記憶體等執行資源。程式和程序的區別 程式是靜止的,程序是動態的,乙個程式可以啟動多個程序來共同完成。三 作業 是使用者提交給系統的乙個正在執行的任務,這個任務有可能只需乙個程序來完成,也有可能需要多個程...

58 作業與程序的關係

程序 系統進行資源分配和呼叫的基本單位。低階排程 作業 是使用者需要計算機完成的某項任務,是要求計算機所做工作的集合。高階排程 聯絡 1.乙個作業通常包括多個程序,多個程序共同完成乙個任務,即作業。2.使用者提交作業後,當作業被提交後,系統會為作業自動建立程序,乙個程序無法完成後,系統會為它再建立子...

程序關係之作業控制

作業控制,它允許在乙個終端上啟動多個 作業 程序組 它控制哪乙個作業可以訪問該終端,以及哪些作業在後台執行。作業控制要求下面三種形式的支援 1 支援作業控制的shell。2 核心中的終端驅動程式必須支援作業控制。3 核心必須提供對某些作業控制訊號的支援。從shell使用作業控制功能角度講,使用者可以...