作業系統互斥的軟體演算法(turn程式有個不懂)

時間 2021-07-21 02:10:52

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就是這樣的 凌筱溪 嚴格意義上說,自由軟體 和 自由作業系統 是母概念和子概念的關係。所以,籠統的說 自由軟體作業系統 的概念是有些彆扭的。在這裡,我理解,樓主想問的是 自由作業系統 的概念。說到 自由...