新聞中心
windows的三種進(jìn)程同步機(jī)制?
1. 臨界區(qū)

鶴城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
只能同步同一個(gè)進(jìn)程的線程之間的同步,因?yàn)榕R界區(qū)不能跨越進(jìn)程的邊界工作。也是因?yàn)榕R界區(qū)沒(méi)有name,所以不能跨進(jìn)程使用。
2. 互斥量
可以同步在相同進(jìn)程,或不同進(jìn)程間的線程進(jìn)行同步。所以互斥量是有name的,可以跨進(jìn)程使用。
3. 事件
在任何特定時(shí)間,事件只能處在兩種狀態(tài)的一種:引發(fā)(設(shè)置)或者調(diào)低(重置)。設(shè)置可以任務(wù)是出于信號(hào)狀態(tài),重置事件可以認(rèn)為是出于非信號(hào)狀態(tài)。
1. 互斥量: 采用互斥對(duì)象機(jī)制,只有擁有互斥對(duì)象的線程才有訪問(wèn)公共資源的權(quán)限。因?yàn)榛コ鈱?duì)象只有一個(gè),所以可以保證公共資源不會(huì)被多個(gè)線程同時(shí)訪問(wèn)。
2. 信號(hào)量: 它允許同一時(shí)刻多個(gè)線程來(lái)訪問(wèn)同一資源,但是需要控制同一時(shí)刻訪問(wèn)此資源的最大線程數(shù)量。
3. 事件(信號(hào)):通過(guò)通知操作的方式來(lái)保持多線程同步,還可以方便實(shí)現(xiàn)多線程優(yōu)先級(jí)的比較作。
4.臨界區(qū):臨界區(qū)對(duì)象和互斥對(duì)象非常相似,只是互斥量允許在進(jìn)程間使用,而臨界區(qū)只限制與同一進(jìn)程的各個(gè)線程之間使用,但是更節(jié)省資源,更有效率。
臨界區(qū): 當(dāng)多個(gè)線程訪問(wèn)一個(gè)獨(dú)占性共享資源時(shí),可以使用臨界區(qū)對(duì)象。擁有臨界區(qū)的線程可以訪問(wèn)被保護(hù)起來(lái)的資源或代碼段,其他線程若想訪問(wèn),則被掛起,直到擁有臨界區(qū)的線程放棄臨界區(qū)為止。
當(dāng)有n個(gè)并發(fā)進(jìn)程共享某個(gè)臨界資源時(shí),求互斥信號(hào)量的取值范圍?
信號(hào)量Semaphore用于:
對(duì)一個(gè)共享資源(互相排斥)訪問(wèn)的控制;表示一個(gè)事件的發(fā)生;讓兩個(gè)任務(wù)同步。
下面代碼中的信號(hào)量:shared_resource_sem用于對(duì)一個(gè)共享資源(相互排斥)訪問(wèn)的控制;而信號(hào)量key_down_sem則表示一個(gè)事件的發(fā)生。如果一個(gè)信號(hào)量的值大于0,則可以使用。如果信號(hào)量的值為0,則對(duì)該信號(hào)量的Pend操作將被放置在等待列表中。
對(duì)一個(gè)信號(hào)量進(jìn)行初始化時(shí),必須提供該信號(hào)量的初始值。初始值可以有以下三種:
0:當(dāng)信號(hào)量用于表示一個(gè)事件發(fā)生時(shí),如:
key_down_sem = OSSemCreate(0);1:當(dāng)信號(hào)量用于對(duì)一個(gè)共享資源訪問(wèn)的控制時(shí),如:
shared_resource_sem = OSSemCreate(1);
n:當(dāng)信號(hào)量用于表示允許任務(wù)n個(gè)相同的資源時(shí)。還應(yīng)該注意把信號(hào)量的初始化放在RTOS啟動(dòng)前
檢測(cè)系統(tǒng)中的常見(jiàn)信號(hào)有幾種類(lèi)型?
在計(jì)算機(jī)系統(tǒng)中,常見(jiàn)的信號(hào)有以下幾種類(lèi)型:
1. 中斷信號(hào)(Interrupt signal):用于中斷CPU正在執(zhí)行的程序,以便處理緊急事件或執(zhí)行其他任務(wù)。
2. 異常信號(hào)(Exception signal):也是用于中斷CPU正在執(zhí)行的程序,但是是由程序運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤引起的,例如除數(shù)為0、越界訪問(wèn)等。
3. 系統(tǒng)調(diào)用信號(hào)(System call signal):用于向操作系統(tǒng)發(fā)出請(qǐng)求,以便執(zhí)行特權(quán)操作或獲取系統(tǒng)資源。
4. 信號(hào)量(Semaphore):用于進(jìn)程之間同步和互斥,確保它們不會(huì)同時(shí)訪問(wèn)共享資源。
信號(hào)從廣義上講,它包含光信號(hào)、聲信號(hào)和電信號(hào)等。按照實(shí)際用途區(qū)分,信號(hào)包括電視信號(hào)、廣播信號(hào)、雷達(dá)信號(hào),通信信號(hào)等;按照所具有的時(shí)間特性區(qū)分,則有確定性信號(hào)和隨機(jī)性信號(hào)等。
按信號(hào)載體的物理特性:電、光、聲、磁、機(jī)械、熱信號(hào)。
按自變量的數(shù)目:一維信號(hào)、多維信號(hào)(二維信號(hào)、三維信號(hào)等)。
到此,以上就是小編對(duì)于進(jìn)程間信號(hào)量的使用的問(wèn)題就介紹到這了,希望這3點(diǎn)解答對(duì)大家有用。
網(wǎng)頁(yè)標(biāo)題:windows的三種進(jìn)程同步機(jī)制?windows進(jìn)程間信號(hào)量
文章路徑:http://www.5511xx.com/article/dpcphpi.html


咨詢
建站咨詢
