系统架构设计师考试知识点整理-3:信号量与PV操作
出現場景
進程之間會出現互斥和同步兩種關系。為了處理這兩種情況,提出信號量和PV操作。
1.信號量:是一種特殊的變量,變現形式是一個整型S和一個隊列。
2.P操作:S=S-1,若S<0,進程暫停執行,進入等待序列。
3.V操作:S=S+1,若S<=0,喚醒等待隊列中的一個進程。
互斥控制
如圖:
?
1.為了保護共享資源,不讓多個進程同時訪問這個共享資源。
2.一次只允許一個進程訪問的資源稱謂臨界資源。
3.信號量S的初值應該為1,該值表示可以允許多少個進程進入,當S<0時,其絕對值就是等待使用臨界資源的進程數,也就是等待隊列中的進程數。
4.當一個進程從臨界區出來時,執行V 操作(S=S+1),如果等待隊列中還有進程(S<=0),則調入一個新的進程進入(喚醒)。
同步控制
如圖:
?
1.進程A在進程B到達L2以前,不應該前進到超過L1點。
2.要設置信號量S的初值為0,如果進程A先執行到L1,那么執行P操作(S=S-1)后,則S<0,就停止執行,直到進程B執行到L2時,將執行V操作(S=S+1),喚醒A以繼續操作。
理解PV操作
1.信號量與PV操作是用來解決并發問題的,在并發問題中最重要的就是互斥與同步兩個關系。
2.信號量的初值通常表示資源的可用數,而且對于初始為0的信號量,會先做V操作。
3.在資源使用之前,將會使用P操作;在資源只用之后,使用V操作。
4.在互斥關系中,PV操作是在一個進程中成對出現的,而在同步關系中,PV操作一定是在兩個進程甚至是在多個進程中成對的出現。
總結
以上是生活随笔為你收集整理的系统架构设计师考试知识点整理-3:信号量与PV操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统架构设计师考试知识点整理-2:进程的
- 下一篇: Winform控件-DevExpress