進程互斥的要求與實現方法

臨界資源:進程獨佔型的硬件和共享的數據結構和文件。臨界區:使用臨界資源的程序段。

要求:

     空閒讓進,忙則等待,有限等待,讓權等待。

實現方法:

  1. 軟件 :通過全局變量來控制程序執行,但是程序在檢測標誌變量後,修改標誌變量前發生中斷,然會有多個進程進入臨界區。
  2. 硬件:
    • 關閉總中斷
    • 將軟件的方法使用機器指令封裝好,然後再調用,解決了因中斷導致的錯誤。但是會有忙等現象。
    • 機器指令包括:test&set 以及exchange
  3. 信號量
    • 信號量是一個信號燈一樣的結構體變量,其成員包括:一個整型變量和一個隊列。
    • ​​​​​​​使用wait和signal指令,wait指令申請資源,signal指令釋放資源。
    • 將暫時不能執行的程序放入阻塞隊列。(這樣解決了忙等問題)
  4. 管程
  5. 消息傳遞

 

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