⑴ 程序與進程的區別是什麼
1)程序只是一組指令的有序集合,它本身沒有任何運行的含義,它只是一個靜態的實體。而進程則不同,它是程序在某個數據集上的執行。進程是一個動態的實體,它有自己的生命周期。它因創建而產生,因調度而運行,因等待資源或事件而被處於等待狀態,因完成任務而被撤消。反映了一個程序在一定的數據集上運行的全部動態過程。
2)進程和程序並不是一一對應的,一個程序執行在不同的數據集上就成為不同的進程,可以用進程式控制制塊來唯一地標識每個進程。而這一點正是程序無法做到的,由於程序沒有和數據產生直接的聯系,既使是 執行不同的數據的程序,他們的指令的集合依然是一樣的,所以無法唯一地標識出這些運行於不同數據集上的程序。一般來說,一個進程 肯定有一個與之對應的程序,而且只有一個。而一個程序有可能沒有與之對應的進程(因為它沒有執行),也有可能有多個進程與之對應(運行在幾個不同的數據集上)。
3)進程還具有並發性和交往性,這也與程序的封閉性不同。