專利名稱:操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置及其監(jiān)控方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式系統(tǒng)的應(yīng)用程序監(jiān)控技術(shù)領(lǐng)域,具體涉及一種基于嵌入式系統(tǒng)內(nèi)核驅(qū)動程序的實現(xiàn)以及監(jiān)控應(yīng)用程序的方法,尤其是一種利用內(nèi)核看門狗(Watchdog)來監(jiān)控應(yīng)用程序的方法。
背景技術(shù):
近年來隨著各個行業(yè)信息化的持續(xù)深入,嵌入式系統(tǒng)、因其可定制性已廣泛應(yīng)用于網(wǎng)絡(luò)通信、消費電子、制造、工業(yè)控制、安防系統(tǒng)等多個領(lǐng)域。 為了適應(yīng)軟件日益增長的功能密度,應(yīng)用程序的數(shù)量必定越來越大,給系統(tǒng)的可靠性帶來諸多不穩(wěn)定因素,再因嵌入式系統(tǒng)軟件本身特性,經(jīng)過長時間的運行,可能有應(yīng)用程序會出現(xiàn)些問題,激烈的市場競爭,都要求我們必須、及時的生產(chǎn)出滿足市場需求的高可靠性的產(chǎn)品,來搶占市場。而軟件產(chǎn)品的高可靠性的基石是要有一個實時性高的手段來監(jiān)控各個應(yīng)用程序的運行狀態(tài)。 但是由于使用了集成度更高,頻率更快,應(yīng)用程序的功能及數(shù)量更大的系統(tǒng),對應(yīng)用程序的監(jiān)控就更加復(fù)雜。目前現(xiàn)有技術(shù)進(jìn)行監(jiān)控應(yīng)用程序的方法通常是使用專門的應(yīng)用程序來監(jiān)控其他應(yīng)用程序,其優(yōu)點在于專用程序與應(yīng)用程序都處于應(yīng)用層,實現(xiàn)起來簡單方便。但不可忽視的缺點是其實時性較差。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,解決了現(xiàn)有技術(shù)中監(jiān)控應(yīng)用程序時實時性較差等問題。 為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是 —種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,包括看門狗模塊,其特征在于所述看門狗模塊設(shè)置在系統(tǒng)內(nèi)核內(nèi),且通過內(nèi)核級驅(qū)動對應(yīng)用程序進(jìn)行注冊、取消注冊和復(fù)位操作,所述內(nèi)核看門狗模塊至少包括 定時器模塊,所述定時器模塊用于當(dāng)定時器內(nèi)規(guī)定時間輪轉(zhuǎn)到后進(jìn)行檢測每個已注冊的應(yīng)用程序是否超時,當(dāng)已注冊的應(yīng)用程序超時時所述看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn);當(dāng)定時器內(nèi)規(guī)定時間未輪轉(zhuǎn)到時,所述看門狗模塊根據(jù)應(yīng)用程序的執(zhí)行啟動注冊模塊或取消注冊模塊或復(fù)位模塊進(jìn)行相應(yīng)操作; 注冊模塊,當(dāng)有應(yīng)用程序請求注冊時,接受應(yīng)用程序的注冊; 取消注冊模塊,當(dāng)有已注冊應(yīng)用程序請求取消注冊時,接受取消注冊已注冊應(yīng)用程序; 復(fù)位模塊,用于接受復(fù)位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位。 優(yōu)選的,所述操作系統(tǒng)內(nèi)核內(nèi)嵌入看門狗驅(qū)動,當(dāng)操作系統(tǒng)啟動時,操作系統(tǒng)內(nèi)核啟動注冊看門狗驅(qū)動運行看門狗模塊。
優(yōu)選的,所述看門狗模塊內(nèi)設(shè)置應(yīng)用程序動態(tài)鏈表,當(dāng)注冊模塊進(jìn)行應(yīng)用程序注 冊時,所述動態(tài)鏈表增加應(yīng)用程序的節(jié)點;當(dāng)取消注冊模塊進(jìn)行取消注冊操作時,所述動態(tài) 鏈表刪除請求取消注冊的應(yīng)用程序節(jié)點;當(dāng)復(fù)位模塊進(jìn)行復(fù)位操作時,對活動鏈表中該應(yīng) 用程序的復(fù)位時間進(jìn)行清零操作。 優(yōu)選的,所述定時器模塊的規(guī)定時間由應(yīng)用程序規(guī)定,當(dāng)應(yīng)用程序未規(guī)定時,通過 操作系統(tǒng)內(nèi)核或CPU指定定時器的固定時間片。 本發(fā)明的另一目的在于提供一種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控方法,其特征在 于所述方法包括以下步驟 (1)看門狗模塊內(nèi)定時器模塊檢查規(guī)定時間輪轉(zhuǎn)的狀態(tài),當(dāng)規(guī)定時間未超時時進(jìn) 行步驟(2);當(dāng)規(guī)定時間超時時進(jìn)行步驟(3); (2)看門狗模塊中注冊模塊響應(yīng)應(yīng)用程序的注冊操作;復(fù)位模塊響應(yīng)應(yīng)用程序的 復(fù)位操作;取消注冊模塊響應(yīng)已注冊的應(yīng)用程序的取消注冊操作; (3)當(dāng)已注冊的應(yīng)用程序超時時看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操 作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn)循環(huán)。 優(yōu)選的,所述方法還包括在步驟(1)前進(jìn)行啟動操作系統(tǒng),進(jìn)行注冊看門狗模塊 驅(qū)動的步驟。 優(yōu)選的,所述方法步驟(2)中當(dāng)應(yīng)用程序請求復(fù)位看門狗信號,復(fù)位模塊接受復(fù) 位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位。 優(yōu)選的,所述操作系統(tǒng)為嵌入式li皿x系統(tǒng)。 本發(fā)明設(shè)計了一種操作系統(tǒng)內(nèi)核級Watchdog監(jiān)控應(yīng)用程序的方法,在操作系統(tǒng)
內(nèi)核內(nèi)增加了內(nèi)核看門狗Watchdog模塊,借助操作系統(tǒng)內(nèi)核Watchdog接收應(yīng)用程序的注
冊、復(fù)位Watchdog和取消注冊,進(jìn)而實現(xiàn)對應(yīng)用程序的監(jiān)控的過程,通過運行在內(nèi)核態(tài)的
驅(qū)動來完成對應(yīng)用程序的實時監(jiān)控,操作簡單,而且解決了現(xiàn)有技術(shù)中使用專用應(yīng)用程序
監(jiān)控應(yīng)用程序?qū)崟r性差的技術(shù)問題。 相對于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點是 1.本發(fā)明的操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置通過在操作系統(tǒng)內(nèi)核模塊中設(shè) 置看門狗Watchdog模塊,實現(xiàn)內(nèi)核級啟動看門狗,操作簡單,同時又滿足復(fù)雜系統(tǒng)功能實 時性的要求,為產(chǎn)品的高可靠性提供好的保障。 2、本發(fā)明中通過看門狗模塊Watchdog驅(qū)動響應(yīng)應(yīng)用程序的注冊、復(fù)位Watchdog 和取消注冊,應(yīng)用程序可以靈活地注冊和取消注冊,而不受應(yīng)用程序的具體功能、注冊和取 消注冊發(fā)生的時間、被監(jiān)控的應(yīng)用程序數(shù)量的限制。 3、本發(fā)明技術(shù)方案中由于看門狗模塊處于內(nèi)核態(tài),能夠?qū)崟r地被調(diào)度,從而實時 監(jiān)測每個已經(jīng)注冊的應(yīng)用程序?qū)atchdog的復(fù)位情況;同時可以保證如果有應(yīng)用程序超 時復(fù)位Watchdog,系統(tǒng)會被及時重啟。
下面結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步描述 圖1為本發(fā)明實施例操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控方法的流程圖。
具體實施例方式以下結(jié)合具體實施例對上述方案做進(jìn)一步說明。應(yīng)理解,這些實施例是用于說明 本發(fā)明而不限于限制本發(fā)明的范圍。實施例中采用的實施條件可以根據(jù)具體廠家的條件做 進(jìn)一步調(diào)整,未注明的實施條件通常為常規(guī)實驗中的條件。
實施例操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置及其監(jiān)控方法 在本實施例中,該操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置應(yīng)用于嵌入式li皿x系 統(tǒng),為了實現(xiàn)實時監(jiān)控應(yīng)用程序。該裝置包括看門狗模塊,所述看門狗模塊設(shè)置在系統(tǒng)內(nèi)核 內(nèi),所述操作系統(tǒng)內(nèi)核kernel內(nèi)嵌入看門狗驅(qū)動,當(dāng)操作系統(tǒng)啟動時,操作系統(tǒng)內(nèi)核啟動 注冊看門狗驅(qū)動運行看門狗模塊。
內(nèi)核看門狗模塊包括 定時器模塊,所述定時器模塊用于當(dāng)定時器內(nèi)規(guī)定時間輪轉(zhuǎn)到后進(jìn)行檢測每個已
注冊的應(yīng)用程序是否超時,當(dāng)已注冊的應(yīng)用程序超時時所述看門狗模塊啟動復(fù)位模塊進(jìn)行
操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn);當(dāng)定時
器內(nèi)規(guī)定時間未輪轉(zhuǎn)到時,所述看門狗模塊根據(jù)應(yīng)用程序的執(zhí)行啟動注冊模塊或取消注冊
模塊或復(fù)位模塊進(jìn)行相應(yīng)操作;定時器模塊的規(guī)定時間由應(yīng)用程序規(guī)定,當(dāng)應(yīng)用程序未規(guī)
定時,通過操作系統(tǒng)內(nèi)核或CPU指定定時器的固定時間片。 注冊模塊,當(dāng)有應(yīng)用程序請求注冊時,接受應(yīng)用程序的注冊; 取消注冊模塊,當(dāng)有已注冊應(yīng)用程序請求取消注冊時,接受取消注冊已注冊應(yīng)用 程序; 復(fù)位模塊,用于接受復(fù)位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位。 操作系統(tǒng)通過內(nèi)核級驅(qū)動對應(yīng)用程序進(jìn)行注冊、取消注冊和復(fù)位操作,由于所述 看門狗模塊內(nèi)設(shè)置應(yīng)用程序動態(tài)鏈表,當(dāng)注冊模塊進(jìn)行應(yīng)用程序注冊時,所述動態(tài)鏈表增 加應(yīng)用程序的節(jié)點;當(dāng)取消注冊模塊進(jìn)行取消注冊操作時,所述動態(tài)鏈表刪除請求取消注 冊的應(yīng)用程序節(jié)點;當(dāng)復(fù)位模塊進(jìn)行復(fù)位操作時,對動態(tài)鏈表進(jìn)行清零操作。
看門狗可以是集成電路芯片IC,該IC的輸出腳與CPU的復(fù)位信號輸入腳相連,輸 入腳與CPU的一個GPIO相連,CPU上運行的看門狗模塊會循環(huán)向GPIO輸出脈沖信號復(fù)位 看門狗??撮T狗模塊處于內(nèi)核KERNEL中,它可以定時輸出復(fù)位信號到看門狗,接收來自應(yīng) 用程序的注冊,取消注冊和應(yīng)用程序發(fā)送來的復(fù)位看門狗信號。 當(dāng)進(jìn)行應(yīng)用程序注冊時,看門狗模塊的活動鏈表接受應(yīng)用程序的進(jìn)程PID以及復(fù) 位時間,當(dāng)然不同的應(yīng)用程序其復(fù)位時間可能有所不同。復(fù)位時間傳遞給看門狗模塊的定 時器模塊,當(dāng)應(yīng)用程序沒有復(fù)位時間時,操作系統(tǒng)或CPU提供給定時器模塊一個復(fù)位時間 (時間片)。取消注冊時,看門狗模塊中活動鏈表中刪除該應(yīng)用程序的進(jìn)程PID以及復(fù)位時 間。復(fù)位操作時,對該應(yīng)用程序的復(fù)位時間進(jìn)行清零。這里活動鏈表中節(jié)點的數(shù)據(jù)結(jié)構(gòu)可 以只包括進(jìn)程ID和復(fù)位時間,也可以包括其他數(shù)據(jù)。 如圖l,該裝置進(jìn)行監(jiān)控操作時,該裝置可以按照如下步驟進(jìn)行 首先給設(shè)備上電,進(jìn)入Bootloader啟動操作系統(tǒng),加載操作系統(tǒng)內(nèi)核kernel,進(jìn)
行注冊看門狗模塊驅(qū)動開始運行看門狗。 然后,看門狗模塊內(nèi)定時器模塊檢查規(guī)定時間輪轉(zhuǎn)的狀態(tài),當(dāng)規(guī)定時間未超時時; 看門狗模塊中注冊模塊響應(yīng)應(yīng)用程序的注冊操作;復(fù)位模塊響應(yīng)應(yīng)用程序的復(fù)位操作;取消注冊模塊響應(yīng)已注冊的應(yīng)用程序的取消注冊操作;當(dāng)規(guī)定時間超時時且當(dāng)已注冊的應(yīng)用 程序超時時看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時 時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn)循環(huán)。當(dāng)應(yīng)用程序請求復(fù)位看門狗信號,復(fù)位模塊接受復(fù) 位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位重啟。 操作系統(tǒng)啟動過程中,可以注冊一個看門狗Watchdog驅(qū)動從而運行看門狗;看 門狗Watchdog模塊驅(qū)動響應(yīng)應(yīng)用程序的注冊、復(fù)位看門狗Watchdog和取消注冊;看門狗 Watchdog模塊的定時器在每次定時時間到,檢測每個已經(jīng)注冊的應(yīng)用程序?qū)atchdog的 復(fù)位情況;如果有應(yīng)用程序?qū)atchdog的未復(fù)位時間超出了注冊時給定的復(fù)位時間限制, 那么Watchdog執(zhí)行系統(tǒng)重啟命令。當(dāng)應(yīng)用程序取消注冊后,其相關(guān)信息從驅(qū)動模塊中清 除。而定時器可以通過借助內(nèi)核定時器實現(xiàn)來對已經(jīng)注冊的應(yīng)用程序進(jìn)行Watchdog復(fù)位 情況的檢測。當(dāng)有應(yīng)用程序?qū)atchdog的復(fù)位時間超出了注冊時給定的時間限制,借助系 統(tǒng)重啟命令實現(xiàn)系統(tǒng)重啟。 本發(fā)明在具體使用時,首先要在內(nèi)核啟動時注冊一個Watchdog驅(qū)動模塊,并開啟 一個定時器,為應(yīng)用程序提供注冊、取消注冊和復(fù)位Watchdog的接口 ,接受應(yīng)用程序的注 冊、取消注冊和復(fù)位Watchdog,以及定時檢測各個已經(jīng)注冊的應(yīng)用程序?qū)atchdog的復(fù)位 情況,如果有應(yīng)用程序超時復(fù)位Watchdog的,那么就重啟系統(tǒng)。 根本本實施例的方案,借助操作系統(tǒng)內(nèi)核Watchdog驅(qū)動模塊接收應(yīng)用程序的注
冊和取消注冊,以及定時檢測各個已經(jīng)注冊的應(yīng)用程序的復(fù)位Watchdog的情況,進(jìn)而實現(xiàn)
實時監(jiān)控合法注冊的應(yīng)用程序,可以為功能復(fù)雜,應(yīng)用程序多的系統(tǒng)的可靠性提供好的保
障,實現(xiàn)簡單,實時性,穩(wěn)定性好,同時操作系統(tǒng)內(nèi)核Watchdog響應(yīng)應(yīng)用程序注冊和取消注
冊非常靈活,可以實時地監(jiān)控應(yīng)用程序和重啟系統(tǒng),實現(xiàn)代碼維護(hù)方便。 上述實例只為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人是
能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精
神實質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,包括看門狗模塊,其特征在于所述看門狗模塊設(shè)置在系統(tǒng)內(nèi)核內(nèi),且通過內(nèi)核級驅(qū)動對應(yīng)用程序進(jìn)行注冊、取消注冊和復(fù)位操作,所述內(nèi)核看門狗模塊至少包括定時器模塊,所述定時器模塊用于當(dāng)定時器內(nèi)規(guī)定時間輪轉(zhuǎn)到后進(jìn)行檢測每個已注冊的應(yīng)用程序是否超時,當(dāng)已注冊的應(yīng)用程序超時時所述看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn);當(dāng)定時器內(nèi)規(guī)定時間未輪轉(zhuǎn)到時,所述看門狗模塊根據(jù)應(yīng)用程序的執(zhí)行啟動注冊模塊或取消注冊模塊或復(fù)位模塊進(jìn)行相應(yīng)操作;注冊模塊,當(dāng)有應(yīng)用程序請求注冊時,接受應(yīng)用程序的注冊;取消注冊模塊,當(dāng)有已注冊應(yīng)用程序請求取消注冊時,接受取消注冊已注冊應(yīng)用程序;復(fù)位模塊,用于接受復(fù)位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位。
2. 根據(jù)權(quán)利要求1所述的操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,其特征在于所述操作系統(tǒng)內(nèi)核內(nèi)嵌入看門狗驅(qū)動,當(dāng)操作系統(tǒng)啟動時,操作系統(tǒng)內(nèi)核啟動注冊看門狗驅(qū)動運行看門狗模塊。
3. 根據(jù)權(quán)利要求1所述的操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,其特征在于所述看門狗模塊內(nèi)設(shè)置應(yīng)用程序動態(tài)鏈表,當(dāng)注冊模塊進(jìn)行應(yīng)用程序注冊時,所述動態(tài)鏈表增加應(yīng)用程序的節(jié)點;當(dāng)取消注冊模塊進(jìn)行取消注冊操作時,所述動態(tài)鏈表刪除請求取消注冊的應(yīng)用程序節(jié)點;當(dāng)復(fù)位模塊進(jìn)行復(fù)位操作時,對動態(tài)鏈表中該應(yīng)用程序的復(fù)位時間進(jìn)行清零操作。
4. 根據(jù)權(quán)利要求1所述的操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,其特征在于所述定時器模塊的規(guī)定時間由應(yīng)用程序規(guī)定,當(dāng)應(yīng)用程序未規(guī)定時,通過操作系統(tǒng)內(nèi)核或CPU指定定時器的固定時間片。
5. —種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控方法,其特征在于所述方法包括以下步驟(1) 看門狗模塊內(nèi)定時器模塊檢查規(guī)定時間輪轉(zhuǎn)的狀態(tài),當(dāng)規(guī)定時間未超時時進(jìn)行步驟(2);當(dāng)規(guī)定時間超時時進(jìn)行步驟(3);(2) 看門狗模塊中注冊模塊響應(yīng)應(yīng)用程序的注冊操作;復(fù)位模塊響應(yīng)應(yīng)用程序的復(fù)位操作;取消注冊模塊響應(yīng)已注冊的應(yīng)用程序的取消注冊操作;(3) 當(dāng)已注冊的應(yīng)用程序超時時看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn)循環(huán)。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法還包括在步驟(1)前進(jìn)行啟動操作系統(tǒng),進(jìn)行注冊看門狗模塊驅(qū)動的步驟。
7. 根據(jù)權(quán)利要求5所述的方法,其特征在于所述方法步驟(2)中當(dāng)應(yīng)用程序請求復(fù)位看門狗信號,復(fù)位模塊接受復(fù)位信號,重啟操作系統(tǒng)進(jìn)行復(fù)位。
8. 根據(jù)權(quán)利要求5所述的方法,其特征在于所述操作系統(tǒng)為嵌入式li皿x系統(tǒng)。
全文摘要
本發(fā)明公開了一種操作系統(tǒng)內(nèi)核級實時看門狗監(jiān)控裝置,包括看門狗模塊,其特征在于所述看門狗模塊設(shè)置在系統(tǒng)內(nèi)核內(nèi),且通過內(nèi)核級驅(qū)動對應(yīng)用程序進(jìn)行注冊、取消注冊和復(fù)位操作,所述內(nèi)核看門狗模塊至少包括定時器模塊,所述定時器模塊用于當(dāng)定時器內(nèi)規(guī)定時間輪轉(zhuǎn)到后進(jìn)行檢測每個已注冊的應(yīng)用程序是否超時,當(dāng)已注冊的應(yīng)用程序超時時所述看門狗模塊啟動復(fù)位模塊進(jìn)行操作系統(tǒng)復(fù)位操作;當(dāng)已注冊的應(yīng)用程序未超時時定時器模塊規(guī)定時間繼續(xù)輪轉(zhuǎn);當(dāng)定時器內(nèi)規(guī)定時間未輪轉(zhuǎn)到時,所述看門狗模塊根據(jù)應(yīng)用程序的執(zhí)行啟動注冊模塊或取消注冊模塊或復(fù)位模塊進(jìn)行相應(yīng)操作。該裝置通過運行在內(nèi)核態(tài)的驅(qū)動來完成對應(yīng)用程序的實時監(jiān)控,操作簡單,實時性高。
文檔編號G06F11/30GK101739305SQ201010110390
公開日2010年6月16日 申請日期2010年2月9日 優(yōu)先權(quán)日2010年2月9日
發(fā)明者劉東明, 李承陽, 李新志 申請人:太倉市同維電子有限公司