怎樣避免競爭條件?

進程間通信主要研究以下幾個問題:
(1):進程如何把信息傳遞給另一個
(2):在多個進程的活動中不會出現交叉
(3):進程執行順序正確性
1:競爭條件,兩個或多個進程讀寫某些共享數據,最後結果取決於進程運行的精確時序,稱爲競爭條件,包含競爭條件的程序會在極少數情況下出現錯誤。
怎樣避免競爭條件?

避免競爭現象,實際上就是找到某種途徑阻止多個進程同時讀寫共享的數據,(即互斥);
互斥就是以某種手段來確保一個進程在使用一個共享變量文件或文件時,其他進程不能做同樣的操作。

好的解決競爭條件的方案:
我們把對共享內存進行訪問的程序片段稱作臨屆區域,或者是臨屆區。
(1):任何兩個進程不能同時處於其臨界區;
(2):不應CPU的速度和數量做任何假設;
(3):臨界區外運行的進程不得阻塞其他進程;
(4):不得是進程無限期等待進入臨界區。

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