四、 程序的併發執行

宏觀上看是多個程序同時執行,微觀上看是多個程序分時佔用CPU。這種程序的運行方式爲併發執行。

方法執行時的新特徵:

間斷性:程序在比並發執行時,由於它們共享系統資源,以及爲完成同一項任務而相互合作,致使在這些併發執行的程序之間形成了相互制約的關係。(當圖中C1已經數據處理完畢時,I2還沒有輸入那麼C2就得進入暫停,當使C2暫停的因素消失後(I2輸入),程序繼續執行)由此可見,相互制約將導致併發程序具有“執行—暫停—執行”這種間斷性的活動規律

失去封閉性:當系統中存在多個可以併發執行的程序時,系統中的各個資源將爲它們做所共享,而這些資源的狀態也有這些程序來改變,致使在其中任一程序在運行時,其環境都必然會收到其它程序的影響。Eg,當處理機已分配給某個進=進程運行時,其他的程序必須等待。

不可再現性:當程序併發執行時,由於失去了封閉性,也導致失去了不可再現性。Eg,有兩個循環程序A,B它們共享一個變量N。程序A每執行一次都要執行N=N+1操作,程序每執行一次都要print(N),然後把N置成0,程序AB以不同的速度運行。這樣的話會出現三種不同的結果,多以程序在併發執行時,由於失去了封閉性,其計算結果必將與併發程序的執行速有關,從而使程序失去了可再現性。

對併發執行的程序如果加以管理就能保證程序的可再現性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章