專利名稱:一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法
及裝置。
背景技術(shù):
嵌入式系統(tǒng)被定義為以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適 應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的特點(diǎn)是基本具備PC操作系統(tǒng)的所有功能,任務(wù)調(diào)度功能強(qiáng)大,能夠 處理復(fù)雜的任務(wù)調(diào)度。嵌入式操作系統(tǒng)支持不同優(yōu)先級(jí)任務(wù)的注冊(cè),即將不同的任務(wù)按照 對(duì)執(zhí)行實(shí)時(shí)性的要求注冊(cè)為不同的優(yōu)先級(jí)。在系統(tǒng)運(yùn)用過程中,操作系統(tǒng)能夠根據(jù)各個(gè)任 務(wù)對(duì)應(yīng)的優(yōu)先級(jí),將系統(tǒng)CPU (Central Processing Unit,中央處理器)資源分配給各個(gè)任 務(wù),各任務(wù)在獲取到CPU資源后,才能正常執(zhí)行。根據(jù)基于優(yōu)先級(jí)的任務(wù)調(diào)度機(jī)制,能夠保 證系統(tǒng)中各任務(wù)的有序執(zhí)行,并且能夠應(yīng)對(duì)多任務(wù)同時(shí)申請(qǐng)CPU資源的情況,即在多個(gè)任 務(wù)同時(shí)申請(qǐng)系統(tǒng)CPU資源時(shí),操作系統(tǒng)會(huì)優(yōu)先把CPU資源分配給優(yōu)先級(jí)較高任務(wù),那么,優(yōu) 先級(jí)較低的任務(wù)不能從優(yōu)先級(jí)較高的任務(wù)中搶占CPU資源,只有等待優(yōu)先級(jí)較高的任務(wù)執(zhí) 行完畢并釋放CPU資源后,該優(yōu)先級(jí)較低的任務(wù)才可以得到調(diào)度。在實(shí)際的操作系統(tǒng)運(yùn)行環(huán)境中,由于系統(tǒng)運(yùn)行環(huán)境的不理想,可能存在優(yōu)先級(jí)較 高的任務(wù)長時(shí)間占用CPU資源的情況,例如,優(yōu)先級(jí)較高的任務(wù)由于內(nèi)部邏輯出現(xiàn)錯(cuò)誤而 不主動(dòng)釋放所占用的CPU資源,當(dāng)該情況發(fā)生時(shí),CPU就會(huì)放棄優(yōu)先級(jí)較低任務(wù)的執(zhí)行以滿 足較高優(yōu)先級(jí)任務(wù)的執(zhí)行需求,從而導(dǎo)致優(yōu)先級(jí)較低的任務(wù)由于申請(qǐng)不到(或獲取不到) CPU資源而長時(shí)間得不到執(zhí)行。由于每個(gè)任務(wù)都有其規(guī)定的任務(wù)緊急(或松弛)程度,若一 個(gè)任務(wù)在其規(guī)定時(shí)間內(nèi)都得不到執(zhí)行,若系統(tǒng)不能及時(shí)發(fā)現(xiàn)本該執(zhí)行而未被執(zhí)行的任務(wù), 即不能確定出系統(tǒng)調(diào)度不正常的情況,從而導(dǎo)致系統(tǒng)的實(shí)時(shí)性下降,甚至導(dǎo)致系統(tǒng)紊亂。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法及裝 置,采用該技術(shù)方案,能夠?qū)η度胧较到y(tǒng)中的任務(wù)執(zhí)行狀態(tài)進(jìn)行監(jiān)控,從而能夠確定出系統(tǒng) 中任務(wù)的調(diào)度是否正常。本發(fā)明實(shí)施例通過如下技術(shù)方案實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控方法,包 括分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù);其中,所 述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量按照設(shè)定方式變化,所述對(duì) 應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制所述全局計(jì)數(shù)變量初始化;在所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局 計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了另一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控方法,包 括在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng) 中設(shè)定的全局計(jì)數(shù)變量初始化;以及在系統(tǒng)中的喂狗函數(shù)中增加一個(gè)執(zhí)行函數(shù),所述執(zhí)行 函數(shù)用于在所述喂狗函數(shù)被調(diào)用時(shí)控制全局計(jì)數(shù)變量按照設(shè)定方式變化;在所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否 到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。
根據(jù)本發(fā)明實(shí)施例的又一個(gè)方面,提供了一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控裝置,包 括注冊(cè)單元,用于分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的 任務(wù);其中,所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量按照設(shè)定方 式變化,所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制所述全局計(jì)數(shù)變量初始化;變量監(jiān)控單元,用于在所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制所述全局計(jì)數(shù)變量變化 后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未 被正常執(zhí)行。根據(jù)本發(fā)明實(shí)施例的又一個(gè)方面,提供了又一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控裝置, 包括注冊(cè)單元,用于在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),所述對(duì)應(yīng)最低優(yōu)先級(jí)的任 務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量初始化;以及在系統(tǒng)中的喂狗函數(shù)中增加一個(gè)執(zhí)行 函數(shù),所述執(zhí)行函數(shù)用于在所述喂狗函數(shù)被調(diào)用時(shí)控制全局計(jì)數(shù)變量按照設(shè)定方式變化;變量監(jiān)控單元,用于在所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后 的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。通過本發(fā)明實(shí)施例提供的技術(shù)方案,分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以 及對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),該對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制全局計(jì)數(shù)變量按照設(shè)定方式 變化,該對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制全局計(jì)數(shù)變量初始化;在對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù) 控制全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì) 應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。根據(jù)本發(fā)明技術(shù)方案,能夠根據(jù)全局計(jì)數(shù)變量的值對(duì) 系統(tǒng)中的任務(wù)的執(zhí)行狀態(tài)進(jìn)行監(jiān)控,由于對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)在運(yùn)行時(shí)會(huì)對(duì)該全局計(jì)數(shù) 變量初始化,因此,若對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,則該全局計(jì)數(shù)變量不能被初始 化,會(huì)隨著對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)的執(zhí)行而不斷變化,因此在全局計(jì)數(shù)變量的值達(dá)到設(shè)定 閾值時(shí),則可以確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,由于在嵌入式系統(tǒng)中,若對(duì)應(yīng)最 低優(yōu)先級(jí)的任務(wù)被執(zhí)行,則其他優(yōu)先級(jí)的任務(wù)也能夠被執(zhí)行,從而能夠根據(jù)對(duì)應(yīng)最低優(yōu)先 級(jí)的任務(wù)是否被正常執(zhí)行確定出系統(tǒng)中任務(wù)的調(diào)度狀況是否正常,進(jìn)而可以在確定系統(tǒng)中 任務(wù)的調(diào)度不正常(即對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行)時(shí)采取相應(yīng)的策略以保證系 統(tǒng)的性能。通過本發(fā)明實(shí)施例提供的技術(shù)方案,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),該對(duì) 應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制全局計(jì)數(shù)變量初始化;以及在系統(tǒng)中的喂狗函數(shù)中增加執(zhí)行 函數(shù),該執(zhí)行函數(shù)用于在所在的喂狗函數(shù)被調(diào)用時(shí)控制全局計(jì)數(shù)變量按照設(shè)定方式變化; 在執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。根據(jù)本發(fā)明技術(shù)方案,能夠根據(jù)全 局計(jì)數(shù)變量的值對(duì)系統(tǒng)中的任務(wù)的執(zhí)行狀態(tài)進(jìn)行監(jiān)控,由于對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)在運(yùn)行 時(shí)會(huì)對(duì)該全局計(jì)數(shù)變量初始化,因此,若對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,則該全局計(jì) 數(shù)變量不能被初始化,會(huì)隨著執(zhí)行函數(shù)所在的喂狗函數(shù)的調(diào)用而不斷變化,因此在全局計(jì) 數(shù)變量的值達(dá)到設(shè)定閾值時(shí),則可以確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,由于在嵌 入式系統(tǒng)中,若對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行,則其他優(yōu)先級(jí)的任務(wù)也能夠被執(zhí)行,從而能 夠根據(jù)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)是否被正常執(zhí)行確定出系統(tǒng)中任務(wù)的調(diào)度狀況是否正常,進(jìn) 而可以在確定系統(tǒng)中任務(wù)的調(diào)度不正常(即對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行)時(shí)采取 相應(yīng)的策略以保證系統(tǒng)的性能。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施 例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中圖1為本發(fā)明實(shí)施例一提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的流程圖;圖2為本發(fā)明實(shí)施例一提供的確定全局計(jì)數(shù)變量對(duì)應(yīng)的閾值的流程圖;圖3為本發(fā)明實(shí)施例二提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的流程圖;圖4為本發(fā)明實(shí)施例二提供的確定全局計(jì)數(shù)變量對(duì)應(yīng)的閾值的流程圖;圖5為本發(fā)明實(shí)施例三提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖一;圖6為本發(fā)明實(shí)施例三提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖二 ;圖7為本發(fā)明實(shí)施例三提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖三;圖8為本發(fā)明實(shí)施例四提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖一;圖9為本發(fā)明實(shí)施例四提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖一;圖10為本發(fā)明實(shí)施例四提供的嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的裝置示意圖一。
具體實(shí)施例方式為了給出確定系統(tǒng)中任務(wù)的調(diào)度是否正常的實(shí)現(xiàn)方案,本發(fā)明實(shí)施例提供了一種 嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法及裝置,以下結(jié)合說明書附圖對(duì)本發(fā)明的優(yōu)選實(shí)施 例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定 本發(fā)明。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。實(shí)施例一根據(jù)本發(fā)明實(shí)施例一,提供了一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法,如圖1 所示,包括步驟101、分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)。該步驟101中,對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)置的全局計(jì)數(shù)變量按照 設(shè)定方式變化,即該對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)每運(yùn)行一次,系統(tǒng)中設(shè)置的全局計(jì)數(shù)變量按照設(shè)定方式變化,例如,遞增或遞減;對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制全局計(jì)數(shù)變量初始化, 即該對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)每運(yùn)行一次,系統(tǒng)中設(shè)置的全局計(jì)數(shù)變量初始化。 步驟102、在對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化后,判斷變化后的全局 計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則執(zhí)行步驟103,若否,則執(zhí)行步驟104。步驟103、確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,至此,根據(jù)本次全局計(jì)數(shù)變 量的變化確定任務(wù)狀態(tài)的流程結(jié)束。步驟104、確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被正常執(zhí)行,至此,根據(jù)本次全局計(jì)數(shù)變量 的變化確定任務(wù)狀態(tài)的流程結(jié)束?;谏鲜隽鞒?,通過在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的 任務(wù),并通過設(shè)置全局計(jì)數(shù)變量對(duì)最高優(yōu)先級(jí)任務(wù)的執(zhí)行次數(shù)進(jìn)行計(jì)數(shù),并在全局計(jì)數(shù)變 量達(dá)到設(shè)定閾值的情況下,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,也就是說,由于對(duì)應(yīng) 最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,無法對(duì)全局計(jì)數(shù)變量進(jìn)行初始化,從而使得全局計(jì)數(shù)變 量達(dá)到設(shè)定閾值。該實(shí)施例一實(shí)現(xiàn)了最高優(yōu)先級(jí)的任務(wù)對(duì)最低優(yōu)先級(jí)的任務(wù)進(jìn)行監(jiān)控的目 的,由于在嵌入式操作系統(tǒng)中,最低優(yōu)先級(jí)的任務(wù)被執(zhí)行,通常高于該最低優(yōu)先級(jí)的任務(wù)也 能夠被執(zhí)行。本發(fā)明實(shí)施例一還提供了在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)任務(wù)以及注冊(cè)最低優(yōu)先 級(jí)任務(wù)的方法,具體如下嵌入式操作系統(tǒng)支持不同優(yōu)先級(jí)任務(wù)的注冊(cè),一般通過軟件開發(fā)人員在代碼中向 操作系統(tǒng)注冊(cè),系統(tǒng)能夠支持多個(gè)優(yōu)先級(jí),例如,目前大多數(shù)系統(tǒng)都能夠支持257個(gè)優(yōu)先 級(jí),分別通過0-256表示,并從0-256依次降低,即0對(duì)應(yīng)最高優(yōu)先級(jí),256對(duì)應(yīng)最低優(yōu)先級(jí), 在注冊(cè)任務(wù)時(shí)需要將該任務(wù)所對(duì)應(yīng)優(yōu)先級(jí)的優(yōu)先級(jí)號(hào)信息發(fā)送給操作系統(tǒng),從而完成注冊(cè) 過程。具體地,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù),主要包括如下過程首先,判斷系統(tǒng)中設(shè)置的最高優(yōu)先級(jí)是否被分配,例如,若系統(tǒng)中可分配給應(yīng)用程 序的優(yōu)先級(jí)號(hào)分別為1-256的優(yōu)先級(jí),優(yōu)先級(jí)號(hào)1對(duì)應(yīng)最高優(yōu)先級(jí),則通過判斷系統(tǒng)中是否 存在對(duì)應(yīng)優(yōu)先級(jí)為1的任務(wù)以確定最高優(yōu)先級(jí)是否被分配;若是,則從分配了該最高優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制系統(tǒng)中設(shè)置 的全局計(jì)數(shù)變量按照設(shè)定方式變化;若否,則在系統(tǒng)中注冊(cè)用于控制全局計(jì)數(shù)變量按照設(shè)定方式變化的任務(wù),并為該 任務(wù)分配系統(tǒng)中的最高優(yōu)先級(jí),具體地,該過程通過調(diào)用操作系統(tǒng)中的任務(wù)注冊(cè)函數(shù)執(zhí)行 注冊(cè)完成。在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)的過程,與上述在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先 級(jí)的任務(wù)的過程基本一致,即判斷系統(tǒng)中設(shè)置的最低優(yōu)先級(jí)是否被分配;若是,則從分配了最低優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制系統(tǒng)中的全局 計(jì)數(shù)變量初始化;若否,則在系統(tǒng)中注冊(cè)用于控制全局計(jì)數(shù)變量初始化的任務(wù),并為該任務(wù)分配最 低優(yōu)先級(jí)。本發(fā)明實(shí)施例一中,為全局計(jì)數(shù)變量設(shè)定的閾值可以根據(jù)系統(tǒng)的實(shí)際運(yùn)行情況,將該閾值設(shè)置為經(jīng)驗(yàn)值,還可以預(yù)先根據(jù)系統(tǒng)性能進(jìn)行估計(jì)以確定該閾值。
具體地,本發(fā)明實(shí)施例一提供的根據(jù)系統(tǒng)性能進(jìn)行估計(jì)以確定為全局計(jì)數(shù)變量設(shè) 定的閾值,具體如下本發(fā)明實(shí)施例一中,為了通過最高優(yōu)先級(jí)的任務(wù)對(duì)最低優(yōu)先級(jí)的任務(wù)進(jìn)行有效監(jiān) 控,為全局計(jì)數(shù)變量設(shè)定的閾值可以根據(jù)該最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方 式以及系統(tǒng)性能確定。如圖2所示,根據(jù)該最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方 式以及系統(tǒng)性能確定全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值,主要包括如下步驟步驟201、確定當(dāng)前系統(tǒng)性能。步驟202、根據(jù)當(dāng)前系統(tǒng)性能,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,該對(duì)應(yīng)最 高優(yōu)先級(jí)的任務(wù)被執(zhí)行的次數(shù)的最大估計(jì)值。步驟203、確定最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式,若為遞增,則執(zhí) 行步驟204 ;若為遞減,則執(zhí)行步驟205。步驟204、確定該全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值為該全局計(jì)數(shù)變量的初始值加上 確定出的最大估計(jì)值,至此,確定全局計(jì)數(shù)變量閾值的流程結(jié)束。該步驟204中,若全局計(jì)數(shù)變量的初始化值為M,確定出的最大估計(jì)值為N,則該全 局計(jì)數(shù)變量的閾值設(shè)為M+N。步驟205、確定該全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值為該全局計(jì)數(shù)變量的初始值減去 確定出的最大估計(jì)值,至此,確定全局計(jì)數(shù)變量閾值的流程結(jié)束。 該步驟205中,若全局計(jì)數(shù)變量的初始化值為M,確定出的最大估計(jì)值為N,則該全 局計(jì)數(shù)變量的閾值設(shè)為M-N。上述流程中,步驟201中確定的系統(tǒng)性能可以包括CPU主頻、系統(tǒng)任務(wù)個(gè)數(shù)、各個(gè) 任務(wù)的松弛(或緊急)程度等參數(shù),根據(jù)確定的此類系統(tǒng)性能,可以對(duì)最低優(yōu)先級(jí)的任務(wù)被 執(zhí)行之前,該對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)被執(zhí)行的次數(shù)做出估計(jì),確定最大估計(jì)值,例如,可以 通過如下公式確定該最大估計(jì)值U
ηU= YjSlZSh
/=O其中Si = Ti-CiZF, Si表示第i個(gè)任務(wù)松弛度,Ti表示第i個(gè)任務(wù)可容忍的最大執(zhí)行間 隔時(shí)間,Ci表示第i個(gè)任務(wù)執(zhí)行一次需要的Cycle數(shù)(周期數(shù)),F(xiàn)表示CPU主頻,i取值在 1到η之間,η表示系統(tǒng)中的任務(wù)個(gè)數(shù);Sh表示對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)的松弛度。通過上述公式可以確定最大估計(jì)值U。應(yīng)當(dāng)理解,以上公式為本發(fā)明優(yōu)選實(shí)施例, 該最大估計(jì)值U還可以直接取經(jīng)驗(yàn)值。應(yīng)當(dāng)理解,根據(jù)本發(fā)明實(shí)施例,可以根據(jù)系統(tǒng)對(duì)于確定出的最大估計(jì)值的精度確 定需要的系統(tǒng)性能,例如,在系統(tǒng)對(duì)該最大估計(jì)值的精度要求低的情況下,可以僅參考CPU 主頻以確定該最大估計(jì)值,因?yàn)镃PU主頻可以體現(xiàn)CPU的處理能力;在系統(tǒng)對(duì)該最大估計(jì)值 的精度要求高的情況下,可以在以上參數(shù)的基礎(chǔ)上,進(jìn)一步參考其他系統(tǒng)系能,例如,系統(tǒng) 運(yùn)行環(huán)境等,此處不一一列舉。本發(fā)明實(shí)施例一還提供了在確定出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行之后的處理過程,具體地,在確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行之后,還可以進(jìn)一步執(zhí)行如 下過程輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;或/和控制系統(tǒng)重啟。其中 通過輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件,可以使操作系統(tǒng)檢測到該 表示對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件。在此基礎(chǔ)上,可以優(yōu)選地將該異常事件 記錄到日志中,便于分析和定位問題,例如,通過日志查找當(dāng)前操作系統(tǒng)調(diào)用棧,查找操作 系統(tǒng)時(shí)間分片表,分析出是哪個(gè)任務(wù)異常消耗CPU資源,試圖通過修改外部條件讓該任務(wù) 退出異常消耗狀態(tài),或直接將該任務(wù)掛起或重新激活。本發(fā)明優(yōu)選實(shí)施例中,輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件,可以通 過如下方式實(shí)現(xiàn)在最高優(yōu)先級(jí)任務(wù)中直接執(zhí)行異常處理,即在對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)中添加一個(gè) 執(zhí)行函數(shù),用于輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;也可以傳遞該消息給另 一個(gè)任務(wù)來處理。通過控制系統(tǒng)重啟,能夠使系統(tǒng)進(jìn)入正常狀態(tài),即使系統(tǒng)恢復(fù)初始態(tài)。以上兩個(gè)過程中可以只執(zhí)行一個(gè),即可以只輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常 執(zhí)行的事件,也可以直接控制系統(tǒng)重啟;也可以都執(zhí)行,即輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被 正常執(zhí)行的事件,并控制系統(tǒng)重啟。根據(jù)本發(fā)明實(shí)施例一提供的技術(shù)方案,通過注冊(cè)的對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)的調(diào)度 狀況來監(jiān)控注冊(cè)的對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)的調(diào)度狀況,從而達(dá)到對(duì)整個(gè)系統(tǒng)中任務(wù)的調(diào)度 狀態(tài)的監(jiān)控。該實(shí)施例一中,對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)的調(diào)度頻率一般高于對(duì)應(yīng)最低優(yōu)先級(jí) 任務(wù)的調(diào)度頻率,并且,該對(duì)應(yīng)最高優(yōu)先級(jí)任務(wù)的執(zhí)行不需要獲取臨界資源,而只控制全局 計(jì)數(shù)變量按照設(shè)定方式變化以及對(duì)變化后的全局計(jì)數(shù)變量進(jìn)行判斷,因此該對(duì)應(yīng)最高優(yōu)先 級(jí)任務(wù)進(jìn)入死鎖的情況是不會(huì)發(fā)生。如果系統(tǒng)中對(duì)應(yīng)其它優(yōu)先級(jí)的任務(wù)發(fā)生死鎖現(xiàn)象或某 個(gè)任務(wù)異常的消耗CPU資源,則對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)可能長時(shí)間得不到調(diào)度,此時(shí)若系 統(tǒng)中沒有看門狗,則可以根據(jù)本發(fā)明實(shí)施例一提供的上述方法控制系統(tǒng)重啟;若系統(tǒng)中有 看門狗,則基于該看門狗可以檢測出系統(tǒng)哪些任務(wù)異常消耗了過多的CPU資源,系統(tǒng)得知 此消息后可以對(duì)這些異常的任務(wù)做相應(yīng)的處理,必要時(shí)也可以復(fù)位整個(gè)系統(tǒng),即控制系統(tǒng) 重啟ο根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,可以在不增加硬件模塊也不改動(dòng)其它軟件模 塊接口的情況下,利用操作系統(tǒng)對(duì)高、低優(yōu)先級(jí)任務(wù)的調(diào)度頻率差異來實(shí)現(xiàn)軟件看門狗,只 需要注冊(cè)兩個(gè)任務(wù)就可以實(shí)現(xiàn)涵蓋所有任務(wù)的活性監(jiān)控,即高優(yōu)先級(jí)任務(wù)負(fù)責(zé)對(duì)低優(yōu)先級(jí) 任務(wù)進(jìn)行監(jiān)控,如果低優(yōu)先級(jí)任務(wù)長時(shí)間得不到調(diào)度,則采取必要措施,例如,控制系統(tǒng)重
啟ο根據(jù)本發(fā)明實(shí)施例,如果原系統(tǒng)中有喂硬件狗的喂狗函數(shù),可由喂狗函數(shù)取代高 優(yōu)先級(jí)任務(wù)對(duì)低優(yōu)先級(jí)任務(wù)進(jìn)行監(jiān)控,從而能夠達(dá)到充分利用系統(tǒng)資源的目的,也無需額 外再注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)。由喂狗函數(shù)監(jiān)控低優(yōu)先級(jí)任務(wù)的詳細(xì)實(shí)現(xiàn)方案將在隨后的實(shí)施例二中進(jìn)行說明。
實(shí)施例二根據(jù)本發(fā)明實(shí)施例二,提供了一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法,如圖3 所示,包括步驟301、在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),以及在系統(tǒng)中的喂狗函數(shù)中增加 一個(gè)執(zhí)行函數(shù)。該步驟301中,對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量初始 化,即該對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)每運(yùn)行一次,系統(tǒng)中設(shè)置的全局計(jì)數(shù)變量初始化;在喂狗函 數(shù)中增加的執(zhí)行函數(shù)用于在所在的喂狗函數(shù)被調(diào)用時(shí)控制系統(tǒng)中設(shè)置的全局計(jì)數(shù)變量按 照設(shè)定方式變化,即在喂狗函數(shù)被調(diào)用時(shí),該喂狗函數(shù)中的執(zhí)行函數(shù)控制全局計(jì)數(shù)變量按 照設(shè)定方式變化,例如,遞增或遞減。步驟302、在執(zhí)行函數(shù)控制全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否 到達(dá)設(shè)定閾值,若是,則執(zhí)行步驟303,若否,則執(zhí)行步驟304。步驟303、確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,至此,根據(jù)本次全局計(jì)數(shù)變 量的變化確定任務(wù)狀態(tài)的流程結(jié)束。步驟304、確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被正常執(zhí)行,至此,根據(jù)本次全局計(jì)數(shù)變量 的變化確定任務(wù)狀態(tài)的流程結(jié)束?;谏鲜隽鞒蹋ㄟ^在系統(tǒng)中注冊(cè)對(duì) 應(yīng)最低優(yōu)先級(jí)的任務(wù)以及在系統(tǒng)中的喂狗函 數(shù)中增加一個(gè)執(zhí)行函數(shù),并通過設(shè)置全局計(jì)數(shù)變量對(duì)執(zhí)行函數(shù)所在的喂狗函數(shù)被調(diào)用的次 數(shù)進(jìn)行計(jì)數(shù),在全局計(jì)數(shù)變量達(dá)到設(shè)定閾值的情況下,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正 常執(zhí)行,也就是說,由于對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行,無法對(duì)全局計(jì)數(shù)變量進(jìn)行初 始化,從而使得全局計(jì)數(shù)變量達(dá)到設(shè)定閾值。該實(shí)施例二實(shí)現(xiàn)了通過喂狗函數(shù)被調(diào)用的情 況對(duì)最低優(yōu)先級(jí)的任務(wù)進(jìn)行監(jiān)控的目的,由于在嵌入式操作系統(tǒng)中,最低優(yōu)先級(jí)的任務(wù)被 執(zhí)行,通常高于該最低優(yōu)先級(jí)的任務(wù)也能夠被執(zhí)行。該實(shí)施例二中,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)的過程與上述實(shí)施例一中提 供的在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)的過程基本一致,此處不再贅述。本發(fā)明實(shí)施例二中,為全局計(jì)數(shù)變量設(shè)定的閾值可以根據(jù)系統(tǒng)的實(shí)際運(yùn)行情況, 將該閾值設(shè)置為經(jīng)驗(yàn)值,還可以預(yù)先根據(jù)系統(tǒng)性能進(jìn)行估計(jì)以確定該閾值。具體地,本發(fā)明實(shí)施例二提供的根據(jù)系統(tǒng)性能進(jìn)行估計(jì)以確定為全局計(jì)數(shù)變量設(shè) 定的閾值,具體如下本發(fā)明實(shí)施例二中,為了通過喂狗函數(shù)被調(diào)用的次數(shù)對(duì)最低優(yōu)先級(jí)的任務(wù)進(jìn)行有 效監(jiān)控,為全局計(jì)數(shù)變量設(shè)定的閾值可以根據(jù)喂狗函數(shù)中增加的執(zhí)行函數(shù)控制該全局計(jì)數(shù) 變量變化的方式以及系統(tǒng)性能確定。如圖4所示,根據(jù)執(zhí)行函數(shù)控制全局計(jì)數(shù)變量變化的 方式以及系統(tǒng)性能確定所述設(shè)定閾值,包括步驟401、確定當(dāng)前系統(tǒng)性能。步驟402、根據(jù)當(dāng)前系統(tǒng)性能,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,執(zhí)行函數(shù) 所在的喂狗函數(shù)被調(diào)用的次數(shù)的最大估計(jì)值。步驟403、確定執(zhí)行函數(shù)控制該全局計(jì)數(shù)變量變化的方式,若為遞增,則執(zhí)行步驟 404 ;若為遞減,則執(zhí)行步驟405。步驟404、確定該全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值為該全局計(jì)數(shù)變量的初始值加上確定出的最大估計(jì)值,至此,確定全局計(jì)數(shù)變量閾值的流程結(jié)束。步驟405、確定該全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值為該全局計(jì)數(shù)變量的初始值減去 確定出的最大估計(jì)值,至此,確定全局計(jì)數(shù)變量閾值的流程結(jié)束。上述流程中,步驟201中確定的系統(tǒng)性能可以包括CPU主頻、系統(tǒng)任務(wù)個(gè)數(shù)、各個(gè) 任務(wù)的松弛(或緊急)程度等參數(shù),根據(jù)確定的此類系統(tǒng)性能,可以對(duì)最低優(yōu)先級(jí)的任務(wù)被 執(zhí)行之前,該對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)被執(zhí)行的次數(shù)做出估計(jì),確定最大估計(jì)值,例如,可以 通過如下公式確定該最大估計(jì)值U
權(quán)利要求
一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控方法,其特征在于,包括分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù);其中,所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量按照設(shè)定方式變化,所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制所述全局計(jì)數(shù)變量初始化;在所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。
2.如權(quán)利要求1所述的方法,其特征在于,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù),包括判斷系統(tǒng)中設(shè)置的最高優(yōu)先級(jí)是否被分配;若是,則從分配了所述最高優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量按照設(shè)定方式變化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量按照設(shè)定方式變化的任務(wù),并為該 任務(wù)分配所述最高優(yōu)先級(jí)。
3.如權(quán)利要求1所述的方法,其特征在于,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),包括判斷系統(tǒng)中設(shè)置的最低優(yōu)先級(jí)是否被分配;若是,則從分配了所述最低優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量初始化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量初始化的任務(wù),并為該任務(wù)分配所 述最低優(yōu)先級(jí)。
4.如權(quán)利要求1所述的方法,其特征在于,所述設(shè)定閾值根據(jù)所述最高優(yōu)先級(jí)的任務(wù) 控制全局計(jì)數(shù)變量變化的方式以及系統(tǒng)性能確定。
5.如權(quán)利要求4所述的方法,其特征在于,根據(jù)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù) 變量變化的方式以及系統(tǒng)性能確定所述設(shè)定閾值,包括根據(jù)系統(tǒng)性能,確定所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,所述對(duì)應(yīng)最高優(yōu)先級(jí)的 任務(wù)被執(zhí)行的次數(shù)的最大估計(jì)值;當(dāng)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞增,則 確定所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值加上確定的所述最大估計(jì)值;當(dāng)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞減,則 確定所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值減去確定的所述最大估計(jì)值。
6.如權(quán)利要求1所述的方法,其特征在于,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行 之后,還包括輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;或/和 控制系統(tǒng)重啟。
7.一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控方法,其特征在于,包括在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè) 定的全局計(jì)數(shù)變量初始化;以及在系統(tǒng)中的喂狗函數(shù)中增加一個(gè)執(zhí)行函數(shù),所述執(zhí)行函數(shù) 用于在所述喂狗函數(shù)被調(diào)用時(shí)控制全局計(jì)數(shù)變量按照設(shè)定方式變化;在所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。
8.如權(quán)利要求7所述的方法,其特征在于,在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),包括判斷系統(tǒng)中設(shè)置的最低優(yōu)先級(jí)是否被分配;若是,則從分配了所述最低優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量初始化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量初始化的任務(wù),并為該任務(wù)分配所 述最低優(yōu)先級(jí)。
9.如權(quán)利要求7所述的方法,其特征在于,所述設(shè)定閾值根據(jù)所述執(zhí)行函數(shù)控制所述 全局計(jì)數(shù)變量變化的方式以及系統(tǒng)性能確定。
10.如權(quán)利要求9所述的方法,其特征在于,根據(jù)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量 變化的方式以及系統(tǒng)性能確定所述設(shè)定閾值,包括根據(jù)系統(tǒng)性能,確定所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,所述執(zhí)行函數(shù)所在的喂 狗函數(shù)被調(diào)用的次數(shù)的最大估計(jì)值;當(dāng)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞增,則確定 所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值加上確定的所述最大估計(jì)值;當(dāng)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞減,則確定 所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值減去確定的所述最大估計(jì)值。
11.如權(quán)利要求7所述的方法,其特征在于,確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行 之后,還包括輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;或/和 控制系統(tǒng)重啟。
12.—種嵌入式系統(tǒng)中的任務(wù)監(jiān)控裝置,其特征在于,包括注冊(cè)單元,用于分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的任 務(wù);其中,所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量按照設(shè)定方式 變化,所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制所述全局計(jì)數(shù)變量初始化;變量監(jiān)控單元,用于在所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制所述全局計(jì)數(shù)變量變化后,判 斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正 常執(zhí)行。
13.如權(quán)利要求12所述的裝置,其特征在于,所述注冊(cè)單元,具體用于 判斷系統(tǒng)中設(shè)置的最高優(yōu)先級(jí)是否被分配;若是,則從分配了所述最高優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量按照設(shè)定方式變化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量按照設(shè)定方式變化的任務(wù),并為該 任務(wù)分配所述最高優(yōu)先級(jí)。
14.如權(quán)利要求12所述的裝置,其特征在于,所述注冊(cè)單元,具體用于 判斷系統(tǒng)中設(shè)置的最低優(yōu)先級(jí)是否被分配;若是,則從分配了所述最低優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量初始化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量初始化的任務(wù),并為該任務(wù)分配所 述最低優(yōu)先級(jí)。
15.如權(quán)利要求12所述的裝置,其特征在于,還包括閾值確定單元,用于根據(jù)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式以及系 統(tǒng)性能確定所述全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值。
16.如權(quán)利要求15所述的裝置,其特征在于,所述閾值確定單元,具體用于根據(jù)系統(tǒng)性能,確定所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,所述對(duì)應(yīng)最高優(yōu)先級(jí)的 任務(wù)被執(zhí)行的次數(shù)的最大估計(jì)值;當(dāng)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞增,則 確定所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值加上確定的所述最大估計(jì)值;當(dāng)所述最高優(yōu)先級(jí)的任務(wù)控制全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞減,則 確定所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值減去確定的所述最大估計(jì)值。
17.如權(quán)利要求12所述的裝置,其特征在于,還包括處理單元,用于在所述變量監(jiān)控單元確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行之后, 輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;或/和控制系統(tǒng)重啟。
18.一種嵌入式系統(tǒng)中的任務(wù)監(jiān)控裝置,其特征在于,包括注冊(cè)單元,用于在系統(tǒng)中注冊(cè)對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù),所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用 于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量初始化;以及在系統(tǒng)中的喂狗函數(shù)中增加一個(gè)執(zhí)行函 數(shù),所述執(zhí)行函數(shù)用于在所述喂狗函數(shù)被調(diào)用時(shí)控制全局計(jì)數(shù)變量按照設(shè)定方式變化;變量監(jiān)控單元,用于在所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全 局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。
19.如權(quán)利要求18所述的裝置,其特征在于,所述注冊(cè)單元,具體用于判斷系統(tǒng)中設(shè)置的最低優(yōu)先級(jí)是否被分配;若是,則從分配了所述最低優(yōu)先級(jí)的任務(wù)中增加一個(gè)執(zhí)行函數(shù)用于控制所述全局計(jì)數(shù) 變量初始化;若否,則在系統(tǒng)中注冊(cè)用于控制所述全局計(jì)數(shù)變量初始化的任務(wù),并為該任務(wù)分配所 述最低優(yōu)先級(jí)。
20.如權(quán)利要求18所述的裝置,其特征在于,還包括閾值確定單元,用于根據(jù)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化的方式以及系統(tǒng)性 能確定所述全局計(jì)數(shù)變量對(duì)應(yīng)的設(shè)定閾值。
21.如權(quán)利要求20所述的裝置,其特征在于,所述閾值確定單元,具體用于根據(jù)系統(tǒng)性能,確定所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)被執(zhí)行之前,所述執(zhí)行函數(shù)所在的喂 狗函數(shù)被調(diào)用的次數(shù)的最大估計(jì)值;當(dāng)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞增,則確定 所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值加上確定的所述最大估計(jì)值;當(dāng)所述執(zhí)行函數(shù)控制所述全局計(jì)數(shù)變量變化的方式為控制全局計(jì)數(shù)變量遞減,則確定 所述設(shè)定閾值為所述全局計(jì)數(shù)變量的初始值減去確定的所述最大估計(jì)值。
22.如權(quán)利要求18所述的裝置,其特征在于,還包括處理單元,用于在所述變量監(jiān)控單元確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行之后,輸出對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行的事件;或/和控制系統(tǒng)重啟。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)中監(jiān)控任務(wù)執(zhí)行狀態(tài)的方法及裝置,主要技術(shù)方案包括分別在系統(tǒng)中注冊(cè)對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)以及對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù);其中,所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)用于控制系統(tǒng)中設(shè)定的全局計(jì)數(shù)變量按照設(shè)定方式變化,所述對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)用于控制所述全局計(jì)數(shù)變量初始化;在所述對(duì)應(yīng)最高優(yōu)先級(jí)的任務(wù)控制所述全局計(jì)數(shù)變量變化后,判斷變化后的全局計(jì)數(shù)變量是否到達(dá)設(shè)定閾值,若是,則確定對(duì)應(yīng)最低優(yōu)先級(jí)的任務(wù)未被正常執(zhí)行。另一技術(shù)方案中,也可以通過喂狗函數(shù)代替注冊(cè)最高優(yōu)先級(jí)的任務(wù)。采用該技術(shù)方案,能夠?qū)η度胧较到y(tǒng)中的任務(wù)執(zhí)行狀態(tài)進(jìn)行監(jiān)控,從而能夠確定出系統(tǒng)中任務(wù)的調(diào)度是否正常。
文檔編號(hào)G06F9/50GK101937371SQ201010266130
公開日2011年1月5日 申請(qǐng)日期2010年8月27日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者石偉 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司