學習筆記(08):2020軟考軟件設計師--基礎知識實戰培訓視頻-操作系統--進程管理(一)...

立即學習:https://edu.csdn.net/course/play/7883/161187?utm_source=blogtoedu

3.2 處理機管理(進程管理)

二.進程互斥關與同步

1.進程間兩種形式的制約關係

(1) 間接相互制約關係---源於資源共享

(2) 直接相互制約關係---源於進程合作

2.臨界資源

  • 臨界資源(Critical Resource):把一段時間內只允許一個進程訪問的資源稱爲臨界資源或獨佔資源(特點:一定要互斥訪問)
  • 臨界區(Critical Section):每個進程中訪問臨界資源的那段代碼稱爲臨界區

保證進程不同時進入臨界區,就能保證進程互斥的訪問臨界資源.

三.信號量機制

  • 信號量是OS提供的管理公有資源的有效手段.
  • 信號量是一個整數,當信號量大於等於零時,代表可供併發進程使用的資源數量,當信號量小於零時,表示處於阻塞態進程的個數.

Wait 操作: (P操作)

  • 申請資源,減量操作,S.value:=S.value-1
  • 當S.value<0時,表示資源分配完,進行自我阻塞.

Signal操作:(V操作)

  • 釋放資源,增量操作,S.value=S.value+1
  • 當S.value<=0,喚醒S.L鏈表中的等待進程.

四.信號量的應用

比如:打印機 

  1. 利用信號量實現進程互斥(模式)(第二容易考到)
  2. 利用信號量實現前驅關係(模式)(軟設第一容易考到)
  3. 利用記錄型信號量實現同步(模式)(第三容易考到)

 

1.利用信號量實現進程互斥(模式)

爲使多個進程互斥的訪問某臨界資源,須爲該資源設置一互斥信號量mutex,並設其初始值爲1,然後將各進程訪問資源的臨界區CS置於wait(mutex)和signal(mutex)之間即可.

wait和signal一定是成對出現的

注意:實現互斥資源的,初值一定是互斥資源的個數.

2.利用信號量實現前驅關係(模式)(歷年上午考試經常考到)

設有兩個併發執行的進程P1和P2,P1中有語句S1,P2有語句S2,希望在S1執行後再執行S2.

使進程P1和P2共享一個公用信號量S,並賦予其初值爲0.

注意:實現前驅關係的,初值一定是0.有幾個有向邊就設幾個信號量.

3.利用記錄型信號量實現同步(模式)

P1,p2兩進程因合作完成一項任務而共用一個變量x.

進程p2將處理結果送入x;進程P1將x的結果打印.

 

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