午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

單板任務(wù)異常檢測及處理方法

文檔序號:6547213閱讀:510來源:國知局
專利名稱:單板任務(wù)異常檢測及處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及實時多任務(wù)系統(tǒng),尤指一種單板任務(wù)異常檢測及處理方法。
背景技術(shù)
目前實時多任務(wù)系統(tǒng)已經(jīng)在各個領(lǐng)域得到越來越廣泛的應(yīng)用。所述實時多任務(wù)系統(tǒng)是根據(jù)需要由不同的任務(wù)來完成的,這些任務(wù)從宏觀上來看是并發(fā)執(zhí)行的。一般情況下,如果系統(tǒng)中的某個任務(wù)出現(xiàn)不可恢復(fù)的異常,如程序跑飛,數(shù)據(jù)讀寫錯誤,內(nèi)存越界等,操作系統(tǒng)會把該任務(wù)掛起(Suspend),隔離起來,以便減少對其他任務(wù)的影響,這時如果查詢該任務(wù)的狀態(tài)應(yīng)該為“Suspend”。
通常實時多任務(wù)系統(tǒng)設(shè)計中,各個單板都采用看門狗來防止CPU死機或者某個任務(wù)長時間獨占CPU資源,由一個任務(wù)定時觸發(fā)清狗的,如果超時沒有清狗,則將導(dǎo)致整個系統(tǒng)復(fù)位,這是為了防止異常情況系統(tǒng)死機。但是這樣的設(shè)計存在一個缺陷如果某些任務(wù)由于發(fā)生異常而被操作系統(tǒng)掛起,只是影響到一些或一個任務(wù),此時由于喂狗任務(wù)是正常的,所以看門狗不起作用,則系統(tǒng)不會復(fù)位,但系統(tǒng)是不能正常運行和提供業(yè)務(wù)的。因此無法及時發(fā)現(xiàn)任務(wù)異常,定位問題,也就不能及時解決問題,造成系統(tǒng)不穩(wěn)定。

發(fā)明內(nèi)容
本發(fā)明解決的問題是提供一種單板任務(wù)異常檢測及處理方法,有效定位任務(wù)異常問題及及時處理異常任務(wù)。
為解決上述問題,本發(fā)明單板任務(wù)異常檢測方法包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果。
相應(yīng)地,本發(fā)明單板任務(wù)異常處理方法包括啟動監(jiān)控任務(wù),掃描系統(tǒng)中登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;如果任務(wù)異常,則執(zhí)行該任務(wù)復(fù)位操作;如果該任務(wù)無法復(fù)位,則執(zhí)行單板復(fù)位操作。
本發(fā)明另一單板任務(wù)異常處理方法包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果;通過用戶命令從檢測結(jié)果中獲取記錄的任務(wù)異常信息。
在單板初始化時創(chuàng)建監(jiān)控任務(wù)。所述監(jiān)控任務(wù)定時啟動。任務(wù)狀態(tài)信息通過調(diào)用待測任務(wù)對應(yīng)的任務(wù)控制塊獲得或通過調(diào)用函數(shù)TaskinfoGet()獲得指定任務(wù)狀態(tài)信息。
任務(wù)復(fù)位操作通過系統(tǒng)調(diào)用直接復(fù)位該任務(wù)或者先刪除該任務(wù),再重新創(chuàng)建該任務(wù)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明為多任務(wù)實時系統(tǒng)增加一個獨立的監(jiān)控任務(wù),這個監(jiān)控任務(wù)可以應(yīng)用于任何類似的實時系統(tǒng)中,監(jiān)控其他任務(wù)的狀態(tài),判斷是否異常,并對異常的任務(wù)進(jìn)行處理,這樣能夠保證系統(tǒng)正常運行,延長系統(tǒng)的MTBF(平均故障時間),提高系統(tǒng)的可靠性。


