2、前驅圖和程序執行
2.1前驅圖
前趨圖是一個有向無循環圖,記為DAG(Directed Acyclic Graph),用於描述進程之間執行的前后關系。
例:具有九個結點的前驅圖
前驅關系:
P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9
2.2、程序的順序執行及其特征
程序:源代碼程序、目標代碼程序、可執行程序
程序執行:編輯、編譯、鏈接、執行
程序的結構:順序結構、分支結構、循環結構
程序順序執行的特征:
- 順序性:處理機的操作嚴格按照程序結構所指定的次序執行。
- 封閉性:程序一旦開始執行,其計算結果不受外界因素影響。
- 可再現性:只要程序執行時的環境和初始條件相同,每次重復執行都將獲得相同的結果。
2.3、程序的並發執行及其特征
1.程序的並發執行
所謂程序的並發執行是指:若干個程序同時在系統中執行,這些程序的執行在時間上是重疊的,一個程序的執行尚未結束,另一個程序的執行已經開始。
程序並發執行的特征:
- 間斷性
由於資源共享和相互合作,並發執行的程序間形成了相互制約關系,導致程序的運行過程出現“執行—暫停—執行”的現象。 - 失去封閉性
程序在並發執行時,是多個程序共享系統中的資源,因此這些資源的狀態將由多個程序來改變。 - 不可再現性
由失去封閉性導致。同樣的初始條件,一個程序的多次重復執行,可得到不同的結果。