程序,作業與程式

2021-10-21 14:57:50 字數 1438 閱讀 6331

程式與程序之間的區別:

(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、程式和資料集合組成。這說明程式是程序的一部分,是程序的實體。因此,乙個作業可劃分為若干個程序來完成,而每乙個程序有其實體————程式和資料集合。
參考:

程序 程式 作業 的區別

1.程序是程式的一次執行活動,屬於一種動態的概念。程式是一組有序的靜態指令,是一種靜 態 的 概 念。但 是,進 程 離 開 了程 序 也 就 沒 有 了 存 在 的 意 義。因 此,我 們 可 以 這 樣 說 進 程 是 執 行 程 序 的 動 態 過 程,而 程 序 是 程序 運 行 的 靜 態...

程式與程序

通俗的說,程式是乙個包含可執行 的檔案,是乙個靜態的檔案,而程序是乙個開始執行但是還沒有結束的程式的例項 就是可執行檔案的具體實現,乙個程式可能有許多程序,而每乙個程序又有許多子程序,依次迴圈下去,而產生子孫程序,當程式被系統呼叫到記憶體以後,系統會給程式分配一定的資源 記憶體,裝置等 然後,進行 ...

程式與程序

程式可以簡單的理解為 的集合 而程序是程式執行之後在記憶體中的狀態,執行的程式會產生乙個或多個程序。cpu時間片是cpu分配給各個程式的時間 比如說 把一秒分為100份,每乙份占十毫秒,a程式執行占用cup乙個時間片,b程式接著執行 此時a程式從執行狀態切換至就緒狀態,b程式處於執行狀態 計算機中執...