gogo专业大尺度亚洲高清人体,美女张开双腿让男生桶,亚洲av无码一区二区三区鸳鸯影院,久久久久国产精品人妻


VxWorks任務(wù)狀態(tài)的轉(zhuǎn)換

分享到:
           

    在VxWorks中,任務(wù)的基本狀態(tài)分為5種:就緒態(tài)、休眠態(tài)、延遲態(tài)、懸置態(tài)、運(yùn)行態(tài)。

    就緒態(tài)是指,任務(wù)已經(jīng)獲得除了CPU之外的所有其他資源,所等待的只是CPU的運(yùn)行,一旦其他任務(wù)釋放了CPU資源,該任務(wù)就可以開(kāi)始運(yùn)行。

    休眠態(tài)表示任務(wù)正在等待除CPU之外的其他資源,即使當(dāng)前CPU資源可以使用該任務(wù)也無(wú)法運(yùn)行,通常也叫作阻塞狀態(tài)。

    處于延遲態(tài)的任務(wù)表示在其執(zhí)行期間主動(dòng)放棄了CPU資源并處于一種等待延遲時(shí)間的狀態(tài),這種任務(wù)不需要獲取任何資源,所需要等待的僅僅是一段時(shí)間。

    懸置態(tài)是一種用于調(diào)試的狀態(tài),處于這種狀態(tài)的任務(wù)不會(huì)因?yàn)槠洳贿\(yùn)行而導(dǎo)致?tīng)顟B(tài)的轉(zhuǎn)換。

    整個(gè)系統(tǒng)中處于運(yùn)行態(tài)的任務(wù)只能有一個(gè)(單核心系統(tǒng)),這樣的任務(wù)不缺少任何資源,也不需要等待時(shí)間延遲,通常其是由高優(yōu)先級(jí)的就緒態(tài)任務(wù)轉(zhuǎn)換而來(lái)的。如果所有用戶任務(wù)都不能處于就緒狀態(tài),系統(tǒng)將會(huì)運(yùn)行一個(gè)IDLE任務(wù)。

    除了這些基本狀態(tài)之外,根據(jù)不同的組合還可以列出下面的狀態(tài):延遲態(tài)+S、懸置態(tài)+S、懸置態(tài)+T、懸置態(tài)+S+T以及帶有繼承優(yōu)先級(jí)處于任何狀態(tài)的任務(wù)(也就是延遲態(tài)、休眠態(tài)、懸置態(tài)三者之間的組合)。

    表1.1中列出了VxWorks中任務(wù)可能出現(xiàn)的狀態(tài),每個(gè)狀態(tài)的后面都有一個(gè)簡(jiǎn)要地說(shuō)明。圖1.1給出的任務(wù)基本狀態(tài)轉(zhuǎn)換圖中描繪了任務(wù)基本狀態(tài)的轉(zhuǎn)換以及狀態(tài)之間的關(guān)系。

    表1.1                                    任務(wù)狀態(tài)

狀  態(tài) 描  述
就緒態(tài) 任務(wù)正在等待CPU資源
休眠態(tài) 任務(wù)正在等待除CPU資源之外的其他資源
延遲態(tài) 任務(wù)正在等待一定時(shí)間的延時(shí)
懸置態(tài) 任務(wù)無(wú)法執(zhí)行,主要是用于調(diào)試的一種狀態(tài)。這種狀態(tài)僅影響任務(wù)的執(zhí)行而不影響任務(wù)狀態(tài)的轉(zhuǎn)換。處于阻塞掛起狀態(tài)的任務(wù)仍然可以被解鎖,處于睡眠掛起的任務(wù)仍然可以被喚醒
延遲態(tài)+ S 處于睡眠掛起的任務(wù)狀態(tài)
懸置態(tài)+ S 處于阻塞掛起的任務(wù)狀態(tài)
懸置態(tài)+ T 帶有超時(shí)值的處于阻塞的任務(wù)狀態(tài)
懸置態(tài)+ S + T 帶有超時(shí)值的處于阻塞且掛起的任務(wù)狀態(tài)
state + I 帶有繼承優(yōu)先級(jí)處于state狀態(tài)的任務(wù)

    
圖1.1 任務(wù)基本狀態(tài)轉(zhuǎn)換

    任務(wù)狀態(tài)的轉(zhuǎn)換主要原因有兩個(gè):等待資源和放棄CPU資源。放棄CPU資源將使任務(wù)處于延遲態(tài),等待CPU資源將使任務(wù)處于就緒態(tài),等待其他資源的任務(wù)則處于休眠態(tài)。這里所指的其他資源包括信號(hào)量、外部設(shè)備、消息隊(duì)列等,凡是程序運(yùn)行所需要用到的都可以歸結(jié)到這個(gè)范圍。

    表1.2列出了任務(wù)狀態(tài)轉(zhuǎn)換以及可能引發(fā)這些轉(zhuǎn)換的函數(shù)。這些函數(shù)中大多是系統(tǒng)提供的操作API,任務(wù)狀態(tài)的轉(zhuǎn)換可以通過(guò)這些函數(shù)完成但并不局限于這些方法。

    表1.2                                                     任務(wù)狀態(tài)轉(zhuǎn)換

狀 態(tài) 轉(zhuǎn) 換 函 數(shù)
就緒態(tài)→懸置態(tài) semTake( )/msgQReceive( )
就緒態(tài)→延遲態(tài) taskDelay( )
就緒態(tài)→休眠態(tài) taskSuspend( )
懸置態(tài)→就緒態(tài) semGive( )/msgQSend( )
懸置態(tài)→休眠態(tài) taskSuspend( )
延遲態(tài)→就緒態(tài) expired delay
延遲態(tài)→休眠態(tài) taskSuspend( )
休眠態(tài)→就緒態(tài) taskResume( )/taskActivate( )
休眠態(tài)→懸置態(tài) taskResume( )
休眠態(tài)→延遲態(tài) taskResume( )

    推薦課程:VxWorks應(yīng)用開(kāi)發(fā)培訓(xùn)班(TSVW0701)| VxWorks BSP開(kāi)發(fā)高級(jí)班(TSVG0701)

   熱點(diǎn)鏈接:

   1、Android程序開(kāi)發(fā)好學(xué)嗎
   2、嵌入式linux int進(jìn)程詳解
   3、5種常用Android數(shù)據(jù)存儲(chǔ)方法
   4、Windows下Android開(kāi)發(fā)環(huán)境的搭建
   5、嵌入式培訓(xùn)資料:C語(yǔ)言程序結(jié)構(gòu)

更多新聞>>