專利名稱:用于檢測應用程序狀態的檢測系統及方法
技術領域:
本發明涉及一種檢測系統及方法,特別涉及一種用于檢測應用程序狀態的檢測系統及方法。
背景技術:
檢測系統可以用于電子設備(例如,計算機設備,包括:臺式機、筆記本、手持電話、掌上電腦、平板電腦等等)中,來檢測電子設備是否有異常狀況發生。傳統檢測系統通過檢查在電子設備中運行的所有應用程序來檢測電子設備中是否包括計算機病毒。更為具體地,檢測系統將每個應用程序的代碼與病毒數據庫中的代碼作比較,并檢查應用程序是否包括計算機病毒。如果病毒數據庫中可以找到應用程序包括的代碼,那么檢測系統認為應用程序被計算機病毒感染。每次判斷應用程序是否包括計算機病毒,檢測系統需要將電子設備中運行的所有應用程序的代碼和病毒數據庫中的代碼進行比較。因此,檢測過程相對低效而且高耗。
發明內容
本發明要解決的技術問題在于提供一種用于檢測電子設備中運行的應用程序狀態的檢測系統及方法,用來高效地檢測電子設備中是否有異常狀況發生。為解決上述技術問題,本發明提供了一種用于檢測應用程序狀態的檢測系統,所述檢測系統包括:感應端,用來接收指示功率源的供給電流的指示信號,其中所述功率源通過驅動電子設備來運行所述電子設備中置于計算機可讀媒介上的第一應用程序;以及連接至所述感應端的檢測電路,用于根據所述指示信號計算所述供給電流的變化量,根據所述供給電流的變化量估算所述第一應用程序的功耗,以及通過將估算的功耗與參考值進行比較來檢測所述第一應用程序是否有異常狀況發生。本發明所述的檢測系統,所述檢測電路包括連接至所述功率源和所述感應端的監控器,用來根據所述指示信號監控所述功率源的所述供給電流,以及將指示所述供給電流的信息存儲在存儲單元中。本發明所述的檢測系統,所述檢測電路進一步包括連接至所述監控器和所述感應端的處理器,用來從所述存儲單元接收所述信息,根據所述信息計算所述供給電流的所述變化量,根據所述變化量估算所述第一應用程序的所述功耗,以及通過將所述估算的功耗與所述參考值進行比較來檢測所述第一應用程序是否有所述異常狀況發生。本發明所述的檢測系統,所述電子設備包括支持所述第一應用程序的操作系統。本發明所述的檢測系統,所述參考值指示所述第一應用程序的平均功耗。本發明所述的檢測系統,所述檢測電路包括處理器,當所述估算的功耗與所述參考值的差值大于預設的閾值時,所述處理器提供一個指示所述異常狀況發生的信號。本發明所述的檢測系統,所述檢測電路包括處理器,用來計算所述功率源的剩余電能,根據所述剩余電能來檢測所述功率源是否可以驅動所述電子設備來運行置于所述計算機可讀媒介上的第二應用程序,以及在所述電子設備可以運行所述第二應用程序的情況下,估算所述第二應用程序能夠運行的持續時間。本發明所述的檢測系統,所述檢測電路包括處理器,用來將所述功率源的剩余電能從焦耳轉換成卡路里。本發明所述的檢測系統,如果所述第一應用程序被計算機病毒感染,則表示有所述異常狀況發生。本發明所述的檢測系統,如果所述檢測電路檢測到所述第一應用程序發生所述異常狀況,所述檢測電路執行置于所述計算機可讀媒介上的檢測程序以進入病毒數據庫,并將所述第一應用程序的代碼和所述病毒數據庫中的代碼進行比較。本發明所述的檢測系統,如果所述檢測程序確定所述第一應用程序包括計算機病毒,所述檢測電路執行置于所述計算機可讀媒介上的反病毒程序來移除所述計算機病毒。本發明所述的檢測系統,所述檢測電路執行置于所述計算機可讀媒介上的自檢程序,通過將所述第一應用程序的當前代碼長度和預先存儲的代碼長度進行比較來檢查所述第一應用程序是否包括計算機病毒。本發明所述的檢測系統,如果所述當前代碼長度與所述預先存儲的代碼長度不同,所述檢測電路判斷有新的計算機病毒出現,并通過加入所述新的計算機病毒的代碼來更新所述病毒數據庫。本發明所述的檢測系統,進一步包括:與所述功率源串聯連接的感應元件,用來提供所述指示信號,其中所述指示信號包括所述感應元件的電壓。本發明還提供一種用于檢測應用程序狀態的檢測方法,所述檢測方法包括:使用功率源驅動電子設備來運行所述電子設備中置于計算機可讀媒介上的第一應用程序;計算所述功率源的供給電流的變化量;根據所述變化量估算所述第一應用程序的功耗;以及通過將估算的功耗量和參考值進行比較來檢測所述第一應用程序是否有異常狀況發生。本發明所述的檢測方法,進一步包括:根據與所述功率源串聯連接的感應元件的電壓監控所述功率源的所述供給電流;以及根據所述電壓計算所述供給電流的所述變化量。本發明所述的檢測方法,進一步包括:當所述估算的功耗與所述參考值的差值大于預設的閾值時,提供一個指示所述異常狀況發生的信號,其中所述參考值指示所述第一應用程序的平均功耗。本發明所述的檢測方法,進一步包括:計算所述功率源的剩余電能;根據所述剩余電能來檢測所述功率源是否可以驅動所述電子設備來運行置于所述計算機可讀媒介上的第二應用程序;以及如果所述電子設備可以運行所述第二應用程序,估算所述第二應用程序能夠運行的持續時間。本發明所述的檢測方法,其中,如果所述第一應用程序被計算機病毒感染,則表示有所述異常狀況發生。本發明的檢測系統及方法可以用在各種場合,例如,臺式機、筆記本、手持電話、掌上電腦,平板電腦等等。與現有技術中將所有應用程序的代碼和病毒數據庫中的代碼進行比較的檢測過程相比,本發明的檢測過程效率更高,消耗資源更少。
以下結合附圖對本發明的技術方案進行詳細的說明,以使本發明的特性和優點更為明顯。
圖1A是根據本發明一個實施例的電子設備的方框示意圖。圖1B是根據本發明的如圖1A所示實施例的電子設備的電路示意圖。圖2是根據本發明一個實施例的電子設備的軟件拓撲示意圖。圖3是根據本發明一個實施例的處理器的操作流程示意圖。圖4是根據本發明一個實施例的檢測系統的操作流程示意圖。
具體實施例方式以下將對本發明的實施例給出詳細的說明。在以下對本發明的詳細描述中,為了提供一個針對本發明的完全的理解,闡明了大量的具體細節。然而,本領域技術人員將理解,沒有這些具體細節,本發明同樣可以實施。在另外的一些實例中,對于大家熟知的方案、流程、元件和電路未作詳細描述,以便于凸顯本發明的主旨。在一個實施例中,本發明提供了一種檢測系統,用于監控在電子設備中運行的應用程序狀態,并通過將估算的功耗與參考值進行比較來檢測應用程序是否有異常狀況發生。圖1A是根據本發明一個實施例的電子設備100的方框示意圖。電子設備100包括操作系統,其中操作系統用來支持應用程序并作為應用程序和電子設備100中的硬件之間的中介。例如,電子設備100可以是但不限于,臺式機、筆記本、手持電話、掌上電腦或者平板電腦。電子設備100包括功率源102和檢測系統120。在一個實施例中,功率源102包括可反復充電電池包,例如鋰離子電池、鎳鎘電池、鉛酸電池、太陽能電池等等。在另一個實施例中,功率源102包括適配器。功率源102用來驅動電子設備100的處理器(例如,中央處理器),從而運行電子設備100中置于計算機可讀媒介上的一個或多個應用程序。功率源102也可以驅動電子設備100的其他負載,例如顯示屏或者交互界面。連接至功率源102的檢測系統120用來檢測是否有異常狀況發生。在一個實施例中,如果應用程序被計算機病毒或其他類型的惡意軟件感染,則表示有異常狀況發生。更具體地,檢測系統120包括感應元件112和檢測電路104。感應元件112 (例如,電阻)與功率源102串聯連接。當電子設備100運行一個或多個應用程序時,功率源102的供給電流I1O2流經感應元件112。感應元件112給檢測電路104提供指示信號,該指示信號指示功率源102的供給電流11(12。檢測電路104通過感應端接收指示信號。檢測電路104根據指示信號計算供給電流Iltl2的變化量來估算應用程序的功耗,并將估算的功耗和與應用程序對應的參考值Pk進行比較來檢測是否有異常狀況發生。參考值Pk指的是當應用程序在正常狀況下運行時,應用程序對應的平均功耗。圖1B是根據本發明一個實施例的圖1A中電子設備100的電路示意圖。在圖1B所示的實施例中,檢測電路104包括監控器108(例如,監控芯片)和處理器110(例如,微處理器(microprocessor,簡稱為 μ P)和數字信號處理(digital signal processing,簡稱為DSP)芯片,如基于X86或者ARM平臺的CPU)。檢測電路104還包括計算機可讀媒介(例如,存儲器116),來存儲由處理器110執行的計算機可讀指令。存儲器116可植入處理器110內部(如圖1B所示),或位于處理器110外部。監控器108通過串行數據(serialdata,簡稱為SDA)總線和串行時鐘serial clock,簡稱為SCL)總線連接至處理器110。功率源102連接至監控器108。感應元件112 (例如,電阻Rs)串聯連接至處理器110,并通過感應端106連接至監控器108。功率源102驅動處理器110來運行置于存儲器116上的一個或多個應用程序。如果運行的應用程序數量增加,流經感應元件112的功率源102的供給電流Iltl2也相應增加。在一個實施例中,供給電流Iltl2的增加量可以用來估算應用程序的功耗。感應元件112向監控器108提供指示信號,該指示信號指示功率源102的供給電流11(12。指示信號可以是感應元件112上的電壓。監控器108通過監控感應元件112的電壓來監控功率源102的供給電流11(12,并將指示供給電流Iltl2的信息存儲在存儲單元(例如,監控器108的寄存器)中。處理器110通過執行存儲于存儲器116中的計算機可讀指令,從上述存儲單元接收指示供給電流Iltl2的信息,并根據指示供給電流Iltl2的信息來計算供給電流Iltl2的變化量。另外,處理器110根據供給電流Iltl2的變化量估算應用程序的功耗,并將估算的功耗和與應用程序對應的參考值Pk進行比較來檢測是否有異常狀況發生。操作時,在一個實施例中,監控器108通過感應端106接收指示信號(例如,感應元件112的電壓),將指示信號轉換成指示供給電流Iltl2的數字信息,并將該數字信息存儲到存儲單元。處理器110通過SDA總線和SCL總線從存儲單元中接收供給電流Iltl2的數字信息,并根據該數字信息計算供給電流Iltl2的變化量。舉例來說,當應用程序APPl沒有激活時,功率源102的供給電流Iltl2具有第一電流值;當應用程序APPl激活時,功率源102的供給電流Iltl2具有第二電流值。其中,當應用程序在電子設備100中運行時,表示應用程序激活;否則,表示應用程序未激活。功率源102的供給電流Iltl2的變化量(例如,第一電流值與第二電流值之差)可以用來估算應用程序APPl的功耗。更具體地,處理器110通過將供給電流Iltl2的變化量與功率源102的電壓相乘來估算應用程序APPl的功耗。在另一個實施例中,處理器110在應用程序APPl沒有激活時,通過將第一電流值與功率源102的電壓相乘得到第一功耗;在應用程序APPl激活時,通過將第二電流值與功率源102的電壓相乘得到第二功耗。應用程序APPl的功耗取決于第一功耗和第二功耗的差值。處理器110通過將估算的功耗和與應用程序APPl對應的參考值Pk進行比較來檢測是否有異常狀況發生。在一個實施例中,參考值Pk表示電子設備100工作于正常狀況時(例如,沒有計算機病毒的情況下)應用程序APPl的平均功耗。在一個實施例中,如果估算的功耗與參考值Pk之間的差值DIF大于預設的閾值,處理器110提供一個警告信號(例如,中斷信號)來指示有異常狀況發生。在一個實施例中,如果應用程序被計算機病毒或其他類型的惡意軟件感染,則表示有異常狀況發生。響應于警告信號,處理器110可以進一步運行置于存儲器116上的檢測程序(例如,安全軟件)來檢查應用程序APP1。舉例來說,如果檢測電路104的處理器110檢測到應用程序APPl有異常狀況發生,處理器110執行置于存儲器116上的檢測程序以進入預設的病毒數據庫,將應用程序APPl的代碼與預設的病毒數據庫中的代碼進行比較,并檢查應用程序APPl是否包含計算機病毒。如果檢測程序認為應用程序APPl包括計算機病毒,檢測電路104的處理器110執行置于存儲器116上的反病毒程序來移除該計算機病毒或卸載應用程序APP1。如果應用程序APPl的代碼在病毒數據庫中沒有找到,處理器110執行置于存儲器116上的自檢程序,通過將應用程序APPl的當前代碼長度和預先存儲的代碼長度進行比較來檢查應用程序APPl是否包括計算機病毒。其中,“當前代碼長度”指的是應用程序APPl在當前時刻的代碼長度。“預先存儲的代碼長度”指的是預先在正常狀況下確定的并存儲于存儲器116中的應用程序APPl的代碼長度。如果當前代碼長度等于預先存儲的代碼長度,那么自檢程序認為應用程序APPl不包括計算機病毒。如果當前代碼長度與預先存儲的代碼長度不同,那么檢測電路104認為發現了新的計算機病毒,并將新的計算機病毒的代碼加入到病毒數據庫中來更新病毒數據庫。與應用程序APPl對應的參考值Pk表示應用程序APPl的功耗平均值。舉例來說,在正常狀況下,當電子設備100第一次運行應用程序APPl時,處理器110估算應用程序APPl的功耗P0W1,并將估算的功耗POWl存儲到處理器110的存儲元件中(例如,存儲器116)。估算的功耗POWl作為與應用程序APPl對應的參考值Ρκ。在正常狀況下,當電子設備100第二次運行應用程序APPl時,處理器110再一次估算應用程序APPl的功耗P0W2。與應用程序APP I對應的參考值Pk由估算的功耗POWl和P0W2的平均值決定(例如,參考值Pk等于(P0Wl+P0W2)/2)。處理器110更新存儲元件中的參考值Ρκ。因此,當電子設備100在正常狀況下工作,處理器110每次運行應用程序APPl時,處理器110通過計算應用程序APPl的當前功耗與存儲在存儲元件中的參考值Pk之間的平均值來更新存儲元件中的與應用程序APPl對應的參考值Ρκ。有利的是,處理器110可以獲得更準確的參考值Ρκ。在一個實施例中,處理器110通過周期性地檢測檢測系統120的功耗來檢測是否有異常狀況發生。處理器110通過將功耗差PDO與預定義閾值Pdth進行比較來檢測是否有異常狀況發生。更具體地,處理器110以1/TDE。的頻率估算檢測系統120的功耗。例如,處理器110在時刻\、時刻(ti+T.)、時刻(ti+ZXT.)等估算監測系統120的功耗。處理器110計算時刻\與時刻(h+T.)之間的功耗差(例如,PDl)。類似地,處理器110計算時刻(ti+TDEC)與時刻Uwxtdec)之間的功耗差(例如,TO2)。如果電子設備100工作在正常狀況下,并且電子設備100在時刻t1、時刻(ti+T.)以及時刻(ti+ZXT.)時運行相同的應用程序,那么PDl與PD2的差值在一定范圍內,例如在(-PDTH,PDTH)范圍內。如果電子設備100在時刻tk的功耗與時刻(tk+TDEC)的功耗之差PDO不在(-PDTH,PDTH)范圍內,并且處理器110檢測到電子設備100在時刻t1、時刻(ti+T.)、時刻(tWXT.)、時刻tk以及時刻(tk+TDEC)時運行相同的應用程序,那么處理器110提供警告信號(例如,中斷信號)來指示有異常狀況發生。異常狀況可能由運行在處理器110中不可見的病毒程序引起。警告信號會激活置于存儲器116上的病毒掃描程序,來掃描在處理器110中運行的應用程序。如果電子設備100在時刻tk的功耗與時刻(tk+TDEC)的功耗之差PDO在(-PDTH,PDTH)范圍內,那么可以認為電子設備100工作在正常狀況下。在一個實施例中,tk為不同于ti的任意時刻。在一個實施例中,功率源102可以是電池包。處理器110計算功率源102的剩余電能,并根據剩余電能判斷功率源102是否可以驅動電子設備100來運行置于存儲器116上的應用程序APP2。如果功率源102的剩余電能足夠運行應用程序APP2,處理器110還可以估算應用程序APP2能夠運行的持續時間TKUN。本發明結合應用程序APPl和APP2進行描述僅作為示例性說明。然而,應用程序的數量可以變化,而且功率源102可以驅動電子設備100運行其他數量的應用程序。
在一個實施例中,功率源102的剩余電量可以通過使用監控器108中的計數芯片進行庫倫計數得到。處理器110通過將功率源102的剩余電量與功率源102的電壓相乘來估算功率源102的剩余電能。處理器110通過將剩余電能除以4.186來將功率源102的剩余電能從焦耳轉換成卡路里。因此,顯示屏可以以卡路里為單位來顯示功率源102的剩余電能。另外,處理器110以卡路里為單位計算一段時間(例如,I秒)內應用程序消耗的電能E1。電能El可以顯示在顯示屏上。而且,處理器110可以計算應用程序從開始運行到當前時刻的運行時間,并以卡路里為單位計算應用程序在該運行時間內消耗的電能E2。電能E2可以顯示在顯示屏上。有利的是,檢測系統120可以通過計算電子設備100中正在運行的應用程序APPl的功耗來檢測是否有異常狀況發生。如果檢測系統120檢測到應用程序APPl有異常狀況發生,那么檢測系統120將應用程序APPl的代碼和預設病毒數據庫中的代碼進行比較,并檢查該應用程序APPl是否被計算機病毒感染。因此與現有技術中將所有應用程序的代碼和病毒數據庫中的代碼進行比較的檢測過程相比,本發明的檢測過程效率更高,消耗資源更少。檢測系統120還可以讓終端用戶了解功率源102的剩余電能是否足夠運行另一個應用程序APP2。如果功率源102的剩余電能足夠運行另一個應用程序APP2,檢測系統120可以進一步估算應用程序APP2能夠運行的持續時間Tra。而且,檢測系統120可以(例如,以卡路里為單位)通過在顯示屏上顯示功率源102的剩余電能和一個或多個應用程序的功耗來提供用戶友好界面。圖2是根據本發明一個實施例的電子設備100的軟件拓撲200的示意圖。圖2結合圖1A和圖1B進行描述。在圖2的實施例中,軟件拓撲200包括應用監控程序202、估算程序204、校準程序206、應用數據庫208、檢測程序210、病毒數據庫212,反病毒程序214、自檢程序216、系統監控程序218以及病毒掃描程序220。在一個實施例中,應用監控程序202、估算程序204、校準程序206、檢測程序210、反病毒程序214、自檢程序216、系統監控程序218以及病毒掃描程序220是放置于計算機可讀媒介(例如,存儲器116)上的計算機可讀指令,并可以通過處理器110的執行來提供各種功能。在一個實施例中,應用數據庫208和病毒數據庫212放置在計算機可讀媒介(例如,存儲器116)上。在正常狀況下,應用監控程序202、估算程序204、校準程序206、檢測程序210、反病毒程序214、自檢程序216、系統監控程序218以及病毒掃描程序220的功耗相對小而且穩定。因此,不會影響到電子設備100中運行的其他應用程序功耗的估算。應用監控程序202用來檢測應用程序是否開始運行。估算程序204用來估算應用程序(例如,應用程序APP1)的功耗。應用數據庫208用來存儲一個或多個應用程序的信息。該信息包括應用程序名、應用程序的估算功耗以及預先存儲的應用程序的平均功耗等等。校準程序206用來計算應用程序APPl的平均功耗,并通過將計算得到的平均功耗的信息寫入應用數據庫208來更新應用數據庫208。病毒數據庫212存儲不同的計算機病毒的信息(例如,代碼)。檢測程序210可以進入病毒數據庫212,并通過在病毒數據庫212中搜尋應用程序APPl的代碼來檢查應用程序APPl是否包括計算機病毒。反病毒程序214用來移除計算機病毒。自檢程序216用來將應用程序APPl的當前代碼長度和預先存儲的代碼長度進行比較。預先存儲的代碼長度存儲在應用數據庫208中。系統監控程序218用來周期性地檢測電子設備100的功耗,并根據上述功耗差PDO和范圍(_PDTH,PDTH)來檢測是否有異常狀況發生。病毒掃描程序220用來掃描在處理器110中運行的應用程序,并結合病毒數據庫212來檢查在處理器110中運行的應用程序是否包括計算機病毒。應用監控程序202、估算程序204、校準程序206、檢測程序210、反病毒程序214、自檢程序216、系統監控程序218及病毒掃描程序220的操作在圖3中具體描述。圖3是根據本發明一個實施例的處理器110的操作流程示意圖300。盡管圖3中公開了具體的步驟,但這些步驟僅是示例性的。也就是說,本發明可以很好地適用于各種其他步驟或圖3中所示步驟的變形。在一個實施例中,操作流程示意圖300作為存儲在計算機可讀媒介(例如,存儲器116)中的計算機可讀指令來完成。圖3結合圖1A、圖1B和圖2進行描述。步驟302中,處理器110執行監控功能。例如,處理器110執行系統監控程序218和應用監控程序202。步驟304中,處理器110執行系統監控程序218,從而根據上述功耗差PDO和范圍(-Pdth^dth)來周期性地檢測是否有異常狀況發生。如果功耗差PDO在(_PDTH,PDTH)范圍內,則處理器Iio認為電子設備100工作在正常狀況下。如果功耗差PDO不在(_PDTH,Pdth)范圍內,則處理器110認為有異常狀況發生。步驟306中,如果處理器100檢測到異常狀況發生(例如,功耗差PDO不在(_PDTH,Pdth)范圍內),則流程圖300轉到步驟308 ;否則,回到步驟304。步驟308中,處理器110產生警 告信號來激活病毒掃描程序220,進而掃描在電子設備100中運行的應用程序。如果發現了計算機病毒,病毒掃描程序220執行反病毒程序214來移除計算機病毒或卸載被計算機病毒感染的應用程序。步驟310中,處理器110執行應用監控程序202來檢測應用程序是否開始運行,例如,通過周期性地進入任務管理器來檢測。如果應用程序APPl開始運行,流程圖300轉到步驟312 ;否則,回到步驟310。步驟312中,處理器110執行估算程序204來估算應用程序APPl的功耗。步驟314中,應用監控程序202判斷應用程序APPl是否是在電子設備100中第一次運行的新的應用程序。如果應用程序APPl是新的應用程序,流程圖轉到步驟316 ;否則,轉到步驟318。步驟316中,處理器110通過將應用程序APPl的信息增加到應用數據庫208中來更新應用數據庫208。步驟318中,估算程序204計算估算的功耗與參考值Pk (例如,預先存儲在應用數據庫208中程序APPl的平均功耗)之間的差值DIF。舉例來說,應用數據庫208預先存儲一個或多個應用程序(包括應用程序APP1)的平均功耗信息。估算程序204從應用數據庫208中獲取應用程序APPl預先存儲的平均功耗信息,并計算估算的功耗和預先存儲的平均功耗的差值DIF。步驟320中,估算程序204通過將差值DIF和預設的閾值進行比較來檢測是否有異常狀況發生。如果差值DIF小于預設的閾值,那么處理器110認為電子設備100工作在正常狀況下,流程圖300轉到步驟322。然而,如果差值DIF大于預設的閾值,那么處理器110認為有異常狀況發生,流程圖300轉到步驟324。步驟322中,校準程序206根據估算的功耗與預先存儲的平均功耗來重新計算應用程序APPl的平均功耗。隨后轉到步驟316,校準程序206通過用重新計算的平均功耗來代替預先存儲的平均功耗進一步更新應用數據庫208。步驟324中,估算程序204向檢測程序210提供警告信號(例如,中斷信號)。步驟326中,檢測程序210進入病毒數據庫212,并將應用程序APPl的代碼和病毒數據庫212中的代碼進行比較。步驟328中,如果應用程序APPl的代碼與病毒數據庫212中的計算機病毒代碼相匹配,則應用程序APPl被認為感染了計算機病毒,流程圖300轉到步驟330。否則,流程圖300轉到步驟332來執行自檢過程。步驟330中,檢測程序210激活反病毒程序214來移除計算機病毒或卸載應用程序 APPl。步驟332中,自檢程序216將應用程序APPl的當前代碼長度和預先存儲的代碼長度進行比較。如果代碼長度改變(例如,當前代碼長度與預先存儲的代碼長度不同),那么流程圖300轉到步驟334。如果代碼長度沒有改變(例如,當前代碼長度與預先存儲的代碼長度相同),那么流程圖300轉到步驟336。步驟334中,自檢程序216認為發現了新的計算機病毒,并通過添加新計算機病毒的代碼來更新病毒數據庫212。步驟336中,自檢程序216認為電子設備100工作在正常狀況下,并且檢測程序210放棄由估算程序204提供的警告信號。圖4是根據本發明一個實施例的圖1A中檢測系統120的操作流程示意圖。圖4結合圖1A、圖1B、圖2和圖3進行描述。盡管圖4中公開了具體的步驟,但這些步驟僅是示例性的。也就是說,本發明可以很好地適用于各種其他步驟或圖4中所示步驟的變形。步驟402中,功率源102驅動設備(例如,電子設備100)來運行設備中置于計算機可讀媒介上的應用程序(例如,應用程序APP1)。步驟404中,處理器110計算功率源102的供給電流(例如,供給電流Iltl2)的變化量。舉例來說,當應用程序APPl未運行時,功率源102的供給電流Iltl2具有第一電流值,而且當應用程序APPl運行時,功率源102的供給電流Iltl2具有第二電流值。功率源102供給電流Iltl2的變化量由第一電流值與第二電流值的差值決定。步驟406中,處理器110根據變化量估算應用程序(例如,應用程序APP1)的功耗。舉例來說,處理器Iio通過將供給電流Iltl2的變化量與功率源102的電壓相乘來估算應用程序APPl的功耗。步驟408中,處理器110通過將估算的功耗和與應用程序對應的參考值Pk進行比較來檢測是否有異常狀況發生。舉例來說,如果估算的功耗與參考值Pk之間的差值大于預設的閾值,則處理器110提供警告信號指示有異常狀況發生。在一個實施例中,如果應用程序被計算機病毒或其他類型的惡意軟件感染,那么表示有異常狀況發生。因此,檢測系統通過計算電子設備供給電流的變化量來計算電子設備中運行的應用程序的功耗。該檢測系統通過將應用程序所消耗的估算功耗和與應用程序對應的參考值進行比較來檢測是否有異常狀況發生。該檢測系統可以用于各種應用,例如臺式機、筆記本、手持電話、掌上電腦、平板電腦等等。最后應當說明的是,以上實施例僅用來說明本發明而非限制,盡管參照較佳實施例對本發明進行了詳細描述,本領域的普通技術人員應當理解,可以對本發明進行修改或者等同替換,而不脫離本發明的精神和范圍,其均應涵蓋在本發明的權利要求范圍當中。
權利要求
1.一種檢測系統,用于檢測應用程序狀態,其特征在于,所述檢測系統包括: 感應端,用來接收指示功率源的供給電流的指示信號,其中所述功率源驅動電子設備來運行所述電子設備中置于計算機可讀媒介上的第一應用程序;以及 連接至所述感應端的檢測電路,用于根據所述指示信號計算所述供給電流的變化量,根據所述供給電流的變化量估算所述第一應用程序的功耗,以及通過將估算的功耗與參考值進行比較來檢測所述第一應用程序是否有異常狀況發生。
2.根據權利要求1所述的檢測系統,其特征在于, 所述檢測電路包括連接至所述功率源和所述感應端的監控器,用來根據所述指示信號監控所述功率源的所述供給電流,以及將指示所述供給電流的信息存儲在存儲單元中。
3.根據權利要求2所述的檢測系統,其特征在于, 所述檢測電路進一步包括連接至所述監控器和所述感應端的處理器,用來從所述存儲單元接收所述信息,根據所述信息計算所述供給電流的所述變化量,根據所述變化量估算所述第一應用程序的所述功耗,以及通過將所述估算的功耗與所述參考值進行比較來檢測所述第一應用程序是否有所述異常狀況發生。
4.根據權利要求1所述的檢測系統,其特征在于, 所述電子設備包括 支持所述第一應用程序的操作系統。
5.根據權利要求1所述的檢測系統,其特征在于, 所述參考值指示所述第一應用程序的平均功耗。
6.根據權利要求5所述的檢測系統,其特征在于, 所述檢測電路包括處理器,當所述估算的功耗與所述參考值的差值大于預設的閾值時,所述處理器提供一個指示所述異常狀況發生的信號。
7.根據權利要求1所述的檢測系統,其特征在于, 所述檢測電路包括處理器,用來計算所述功率源的剩余電能,根據所述剩余電能來檢測所述功率源是否可以驅動所述電子設備來運行置于所述計算機可讀媒介上的第二應用程序,以及在所述電子設備可以運行所述第二應用程序的情況下,估算所述第二應用程序能夠運行的持續時間。
8.根據權利要求1所述的檢測系統,其特征在于, 所述檢測電路包括處理器,用來將所述功率源的剩余電能從焦耳轉換成卡路里。
9.根據權利要求1所述的檢測系統,其特征在于, 如果所述第一應用程序被計算機病毒感染,則表示有所述異常狀況發生。
10.根據權利要求1所述的檢測系統,其特征在于, 如果所述檢測電路檢測到所述第一應用程序發生所述異常狀況,所述檢測電路執行置于所述計算機可讀媒介上的檢測程序以進入病毒數據庫,并將所述第一應用程序的代碼和所述病毒數據庫中的代碼進行比較。
11.根據權利要求10所述的檢測系統,其特征在于, 如果所述檢測程序確定所述第一應用程序包括計算機病毒,所述檢測電路執行置于所述計算機可讀媒介上的反病毒程序來移除所述計算機病毒。
12.根據權利要求10所述的檢測系統,其特征在于, 所述檢測電路執行置于所述計算機可讀媒介上的自檢程序,通過將所述第一應用程序的當前代碼長度和預先存儲的代碼長度進行比較來檢查所述第一應用程序是否包括計算機病毒。
13.根據權利要求12所述的檢測系統,其特征在于, 如果所述當前代碼長度與所述預先存儲的代碼長度不同,所述檢測電路判斷有新的計算機病毒出現,并通過加入所述新的計算機病毒的代碼來更新所述病毒數據庫。
14.根據權利要求1所述的檢測系統,其特征在于,所述檢測系統進一步包括: 與所述功率源串聯連接的感應元件,用來提供所述指示信號,其中所述指示信號包括所述感應元件的電壓。
15.一種檢測方法,用于檢測應用程序狀態,其特征在于,所述檢測方法包括: 使用功率源驅動電子設備來運行所述電子設備中置于計算機可讀媒介上的第一應用程序; 計算所述功率源的供給電流的變化量; 根據所述變化量估算所述第一應用程序的功耗;以及 通過將估算的功耗和參考值進行比較來檢測所述第一應用程序是否有異常狀況發生。
16.根據權利要求15所述的檢測方法,其特征在于,所述檢測方法進一步包括: 根據與所述功率源串聯連接的感應元件的電壓監控所述功率源的所述供給電流;以及 根據所述電壓計算所述供給 電流的所述變化量。
17.根據權利要求15所述的檢測方法,其特征在于,所述檢測方法進一步包括: 當所述估算的功耗與所述參考值的差值大于預設的閾值時,提供一個指示所述異常狀況發生的信號,其中所述參考值指示所述第一應用程序的平均功耗。
18.根據權利要求15所述的檢測方法,其特征在于,所述檢測方法進一步包括: 計算所述功率源的剩余電能; 根據所述剩余電能來檢測所述功率源是否可以驅動所述電子設備來運行置于所述計算機可讀媒介上的第二應用程序;以及 如果所述電子設備可以運行所述第二應用程序,估算所述第二應用程序能夠運行的持續時間。
19.根據權利要求15所述的檢測方法,其特征在于, 如果所述第一應用程序被計算機病毒感染,則表示有所述異常狀況發生。
全文摘要
本發明提供了一種用于檢測應用程序狀態的檢測系統及方法,該檢測系統包括感應端,用于接收指示功率源供給電流的指示信號,其中所述功率源驅動電子設備來運行所述電子設備中置于計算機可讀媒介上的第一應用程序;以及連接至所述感應端的檢測電路,用于根據所述指示信號計算所述供給電流的變化量,根據所述供給電流的變化量估算所述第一應用程序的功耗,以及通過將估算的功耗與參考值進行比較來檢測所述第一應用程序是否有異常狀況發生。本發明可以高效地檢測電子設備中是否有異常狀況發生。
文檔編號G06F21/57GK103198256SQ20121000679
公開日2013年7月10日 申請日期2012年1月10日 優先權日2012年1月10日
發明者杜珣弤, 華志彬, 李駿 申請人:凹凸電子(武漢)有限公司