1. 程式人生 > >程序的描述與控制—前趨圖和程式執行

程序的描述與控制—前趨圖和程式執行

一、前趨圖和程式執行
1.前趨圖
所謂前趨圖,是指一個有向無迴圈圖,記為(DAG);用於描述程序之間執行的先後順序。
p1和p2存在著前驅關係(也可以寫成p1→p2),表示在p2開始執行之前p1必須完成,此時稱p1為p2的直接前驅,而稱p2為p1的直接後繼;並且把沒有前驅的結點稱為初始結點,把沒有後繼的結點成為最終結點。
2.程式的順序執行
(1)程式的順序執行:
I1代表輸入操作,C1代表計算機操作,P1代表列印操作;
在這裡插入圖片描述
(2)程式順序執行是的特特徵:
順序性,封閉性,可再現性。
3.程式併發執行
(1)程式的併發執行:
1)要符合前驅關係;2)併發不是隨意的,如C1,C2無法交替執行,只能順序執行,但是C2,P1則沒有嚴格時間關係;
在這裡插入圖片描述


又如:四個程式段
在這裡插入圖片描述
S1,S2間沒有嚴格的順序關係,CPU先排程那個沒有影響,但是若對有嚴格順序關係的程式排程錯誤,如S1,S3,執行與結果必然會產生問題。
(2)程式併發執行時的特徵:
提高了系統的吞吐量和資源的利用率,但共享系統資源,導致這些併發程式形成相互制約的關係,
1)間斷性(交替性):多道→程式併發執行→要共享系統的資源→形成相互制約的關係;“執行——暫停——執行”
2)失去封閉性:共享資源,資源由多道程式改變,(程式執行受其他程式的影響)
3)不可再現性:結果不確定,程式執行將沒有任何意義。

所以:多道併發應是“有控制的併發”
1.要“能控制”
2.要“合理控制”
用什麼控制?————程序