這篇文章將為大家詳細(xì)講解有關(guān)vxworks中Task的狀態(tài)有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)陽新,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
之前我們提到過,在多任務(wù)系統(tǒng)里,任務(wù)可能有不同的狀態(tài),例如Waiting或Ready。事實上,VxWorks里的任務(wù)可能有更多的狀態(tài),主要有Ready(就緒態(tài))、Pend(阻塞態(tài))、Delay(延時態(tài))和Suspend(掛起態(tài))。還有一種特殊的狀態(tài)Stop,以及多種組合狀態(tài)。
狀態(tài) | 描述 |
Pend | 任務(wù)在等待某個系統(tǒng)資源(例如信號量、IO) |
Delay | 任務(wù)在等待一段時間,也算是一種資源吧 |
Ready | 除了可能等待CPU,任務(wù)不需要等待任何資源 |
Suspend | 任務(wù)被掛起,不能繼續(xù)執(zhí)行。掛起的原因有兩種: |
Stop | 任務(wù)被Debugger或ED&R機制或SIGSTOP信號停下 |
Delay+S | 任務(wù)延時并被掛起 |
Pend+S | 任務(wù)阻塞并被掛起 |
Pend+T | 任務(wù)阻塞并延時 |
Stop+P | 任務(wù)阻塞并被停下 |
Stop+T | 任務(wù)延時并被停下 |
Stop+S | 任務(wù)停下并被掛起 |
PEND+S+T | 任務(wù)阻塞并延時并被掛起 |
STOP+P+S | 任務(wù)阻塞并被掛起并被Debugger停下 |
STOP+P+T | 任務(wù)阻塞并延時并被Debugger停下 |
STOP+T+S | 任務(wù)被掛起并延時并被Debugger停下 |
ST+P+S+T | 任務(wù)阻塞并延時并被掛起并被Debugger停下 |
以上任意狀態(tài)+I | 任務(wù)的優(yōu)先級是繼承的 |
在VxWorks的Shell里通過命令i可以看到任務(wù)的狀態(tài):
應(yīng)用程序或開發(fā)工具可以通過調(diào)用系統(tǒng)函數(shù)來改變?nèi)蝿?wù)的狀態(tài),例如通過taskSpawn()創(chuàng)建的任務(wù)會立即進入Ready隊列,而通過taskCreate()或taskOpen(VX_TASK_NOACTIVATE)創(chuàng)建的任務(wù)只是在Suspend隊列中實例化,然后需要通過taskActivate()才能進入Ready隊列。
常見的狀態(tài)轉(zhuǎn)換關(guān)系如下:
VxWorks的內(nèi)核維護著當(dāng)前每個任務(wù)的狀態(tài),將它們放入不同的隊列。而處于Ready隊列最前端的任務(wù)就是正在使用CPU執(zhí)行的任務(wù),因此把這個任務(wù)處于的狀態(tài)又可以叫做Executing(執(zhí)行態(tài))。
從上圖可以看到,在不同隊列里排隊的,其實就是每個任務(wù)的TCB。
那么到底是哪個任務(wù)才可以處于Ready隊列的最前端呢?這就涉及到系統(tǒng)的調(diào)度策略了,咱們后文慢慢道來。
關(guān)于“vxworks中Task的狀態(tài)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)站名稱:vxworks中Task的狀態(tài)有哪些
瀏覽路徑:http://aaarwkj.com/article8/pdehop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)、網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)