1樓:匿名使用者
先補充出
程序p1:
dowhile(true);
這是軟體實現臨界區互斥的乙個演算法
可以這麼理解
首先在程式的開頭宣告了int turn=0;
p0跟p1程序同時執行
程序p0可以執行到
while (turn!=0);這一語句
程序p1是跟程序p0同時執行的,p1程序也會執行到while (turn!=1);這一語句
由於turn的初始值是0
那麼p0中這一while語句會因為不滿足迴圈條件而終止。這樣就可以進入p0的臨界區**了
此時p1中這一while語句會因為滿足迴圈條件而陷入死迴圈,那麼p1程序就會卡在死迴圈這,無法進入臨界區。
while的作用就是製造死迴圈來限制程序進入臨界區對臨界資源的訪問,來實現互斥。
2樓:嬉哈風格
我記得c語言 當while(條件)後沒有括號的時候, 預設其下一行語句為迴圈體。
turn信標不是1就一直執行p0
3樓:匿名使用者
while (turn!=0);
迴圈體為空,就是什麼都不做。
可以這麼理解:
如果 turn = 0 ;
這句話跟沒寫一樣。
如果turn = 1;
程式在執行到這句話停止。
直到turn變成0,繼續向下執行。
作業系統中實現互斥操作可以有幾種方法
4樓:w證
在程序與線bai程中存在大量的並發問
du題,程序並zhi發的基礎是實現互斥dao的能力,也版就是說當系統將這種能權力賦予某個程序或者執行緒的時候,在其執行期間就可以排除其他的程序或者執行緒,常見的實現互斥的方法有以下幾種
1、軟體方法:dekker演算法、peterson演算法2、硬體演算法:借助作業系統的原語
3、訊號量的方法:整型訊號量也記錄型訊號量4、管程方法:乙個管程一次只能被乙個程序訪問5、程序通訊:共享儲存器系統、管道通訊系統和訊息傳遞通訊三種
作業系統中程序互斥的方式之一,訊號量機制,理解不了啊,求大神舉例說明
5樓:匿名使用者
其實很簡單呢,訊號量就是乙個資源計數器,對訊號量有兩個操作來達到互斥,分別是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占有資源,排他訪問資源。
這就是訊號量來控制互斥的原理。
希望能幫助到你,如果幫助到你,請採納為意見。
防毒軟體與作業系統的問題請教,電腦作業系統防毒軟體問題?
何苦我寂寞 卡巴斯基5.0 在本次測試中,卡巴斯基防病毒軟體依然表現搶眼,在病毒查殺技術上的領先地位依然穩固 目前比較不足的方面就是效能方面,但由於保障了病毒查殺的高度準確,效能方面的犧牲也就變得可以理解了 最新的5.0版本仍然保持了其控制面廣泛的優點,在常見的壓縮包和加殼檔案格式測試中,均表現完美...
作業系統屬於應用軟體還是系統軟體
作業系統當然屬於系統軟體,應用軟體都是安裝在系統裡面的。它們是包含與被包含的關係。作業系統屬於系統軟體? 幻翼高達 屬於,作業系統的全稱是作業系統軟體,它本質是個軟體。作業系統是管理計算機硬體與軟體資源的計算機程式,同時也是計算機系統的核心與基石。作業系統需要處理如管理與配置記憶體 決定系統資源供需...
什麼是自由軟體作業系統
應該說的是開源的軟體 和作業系統把?就是源 全部共享,可以自由更改發行的作業系統 現在的linux就是這樣的 凌筱溪 嚴格意義上說,自由軟體 和 自由作業系統 是母概念和子概念的關係。所以,籠統的說 自由軟體作業系統 的概念是有些彆扭的。在這裡,我理解,樓主想問的是 自由作業系統 的概念。說到 自由...