專利名稱:心跳檢測方法、系統(tǒng)和中央處理單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備狀態(tài)檢測技術(shù),尤其涉及一種心跳檢測方法、系統(tǒng)和中央 處理單元。
背景技術(shù):
隨著計算機(jī)技術(shù)的不斷發(fā)展,在實際應(yīng)用中對計算機(jī)的處理能力要求也越來越高,目前的計算機(jī)越來越多的采用基于對稱多處理(SMP, Symmetric Multi Processing)系統(tǒng)的組成結(jié)構(gòu),以達(dá)到高處理能力的要求。SMP系統(tǒng)由耦合連接 在高速總線上的多個中央處理單元(CPU, Central Processing Units)組成,可 進(jìn)行多任務(wù)的并發(fā)處理,有利于提高計算機(jī)的性能。由于SMP系統(tǒng)由多個CPU組成,在實際應(yīng)用中,SMP系統(tǒng)需要對各個CPU 的生存狀態(tài)進(jìn)行實時監(jiān)控,而在現(xiàn)有的SMP系統(tǒng)中還沒有一種較為有效的用于 CPU狀態(tài)檢測的方法。發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種心跳檢測方法、系統(tǒng)和中央處 理單元,以解決現(xiàn)有技術(shù)無法實現(xiàn)SMP系統(tǒng)中CPU狀態(tài)檢測的問題。 為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的 本發(fā)明提供了一種心跳檢測方法,包括 設(shè)置用于發(fā)送心跳消息的空閑任務(wù);調(diào)用所述空閑任務(wù)向釆集中央處理單元CPU發(fā)送心跳消息。 所述調(diào)用空閑任務(wù)為根據(jù)所述空閑任務(wù)的優(yōu)先級信息進(jìn)行所述空閑任務(wù) 的調(diào)用。所述空閑任務(wù)的初始優(yōu)先級為低優(yōu)先級。所述調(diào)用空閑任務(wù)向采集CPU發(fā)送心跳消息之前,該方法還包括調(diào)整所 述空閑任務(wù)的優(yōu)先級。所述調(diào)用空閑任務(wù)向釆集CPU發(fā)送心跳消息之后,該方法還包括將所述 空閑任務(wù)的優(yōu)先級恢復(fù)到所述初始優(yōu)先級。本發(fā)明還提供了一種被監(jiān)控CPU,包括相互連接的空閑任務(wù)設(shè)置模塊和 心跳信息發(fā)送模塊;其中,所述空閑任務(wù)設(shè)置模塊,用于設(shè)置發(fā)送心跳消息的空閑任務(wù);所述心跳信息發(fā)送模塊,用于調(diào)用所述空閑任務(wù)向釆集CPU發(fā)送心跳消自所述被監(jiān)控CPU還包括優(yōu)先級調(diào)整模塊,用于在所述心跳信息發(fā)送模塊 調(diào)用所述空閑任務(wù)之前,調(diào)整所述空閑任務(wù)的優(yōu)先級。所述被監(jiān)控CPU還包括優(yōu)先級恢復(fù)模塊,用于在所述心跳信息發(fā)送模塊 調(diào)用空閑任務(wù)發(fā)送心跳消息之后,將所述空閑任務(wù)的優(yōu)先級恢復(fù)到初始優(yōu)先級。本發(fā)明還提供了一種心跳檢測系統(tǒng),包括相互連接的被監(jiān)控CPU和采集 CPU;其中,所述被監(jiān)控CPU,用于調(diào)用設(shè)置的空閑任務(wù)向所述采集CPU發(fā)送心跳消自 所述采集CPU,用于接收所述心跳消息,并對所述心跳消息進(jìn)行分析,得到心跳檢測結(jié)果。所述被監(jiān)控CPU包括相互連接的空閑任務(wù)設(shè)置模塊和心跳信息發(fā)送模 塊;其中,所述空閑任務(wù)設(shè)置模塊,用于設(shè)置發(fā)送心跳消息的空閑任務(wù); 所述心跳信息發(fā)送模塊,用于調(diào)用所述空閑任務(wù)向采集CPU發(fā)送心跳消白本發(fā)明所提供的心跳檢測方法、系統(tǒng)和中央處理單元,應(yīng)用于SMP系統(tǒng)中, 由SMP系統(tǒng)指定采集CPU和被監(jiān)控CPU,被監(jiān)控CPU通過調(diào)用設(shè)置的空閑任 務(wù)向采集CPU發(fā)送心跳消息,采集CPU對心跳消息進(jìn)行接收,并分析得到心跳檢測結(jié)果,/人而實現(xiàn)對SMP系統(tǒng)中CUP狀態(tài)的才企測;本發(fā)明中被監(jiān)控CPU 的空閑任務(wù)初始優(yōu)先級為低優(yōu)先級,并且,空閑任務(wù)的優(yōu)先級可根據(jù)實際需要 進(jìn)行調(diào)整,從而在保證SMP系統(tǒng)中網(wǎng)絡(luò)資源利用率的情況下,使得心跳檢測具 有較高的實時性。
圖1為本發(fā)明一種心跳檢測方法的流程圖; 圖2為本發(fā)明實施例的心跳消息發(fā)送方法的流程圖; 圖3為本發(fā)明實施例的心跳消息采集方法的流程圖; 圖4為本發(fā)明一種心跳檢測系統(tǒng)的組成結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。 本發(fā)明在SMP系統(tǒng)中實現(xiàn)心跳4全測的方法,用于對SMP系統(tǒng)中的CPU狀 態(tài)進(jìn)行檢測。心跳檢測是指兩個或多個獨(dú)立的單元之間通過某種通信手段發(fā)送 約定的心跳消息,以監(jiān)控各單元的生存狀態(tài)的一種方法。本發(fā)明在SMP系統(tǒng)中 的多個CPU中指定某個CPU作為心跳消息的采集者,稱為采集CPU; SMP系 統(tǒng)中除了采集CPU之外的其他CPU稱為被監(jiān)控CPU。被監(jiān)控CPU向采集CPU 發(fā)送心跳消息,由采集CPU根據(jù)實際需要對心跳消息進(jìn)行采集和分析,生成心 跳檢測結(jié)果。本發(fā)明的心跳檢測方法,如圖1所示,該方法主要包括以下步驟 步驟101,被監(jiān)控CPU設(shè)置用于發(fā)送心跳消息的空閑任務(wù)。 每個被監(jiān)控CPU中設(shè)置一個空閑任務(wù),空閑任務(wù)用來實現(xiàn)被監(jiān)控CPU的 心跳消息發(fā)送操作。由于實際應(yīng)用中,心跳消息作為一種非關(guān)鍵性的消息,SMP 系統(tǒng)對心跳信息的實時性要求不高,因此本發(fā)明的被監(jiān)控CPU將空閑任務(wù)默認(rèn) 的初始優(yōu)先級設(shè)置為低優(yōu)先級。步驟102, ^皮監(jiān)控CPU調(diào)用所設(shè)置的空閑任務(wù)向采集CPU發(fā)送心跳消息。設(shè)置空閑任務(wù)的初始優(yōu)先級為低優(yōu)先級,使得被監(jiān)控CPU可根據(jù)自身任務(wù)的緊急情況,來決定是否發(fā)送心跳消息,如果被監(jiān)控CPU中有優(yōu)先級較高的任 務(wù)需要運(yùn)行,則空閑任務(wù)不會被調(diào)用;設(shè)置空閑任務(wù)的初始優(yōu)先級為低優(yōu)先級, 也保證了在被監(jiān)控CPU中沒有其他任務(wù)調(diào)用的情況下,至少存在一個空閑任務(wù) 可以供調(diào)用機(jī)制調(diào)用。另外,空閑任務(wù)的優(yōu)先級可以進(jìn)行調(diào)整,當(dāng)被監(jiān)控CPU有發(fā)送心跳消息的 需求時,被監(jiān)控CPU可以將空閑任務(wù)的優(yōu)先級調(diào)高,使得空閑任務(wù)優(yōu)先被調(diào)用, 在調(diào)用空閑任務(wù)發(fā)送完心跳消息之后,被監(jiān)控CPU可以將空閑任務(wù)的優(yōu)先級恢 復(fù)為初始的優(yōu)先級"i殳置。被監(jiān)控CPU調(diào)用空閑任務(wù)向采集CPU發(fā)送心跳消息之后,采集CPU可以根據(jù)實際需要決定是否對心跳消息進(jìn)行采集和進(jìn)一步分析,經(jīng)過分析可以得到心跳檢測結(jié)果。由此可知,被監(jiān)控CPU進(jìn)行心跳消息的發(fā)送并不需要由釆集 CPU進(jìn)行控制,采集CPU也不需要對心跳消息的發(fā)送情況進(jìn)行時時關(guān)注,采 集CPU只需要在有心跳消息采集的需求時,對收到的心跳消息進(jìn)行釆集和進(jìn)一步分析。下面結(jié)合圖2對本發(fā)明實施例的心跳消息發(fā)送方法進(jìn)一步詳細(xì)闡述,如圖 2所示,該方法主要包括以下步驟步驟201,被監(jiān)控CPU判斷是否有改變空閑任務(wù)優(yōu)先級的需求,如果有, 則轉(zhuǎn)到步驟202;否則,轉(zhuǎn)到步驟205。被監(jiān)控CPU確定用于標(biāo)志改變空閑任務(wù)優(yōu)先級需求的標(biāo)志位是否置位,如 果置位,則表明被監(jiān)控CPU有改變空閑任務(wù)優(yōu)先級的需求;否則,表明被監(jiān)控 CPU沒有改變空閑任務(wù)優(yōu)先級的需求。需要指出的是,用于標(biāo)志改變空閑任務(wù)優(yōu)先級需求的標(biāo)志位是在步驟201 之前,由工作人員在被監(jiān)控CPU上預(yù)先進(jìn)行設(shè)置的。在有改變空閑任務(wù)優(yōu)先級 的需求時,工作人員將用于標(biāo)志改變空閑任務(wù)優(yōu)先級需求的標(biāo)志位置位;否則, 不用置位。步驟202,被監(jiān)控CPU將空閑任務(wù)的優(yōu)先級調(diào)整到指定的優(yōu)先級。步驟203,被監(jiān)控CPU判斷是否需要保持調(diào)整后的優(yōu)先級,如果是,則轉(zhuǎn) 到步驟205;否則,轉(zhuǎn)到步驟204。被監(jiān)控CPU確定用于標(biāo)志保持調(diào)整后優(yōu)先級的標(biāo)志位是否置位,如果置 位,則表明被監(jiān)控CPU有保持調(diào)整后優(yōu)先級的需求;否則,表明該被監(jiān)控CPU 沒有保持調(diào)整后優(yōu)先級的需求。需要指出的是,用于標(biāo)志保持調(diào)整后優(yōu)先級的標(biāo)志位是在步驟201之前, 由工作人員在被監(jiān)控CPU上預(yù)先進(jìn)行設(shè)置的。在有保持調(diào)整后優(yōu)先級的需求 時,工作人員將用于標(biāo)志保持調(diào)整后優(yōu)先級的標(biāo)志位置位;否則,不用置位。步驟204,被監(jiān)控CPU設(shè)置空閑任務(wù)優(yōu)先級需要恢復(fù)的標(biāo)志。步驟205,被監(jiān)控CPU查找有無其他的任務(wù)優(yōu)先級比空閑任務(wù)的當(dāng)前優(yōu)先 級高,如果有,則轉(zhuǎn)到步驟206;否則,轉(zhuǎn)到步驟207。步驟206,被監(jiān)控CPU調(diào)用比空閑任務(wù)優(yōu)先級高的任務(wù)并執(zhí)行相應(yīng)任務(wù)處理。被監(jiān)控CPU在調(diào)用其他任務(wù)時,可提出調(diào)整空閑任務(wù)優(yōu)先級的需求,調(diào)整 空閑任務(wù)優(yōu)先級,從而返回到步驟201的操作。步驟207,被監(jiān)控CPU調(diào)用空閑任務(wù)向釆集CPU發(fā)送心跳消息。步驟208,被監(jiān)控CPU判斷是否需要恢復(fù)空閑任務(wù)的優(yōu)先級,如果是,則 轉(zhuǎn)到步驟209;否則,結(jié)束該流程。被監(jiān)控CPU發(fā)送完心跳消息之后,確定標(biāo)志恢復(fù)空閑任務(wù)優(yōu)先級的標(biāo)志位 是否置位,如果置位,則表明被監(jiān)控CPU需要恢復(fù)空閑任務(wù)的優(yōu)先級為初始的 優(yōu)先級;否則,表明被監(jiān)控CPU不需要將空閑任務(wù)的優(yōu)先級恢復(fù)為初始的優(yōu)先 級。標(biāo)志恢復(fù)空閑任務(wù)優(yōu)先級的標(biāo)志位,是在步驟204中進(jìn)行設(shè)置的。步驟209,被監(jiān)控CPU將空閑任務(wù)的優(yōu)先級恢復(fù)為初始的優(yōu)先級,并結(jié)束 該流程。下面結(jié)合圖3對本發(fā)明實施例的心跳消息接收方法進(jìn)一步詳細(xì)闡述,如圖 3所示,該方法主要包括以下步驟步驟301,采集CPU判斷是否有采集心跳消息的需求,如果有,則轉(zhuǎn)到步驟302;否則,轉(zhuǎn)到步驟306。采集CPU確定用于標(biāo)志采集心跳消息需求的標(biāo)志位是否置位,如果置位, 則表明采集CPU有采集心跳消息的需求;否則,表明采集CPU沒有采集心跳 消息的需求。需要指出的是,用于標(biāo)志采集心跳消息需求的標(biāo)志位是在步驟301之前, 由工作人員在采集CPU上預(yù)先進(jìn)行設(shè)置的。在有采集心跳消息的需求時,工作 人員將標(biāo)志采集心跳消息需求的標(biāo)志位置位;否則,不用置位。步驟302,采集CPU對接收到的心跳消息進(jìn)行采集。步驟303,采集CPU判斷采集到的心跳消息是否出現(xiàn)異常,如果出現(xiàn)異常, 則轉(zhuǎn)到步驟304;否則,轉(zhuǎn)到步驟306。采集CPU確定采集到的心跳消息格式是否合法,從而判斷心跳消息是否異常。步驟304,采集CPU判斷是否提供有異常處理機(jī)制,如果有,則轉(zhuǎn)到步驟 305;否則,轉(zhuǎn)到步驟306。采集CPU確定異常處理的標(biāo)志位是否置位,如果置位,則表明采集CPU 提供有異常處理機(jī)制;否則,表明采集CPU沒有提供異常處理機(jī)制。需要指出的是,異常處理的標(biāo)志位是在步驟301之前,由工作人員在采集 CPU上預(yù)先進(jìn)行設(shè)置的。在有異常處理的需求時,工作人員將異常處理的標(biāo)志 位置位;否則,不用置位。步驟305,采集CPU對存在異常的心跳消息進(jìn)行異常處理。步驟306,執(zhí)行完心跳消息的采集和分析操作之后,采集CPU轉(zhuǎn)到其他任 務(wù)執(zhí)行。為了實現(xiàn)上述本發(fā)明的心跳檢測方法,本發(fā)明還提供了一種心跳檢測系統(tǒng), 如圖4所示,該系統(tǒng)包括相互連接的被監(jiān)控CPU10和采集CPU20。被監(jiān)控 CPU10,用于調(diào)用設(shè)置的空閑任務(wù)向采集CPU20發(fā)送心跳消息。采集CPU20, 用于接收來自被監(jiān)控CPU10的心跳消息,并對心跳消息進(jìn)行分析,得到心跳檢 測結(jié)果。心跳檢測系統(tǒng)中CPU10可以同時有多個。其中,被監(jiān)控CPU10包括空閑任務(wù)設(shè)置模塊ll、心跳信息發(fā)送模塊12、 優(yōu)先級調(diào)整模塊13和優(yōu)先級恢復(fù)模塊14??臻e任務(wù)設(shè)置模塊ll,用于設(shè)置發(fā) 送心跳消息的空閑任務(wù)。心跳信息發(fā)送模塊12,連接空閑任務(wù)設(shè)置模塊11,用 于調(diào)用設(shè)置的空閑任務(wù)向采集CPU20發(fā)送心跳消息。優(yōu)先級調(diào)整模塊13,連 接空閑任務(wù)設(shè)置模塊11和心跳信息發(fā)送模塊12,用于在心跳信息發(fā)送模塊12 調(diào)用空閑任務(wù)進(jìn)行心跳信息發(fā)送之前,調(diào)整空閑任務(wù)的優(yōu)先級,并將調(diào)整后的 優(yōu)先級信息發(fā)送給空閑任務(wù)設(shè)置模塊11。優(yōu)先級恢復(fù)模塊14,連接空閑任務(wù)設(shè) 置模塊11和心跳信息發(fā)送模塊12,用于在心跳信息發(fā)送模塊12調(diào)用空閑任務(wù) 發(fā)送心跳消息之后,通知空閑任務(wù)設(shè)置模塊11將空閑任務(wù)的優(yōu)先級恢復(fù)到初始 優(yōu)先級。綜上所述,本發(fā)明所提供的心跳檢測方法、系統(tǒng)和CPU,應(yīng)用于SMP系 統(tǒng)中的CPU狀態(tài)檢測,本發(fā)明的空閑任務(wù)初始優(yōu)先級為低優(yōu)先級,并且空閑任 務(wù)的優(yōu)先級可以調(diào)整;相比現(xiàn)有技術(shù)中以固定頻率發(fā)送心跳消息的方法,本發(fā) 明在保證SMP系統(tǒng)中網(wǎng)絡(luò)資源利用率的情況下,使得心跳檢測具有較高的實時 性。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種心跳檢測方法,其特征在于,包括設(shè)置用于發(fā)送心跳消息的空閑任務(wù);調(diào)用所述空閑任務(wù)向采集中央處理單元CPU發(fā)送心跳消息。
2、 根據(jù)權(quán)利要求1所述心跳檢測方法,其特征在于,所述調(diào)用空閑任務(wù)為 根據(jù)所述空閑任務(wù)的優(yōu)先級信息進(jìn)行所述空閑任務(wù)的調(diào)用。
3、 根據(jù)權(quán)利要求1或2所述心跳檢測方法,其特征在于,所述空閑任務(wù)的 初始優(yōu)先級為低優(yōu)先級。
4、 根據(jù)權(quán)利要求3所述心跳檢測方法,其特征在于,所述調(diào)用空閑任務(wù)向 采集CPU發(fā)送心跳消息之前,該方法還包括調(diào)整所述空閑任務(wù)的優(yōu)先級。
5、 根據(jù)權(quán)利要求3所述心跳檢測方法,其特征在于,所述調(diào)用空閑任務(wù)向 采集CPU發(fā)送心跳消息之后,該方法還包括將所述空閑任務(wù)的優(yōu)先級恢復(fù)到 所述初始優(yōu)先級。
6、 一種被監(jiān)控CPU,其特征在于,包括相互連接的空閑任務(wù)設(shè)置模塊 和心跳信息發(fā)送模塊;其中,所述空閑任務(wù)設(shè)置模塊,用于設(shè)置發(fā)送心跳消息的空閑任務(wù); 所述心跳信息發(fā)送模塊,用于調(diào)用所述空閑任務(wù)向采集CPU發(fā)送心跳消自
7、 根據(jù)權(quán)利要求6所述被監(jiān)控CPU,其特征在于,所述被監(jiān)控CPU還包 括優(yōu)先級調(diào)整模塊,用于在所述心跳信息發(fā)送模塊調(diào)用所述空閑任務(wù)之前, 調(diào)整所述空閑任務(wù)的優(yōu)先級。
8、 根據(jù)權(quán)利要求6或7所述被監(jiān)控CPU,其特征在于,所述被監(jiān)控CPU 還包括優(yōu)先級恢復(fù)模塊,用于在所述心跳信息發(fā)送模塊調(diào)用空閑任務(wù)發(fā)送心 跳消息之后,將所述空閑任務(wù)的優(yōu)先級恢復(fù)到初始優(yōu)先級。
9、 一種心跳檢測系統(tǒng),其特征在于,包括相互連接的被監(jiān)控CPU和采 集CPU;其中,所述被監(jiān)控CPU,用于調(diào)用設(shè)置的空閑任務(wù)向所述采集CPU發(fā)送心跳消自-所述采集CPU,用于接收所述心跳消息,并對所述心跳消息進(jìn)行分析,得到心跳檢測結(jié)果。
10. 根據(jù)權(quán)利要求9所述心跳檢測系統(tǒng),其特征在于,所述被監(jiān)控CPU包 括相互連接的空閑任務(wù)設(shè)置模塊和心跳信息發(fā)送模塊;其中, 所述空閑任務(wù)設(shè)置模塊,用于設(shè)置發(fā)送心跳消息的空閑任務(wù); 所述心跳信息發(fā)送模塊,用于調(diào)用所述空閑任務(wù)向采集CPU發(fā)送心跳消自
全文摘要
本發(fā)明公開了一種心跳檢測方法,包括設(shè)置用于發(fā)送心跳消息的空閑任務(wù);調(diào)用所述空閑任務(wù)向采集中央處理單元(CPU)發(fā)送心跳消息。本發(fā)明還提供了一種心跳檢測系統(tǒng)和CPU,應(yīng)用于對稱多處理(SMP)系統(tǒng)中,實現(xiàn)對SMP系統(tǒng)中的CPU狀態(tài)檢測,本發(fā)明中的空閑任務(wù)初始優(yōu)先級為低優(yōu)先級,并且空閑任務(wù)的優(yōu)先級可根據(jù)實際需要進(jìn)行調(diào)整,從而在保證SMP系統(tǒng)中網(wǎng)絡(luò)資源利用率的情況下,使得心跳檢測具有較高的實時性。
文檔編號G06F19/00GK101234017SQ200810008350
公開日2008年8月6日 申請日期2008年2月26日 優(yōu)先權(quán)日2008年2月26日
發(fā)明者凡 楊 申請人:中興通訊股份有限公司