圖1是本發(fā)明單板任務(wù)異常檢測方法;圖2是本發(fā)明單板任務(wù)異常處理方法。
具體實施例方式
本發(fā)明是為多任務(wù)實時系統(tǒng)增加一個獨立的監(jiān)控任務(wù),該監(jiān)控任務(wù)可以應(yīng)用于任何類似的實時系統(tǒng)中。這個監(jiān)控任務(wù)的目的就是監(jiān)視系統(tǒng)中其他任務(wù)的狀態(tài),判斷是否正常,并對異常的任務(wù)進(jìn)行處理,這樣能夠及時定位問題,采取措施,保證系統(tǒng)正常運行,延長系統(tǒng)的MTBF(平均故障時間),提高系統(tǒng)的可靠性。
請參照圖1所示,本發(fā)明單板任務(wù)異常檢測方法,包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果以便問題定位,例如,可以通過用戶命令從檢測結(jié)果中獲取記錄的任務(wù)異常信息,作為調(diào)測手段是很有效的。
請參照圖2所示,本發(fā)明單板任務(wù)異常處理方法,包括啟動監(jiān)控任務(wù),掃描系統(tǒng)中登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;如果任務(wù)異常,則執(zhí)行該任務(wù)復(fù)位操作;如果該任務(wù)無法復(fù)位,則執(zhí)行單板復(fù)位操作。
在單板初始化時,創(chuàng)建系統(tǒng)的監(jiān)控任務(wù)以及對應(yīng)的周期定時器,周期定時器的目的是周期性地向監(jiān)控任務(wù)消息隊列發(fā)送定時器消息,觸發(fā)監(jiān)控任務(wù)進(jìn)行任務(wù)監(jiān)控。之后該監(jiān)控任務(wù)從任務(wù)消息隊列中獲取消息,分辨消息類型,如果是監(jiān)控任務(wù)周期定時器消息,則開始掃描監(jiān)測任務(wù)異常并進(jìn)行相關(guān)處理;如果是用戶命令消息,則根據(jù)用戶指令獲取并上報系統(tǒng)中異常任務(wù)相關(guān)信息。
在RTOS(支持實時系統(tǒng)運行的操作系統(tǒng))環(huán)境下,操作系統(tǒng)在每個任務(wù)創(chuàng)建時都為這個任務(wù)分配一個獨立的任務(wù)控制塊(TCB),各個任務(wù)的相關(guān)信息,如任務(wù)入口、堆棧地址、堆棧大小、任務(wù)狀態(tài)、堆棧使用情況等信息都是存放在這個任務(wù)控制塊中的??梢酝ㄟ^調(diào)用實時操作系統(tǒng)提供的系統(tǒng)調(diào)用接口從TCB中獲取該任務(wù)狀態(tài)信息,如,調(diào)用函數(shù)taskTcb()獲取TCB中對應(yīng)任務(wù)狀態(tài)信息。實時操作系統(tǒng)的TCB結(jié)構(gòu)可以查看相關(guān)的手冊得到,這里不詳細(xì)列出?;蛘咧苯诱{(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用獲取各個任務(wù)狀態(tài)信息,例如,直接調(diào)用函數(shù)taskInfoGet(),可以獲取指定任務(wù)的任務(wù)狀態(tài);或者采用以上方法的組合判斷。
如果任務(wù)狀態(tài)為以下幾種狀態(tài),則認(rèn)為該任務(wù)異常SUSPEND、DELAY+S、PEND+S或PEND+S+T;另外可以通過堆棧使用情況判斷是否存在越界,越界的任務(wù)則認(rèn)為異常;或者采用以上方法的組合判斷。
在任務(wù)出現(xiàn)異常時,直接復(fù)位該任務(wù),重新初始化,復(fù)位后返回獲取待測任務(wù)狀態(tài)信息步驟。其中任務(wù)復(fù)位實現(xiàn)方式調(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用,如taskRestart(int tid),可以復(fù)位指定的任務(wù),其中tid為任務(wù)的標(biāo)識符;或者,先刪除該任務(wù),然后重新創(chuàng)建該任務(wù)來重啟該任務(wù)用操作系統(tǒng)的系統(tǒng)調(diào)用taskDelete()可以刪除指定的任務(wù),用taskSpawn()可以重新創(chuàng)建改任務(wù)。
如果任務(wù)無法復(fù)位,則進(jìn)行單板復(fù)位。
下面以vxWorks環(huán)境為例說明該任務(wù)的實現(xiàn)。
vxWorks提供的相關(guān)系統(tǒng)調(diào)用如下taskLib.h定義與任務(wù)管理相關(guān)的系統(tǒng)調(diào)用;taskIdVerify()-verify the existence of a task;taskTcb()-get the task control block for a task ID;taskIsSuspended()-check if a task is suspended;監(jiān)控任務(wù)實現(xiàn)的架構(gòu)如下Void taskMonitor(void){for(;;){從消息該任務(wù)消息隊列中獲取消息;switch(消息類型){case掃描時間到
循環(huán)順序掃描系統(tǒng)中所有需要監(jiān)控的任務(wù)列表;if(任務(wù)異常){記錄該任務(wù)檢測結(jié)果;復(fù)位該任務(wù);if(該任務(wù)無法恢復(fù)){復(fù)位單板;}}case用戶命令獲取任務(wù)狀態(tài)信息;上報任務(wù)狀態(tài)信息;default...
}}}本發(fā)明提供一種簡單有效的實時多任務(wù)環(huán)境下檢測和處理任務(wù)異常的方法,提高系統(tǒng)的可靠性。同時通過這種方法還可以把異常任務(wù)的檢測結(jié)果獲取出來,以方便問題的定位和解決,也增加系統(tǒng)調(diào)測的手段。
權(quán)利要求
1.一種單板任務(wù)異常檢測方法,其特征在于,包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果。
2.如權(quán)利要求1所述的單板任務(wù)異常檢測方法,其特征在于,所述監(jiān)控任務(wù)定時啟動。
3.如權(quán)利要求1所述的單板任務(wù)異常檢測方法,其特征在于,還包括在單板初始化時創(chuàng)建監(jiān)控任務(wù)。
4.如權(quán)利要求1至3任一項所述的單板任務(wù)異常檢測方法,其特征在于,任務(wù)狀態(tài)信息通過調(diào)用待測任務(wù)對應(yīng)的任務(wù)控制塊獲得或通過調(diào)用函數(shù)TaskinfoGet()獲得指定任務(wù)狀態(tài)信息。
5.一種單板任務(wù)異常處理方法,其特征在于,包括啟動監(jiān)控任務(wù),掃描系統(tǒng)中登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;如果任務(wù)異常,則執(zhí)行該任務(wù)復(fù)位操作;如果該任務(wù)無法復(fù)位,則執(zhí)行單板復(fù)位操作。
6.如權(quán)利要求5所述的單板任務(wù)異常處理方法,其特征在于,任務(wù)復(fù)位操作通過系統(tǒng)調(diào)用直接復(fù)位該任務(wù)或者先刪除該任務(wù),再重新創(chuàng)建該任務(wù)。
7.如權(quán)利要求5或6所述的單板任務(wù)異常處理方法,其特征在于,還包括在單板初始化時創(chuàng)建監(jiān)控任務(wù)。
8.如權(quán)利要求5或6所述的單板任務(wù)異常處理方法,其特征在于,任務(wù)狀態(tài)信息通過調(diào)用待測任務(wù)對應(yīng)的任務(wù)控制塊獲得或通過調(diào)用函數(shù)TaskinfoGet()獲得指定任務(wù)狀態(tài)信息。
9..一種單板任務(wù)異常處理方法,其特征在于,包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果;通過用戶命令從檢測結(jié)果中獲取記錄的任務(wù)異常信息。
全文摘要
一種單板任務(wù)異常檢測及處理方法,其中單板任務(wù)異常檢測方法包括啟動監(jiān)控任務(wù),掃描登記列表中的待測任務(wù);獲取待測任務(wù)狀態(tài)信息;判斷待測任務(wù)是否異常;記錄檢測結(jié)果。所述處理方法為如果任務(wù)異常,則執(zhí)行該任務(wù)復(fù)位操作;如果該任務(wù)無法復(fù)位,則執(zhí)行單板復(fù)位操作?;蛘咄ㄟ^用戶命令從檢測結(jié)果中獲取記錄的任務(wù)異常信息。這樣能夠保證系統(tǒng)正常運行,延長系統(tǒng)的MTBF(平均故障時間),提高系統(tǒng)的可靠性。
文檔編號G06F11/00GK1855066SQ200510066188
公開日2006年11月1日 申請日期2005年4月21日 優(yōu)先權(quán)日2005年4月21日
發(fā)明者余明 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1