操作系統(tǒng)——信號(hào)量機(jī)制

整型信號(hào)量

信號(hào)量定義為一個(gè)整型量 ? ?根據(jù)初始情況賦相應(yīng)的值 ? ?僅能通過(guò)兩個(gè)原子操作來(lái)訪問(wèn)

P操作:

wait(s):
? ? while s<=0 do no-op;
? ? s:s-1;

V操作:

signal(s):
? ? s:=s+1;

記錄型信號(hào)量

整型信號(hào)量符合”有限等待“原則 ? ?但不符合”讓權(quán)等待“原則

改進(jìn):
? ? 條件不符時(shí)應(yīng)能夠主動(dòng)放棄

P操作:

wait():
? ? S.value = S.value - 1;
? ? if?S.value < 0? then? block(S,L)

V操作:

signal():
? ? ?S.value = S.value+ 1;
? ? ?if?S.value <= 0 then wakeup(S,L)

信號(hào)量的基本應(yīng)用

1、實(shí)現(xiàn)進(jìn)程互斥?

2、實(shí)現(xiàn)進(jìn)程間的前驅(qū)關(guān)系(有序)

AND型信號(hào)量

出現(xiàn)原因:
????一些應(yīng)用往往需要兩個(gè)或多個(gè)共享資源,而不是前述的一個(gè)資源。進(jìn)程同時(shí)要求的共享資源越多,發(fā)生死鎖可能性越大。

解決思想:
? ? ?一次性分配給進(jìn)程所需資源,用完一起釋放。Wait操作時(shí)對(duì)它所有需要的資源都要判斷,有AND條件,故稱“AND同步”、“同時(shí)wait”。

信號(hào)量機(jī)制的不足

信號(hào)量的控制分布在多個(gè)進(jìn)程中
? ? 1、正確性分析困難;
? ? 2、分散的P、V操作;易出錯(cuò),使用不當(dāng)可能導(dǎo)致死鎖。
? ? 3、修改、維護(hù)困難;易讀性差,任一修改都可能影響全局;測(cè)試期間發(fā)現(xiàn)錯(cuò)誤困難,及時(shí)發(fā)現(xiàn)也不容易定位出錯(cuò)位置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容