3.2 進程管理
3.2.1 程的概念
(1)程序
自從人們認識了計算機起,就知道“程序”這個概念,程序是為實現特定目的而用計算機語言編寫的一組有序指令,這些指令可能是程序段、語句或命令。
n 程序順序執行:順序性、封閉性、可再現性
n 程序並發執行:制約性、失去封閉性、不可再現性
(2)進程
• 1966年美國麻省理工學院J.H.Sallexer提出“進程”概念。進程具有以下6個基本特性:
n 動態性進程是“活著”的程序,它具有生命周期,表現在它由“創建”而產生,由“調度”而執行,因得不到資源而“暫停”,最後由“撤消”而消亡。
n 並發性同時執行。
n 獨立性進程是一個獨立運行、資源分配和調度的基本單位。
n 異步性不同進程均具有各自的運行“軌跡”。進程具有“執行→暫停→執行”這樣走走停停的活動規律。
n 結構特征為便於管理,系統為每個進程創建一套數據結構,記錄該進程有關的狀態信息。
n 制約性由於系統資源受限,多個進程在並發執行過程中相互制約。
(3)進程的狀態
進程在其生存周期內,其執行過程是間斷性的,因此進程狀態是不斷變化。
n 就緒狀態 進程已經獲得了除CPU之外所需資源,一旦得到CPU,就可以立即執行。
n 運行狀態 進程獲得了CPU及其它一切所需資源,正在運行。
n 等待狀態 由於某種資源得不到滿足,進程運行受阻,處於暫停狀態,等待分配到所需資源後,再投入運行。
(4)進程與程序的區別
n 靜和動。程序是“靜止”的,它描述的是靜態的指令集合及相關的數據結構;進程是“活動”的,它描述程序執行起來的動態行為。
n 程序可以脫離機器長期保存。而進程是執行著的程序,當程序執行完畢,進程也就不存在了。進程的生命是暫時的。
n 程序不具有並發特征,不會受到其他程序的制約和影響。進程具有並發性,因此受到其他進程的制約和影響(爭奪資源)。
n 進程與程序不一一對應。一個程序多次執行,可以產生多個不同的進程;一個進程也可以對應多個程序。
3.2.2進程控制
進程控制的主要任務是調度和