進程間關系


進程同步:

定義:進程之間這種相互合作、協同工作的關系稱為進程的同步。

簡單來說就是:多個相關進程在執行次序上的協調。

制約關系:直接制約

 

進程互斥:

臨界資源:也稱獨占資源,是指在一段時間內只允許一個進程訪問的資源。例如打印機,磁帶機,也可以是進程共享的數據、變量等。

定義:當多個進程因為爭奪臨界資源而互斥執行稱為進程的互斥。

制約關系:間接制約。

 

臨界資源處理不當帶來的問題

1.執行結果錯誤

臨界區:與臨界資源操作相關的程序段。

2.死鎖

在並發系統中,程序執行結果的正確性不僅取決於自身的正確性,還與其在執行過程中能否正確的與其他進程實施同步或互斥有關。必須對臨界資源的訪問進行控制。

 

 

互斥解決方案:

*關中斷法(開關中斷指令)

也稱為硬件鎖,是實現互斥最簡單的方法

做法:每個進程在進入臨界區后先關中斷,屏蔽其他請求,在離開之前再開中斷。

優點:實現簡單

缺點:中斷被關閉后,CPU不再響應任何外部事件,此時進程將會獨占CPU,直至開啟中斷,如果中斷關閉時間過長,會造成嚴重后果,因此把開關中斷的權利交給用戶進程是很不明智地的。

 

*鏡變量法(測試和設置指令)

做法:設置一個共享(鎖)變量W,初值為0.當一個進程想進入其他臨界區時,它首先測試這把鎖。如果鎖的值為0,則進程將其置為1並進入臨界區。若鎖已經為1,則進程等待直到變為0.於是,0就表示臨界區內沒有進程,1表示已經有某個進程進入了臨界區。

 

同步機制應遵循下述四條准則

*空閑讓進

*忙則等待

*有限等待

*讓權等待

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM