操作系統中進程互斥的方式之一,信號量機制

信號量就是一個資源計數器,對信號量有兩個操作來達到互斥,分別是P和V操作。
一般情況是這樣進行臨界訪問或互斥訪問的:
設信號量值爲1,
當一個進程1運行時,使用資源,進行P操作,即對信號量值減1,也就是資源數少了1個。這是信號量值爲0。系統中規定當信號量值爲0是,必須等待,知道信號量值不爲零才能繼續操作。
這時如果進程2想要運行,那麼也必須進行P操作,但是此時信號量爲0,所以無法減1,即不能P操作,也就阻塞。這樣就到到了進程1排他訪問。
當進程1運行結束後,釋放資源,進行V操作。資源數重新加1,這是信號量的值變爲1.
這時進程2發現資源數不爲0,信號量能進行P操作了,立即執行P操作。信號量值又變爲0.次數進程2咱有資源,排他訪問資源。
這就是信號量來控制互斥的原理。
發佈了22 篇原創文章 · 獲贊 20 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章