1. 程式人生 > >操作系統--進程同步(僅僅是輪廓--具體要根據實際項目再深入)

操作系統--進程同步(僅僅是輪廓--具體要根據實際項目再深入)

每一個 並發 nds and 註意 signal sign 存在 解決辦法

1.臨界資源:一次僅允許一個進程使用的資源稱為臨界資源。

2.臨界區:對臨界資源進行訪問或修改的代碼。

3.臨界區問題:多個進程並發的對臨界區進行訪問或修改(至少有一個修改),導致數據不一致。

  解決臨界區問題思路:相關的進程在訪問自己的臨界區的時候,不允許其他的進程進入自己的臨界區。保證修改操作是原子操作,不被打斷。

4.臨界區的解決辦法:

  Peterson算法:軟件實現

  硬件指令實現:TestAndSet指令

  信號量S:S是一個整型變量,允許兩個原子操作對S值進行修改,wait()和signal(),分別對值進行減1和加1。

  註意:信號量可以解決兩種問題:互斥訪問--臨界區問題,將信號量值設置為1,;也可以處理其他進程同步問題比如某種進程按照某執行次序執行

5.同步問題的一般解決思路

  分析問題中涉及的關系,互斥關系,同步關系,存在幾種關系就設置幾個信號量,每一個信號量代表一種同步或互斥關系。

  

  

操作系統--進程同步(僅僅是輪廓--具體要根據實際項目再深入)