一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法
【專利摘要】本發(fā)明公開了一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法。在本發(fā)明中,進(jìn)程監(jiān)控調(diào)度方法實(shí)時(shí)監(jiān)測系統(tǒng)中的進(jìn)程行為,通過“可信網(wǎng)絡(luò)進(jìn)程列表”對非法進(jìn)程進(jìn)行終止,對非授權(quán)運(yùn)行的進(jìn)程進(jìn)行查處,實(shí)現(xiàn)對系統(tǒng)中業(yè)務(wù)操作的安全防護(hù)。進(jìn)程監(jiān)控流程采用基于操作系統(tǒng)內(nèi)核的進(jìn)程數(shù)據(jù)結(jié)構(gòu),實(shí)時(shí)、高效地獲得進(jìn)程信息,及時(shí)發(fā)現(xiàn)異常進(jìn)程并交由監(jiān)控調(diào)度進(jìn)程予以處理,從操作系統(tǒng)內(nèi)核層面上解決網(wǎng)絡(luò)環(huán)境中應(yīng)用軟件系統(tǒng)的不可預(yù)見的“死機(jī)”問題。C/S模式下客戶端重連機(jī)制,提高了業(yè)務(wù)進(jìn)程服務(wù)質(zhì)量,保證了業(yè)務(wù)進(jìn)程提供的服務(wù)不中斷,達(dá)到業(yè)務(wù)進(jìn)程長時(shí)間運(yùn)行不中斷的效果。
【專利說明】一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)、網(wǎng)絡(luò)安全技術(shù)【技術(shù)領(lǐng)域】,特別是涉及一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法。
【背景技術(shù)】
[0002]在復(fù)雜網(wǎng)絡(luò)環(huán)境中,應(yīng)用軟件系統(tǒng)常常會出現(xiàn)不可預(yù)見的死鎖問題,即“死機(jī)”現(xiàn)象?!八罊C(jī)”會造成業(yè)務(wù)的中斷,有時(shí)甚至?xí)拐麄€(gè)應(yīng)用系統(tǒng)崩潰,這些問題都嚴(yán)重影響了應(yīng)用軟件的可靠性。在復(fù)雜網(wǎng)絡(luò)環(huán)境中,產(chǎn)生軟件死鎖的因素是錯(cuò)綜復(fù)雜的,甚至是不可預(yù)見的?,F(xiàn)有技術(shù)是從應(yīng)用軟件層面上來保證軟件的可靠性,即從應(yīng)用軟件本身著手,通過增強(qiáng)測試、增強(qiáng)程序的邏輯封閉性等方面來保證軟件可靠性。這些方法無法徹底解決軟件的死鎖問題。
[0003]傳統(tǒng)的進(jìn)程監(jiān)控調(diào)度方法和工具都是基于調(diào)用操作系統(tǒng)提供的API接口函數(shù)或者系統(tǒng)調(diào)用來實(shí)現(xiàn)的,不能夠主動(dòng)地從操作系統(tǒng)內(nèi)核的進(jìn)程數(shù)據(jù)結(jié)構(gòu)當(dāng)中獲得用戶需要的信息,不能實(shí)時(shí)、高效地向用戶報(bào)告當(dāng)前系統(tǒng)運(yùn)行的安全狀況;還有,傳統(tǒng)的監(jiān)控程序都運(yùn)行在用戶態(tài),很容易被入侵系統(tǒng)的黑客替換或者刪除。這些問題都會影響應(yīng)用服務(wù)器的可靠性。
【發(fā)明內(nèi)容】
[0004]發(fā)明目的:為了解決上述問題,本發(fā)明提出了一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法。
[0005]技術(shù)方案:一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法,包括:
[0006]進(jìn)程調(diào)度步驟:
[0007]構(gòu)建“可信網(wǎng)絡(luò)進(jìn)程列表”;
[0008]在調(diào)度過程中,從內(nèi)核中提取出當(dāng)前進(jìn)程相關(guān)狀態(tài)信息,并判斷該進(jìn)程是否在“可信網(wǎng)絡(luò)進(jìn)程列表”中,同時(shí)掛起該進(jìn)程;
[0009]如果所述進(jìn)程在該列表中,則放行該進(jìn)程,允許其繼續(xù)運(yùn)行;如果發(fā)現(xiàn)當(dāng)前進(jìn)程未在“可信網(wǎng)絡(luò)進(jìn)程列表”中登記注冊,則通過終端告知用戶處理;
[0010]進(jìn)程監(jiān)控步驟:
[0011]監(jiān)控程序?qū)ο到y(tǒng)中各進(jìn)程進(jìn)行測量,獲得系統(tǒng)中各進(jìn)程在正常情況下的資源占用情況;
[0012]監(jiān)控程序通過統(tǒng)計(jì)的方法,對系統(tǒng)中關(guān)鍵業(yè)務(wù)進(jìn)程計(jì)算一個(gè)正常運(yùn)行情況下占用各項(xiàng)系統(tǒng)資源的標(biāo)稱值,此標(biāo)稱值作為進(jìn)程出現(xiàn)異常情況的閥值;
[0013]監(jiān)控進(jìn)程實(shí)時(shí)地監(jiān)控系統(tǒng)中的所有關(guān)鍵業(yè)務(wù)進(jìn)程,當(dāng)某個(gè)進(jìn)程對系統(tǒng)的CPU使用率或者內(nèi)存使用情況超過了閥值,則認(rèn)為該進(jìn)程為異常進(jìn)程,監(jiān)控程序?qū)⒂涗浵略撨M(jìn)程的相關(guān)信息,并終止該進(jìn)程,釋放其所占用的系統(tǒng)資源;
[0014]監(jiān)控程序中維護(hù)一個(gè)時(shí)間計(jì)數(shù)器,當(dāng)進(jìn)程被終止時(shí),該計(jì)數(shù)器開始計(jì)數(shù),經(jīng)過設(shè)定時(shí)間t后,監(jiān)控程序?qū)⒅匦聠?dòng)該進(jìn)程,恢復(fù)該業(yè)務(wù)進(jìn)程的正常運(yùn)行,否則該進(jìn)程繼續(xù)等待。
[0015]還包括客戶端重連步驟:
[0016]客戶端在與服務(wù)端某業(yè)務(wù)進(jìn)程進(jìn)行交互之前,向服務(wù)端發(fā)送請求報(bào)文;
[0017]若服務(wù)端該業(yè)務(wù)進(jìn)程運(yùn)行正常,則當(dāng)服務(wù)端接收到來自客戶端的請求報(bào)文后,向客戶端發(fā)送響應(yīng)報(bào)文,允許客戶端進(jìn)程與服務(wù)端該業(yè)務(wù)進(jìn)程進(jìn)行交互;
[0018]若服務(wù)端該業(yè)務(wù)進(jìn)程被掛起時(shí),該進(jìn)程將無法相應(yīng)客戶端的請求;當(dāng)客戶端發(fā)現(xiàn)服務(wù)端無法相應(yīng)請求時(shí),則每隔At1時(shí)間向服務(wù)端發(fā)送請求報(bào)文;當(dāng)服務(wù)端該業(yè)務(wù)進(jìn)程恢復(fù)運(yùn)行后,即可響應(yīng)客戶端請求,與客戶端進(jìn)程進(jìn)行交互。
[0019]本發(fā)明采用上述技術(shù)方案,具有以下有益效果:實(shí)時(shí)、高效的新型進(jìn)程監(jiān)控方法,對異常進(jìn)程及時(shí)發(fā)現(xiàn)并予以處理,從操作系統(tǒng)內(nèi)核層面上解決了復(fù)雜網(wǎng)絡(luò)環(huán)境下應(yīng)用軟件系統(tǒng)不可預(yù)見的“死機(jī)”問題。新型的進(jìn)程調(diào)度方法,從操作系統(tǒng)內(nèi)核層面上攔截非法進(jìn)程,保證操作系統(tǒng)中運(yùn)行的進(jìn)程均是經(jīng)用戶確認(rèn)的安全進(jìn)程,防止了惡意進(jìn)程對應(yīng)用服務(wù)器的破壞,提高了應(yīng)用服務(wù)器的可靠性??蛻舳说呐浜蠙C(jī)制保證了業(yè)務(wù)進(jìn)程提供的服務(wù)不中斷,提高了軟件的可靠性。
【專利附圖】
【附圖說明】
[0020]圖1為本發(fā)明進(jìn)程調(diào)度步驟的方法流程圖;
[0021]圖2為本發(fā)明進(jìn)程監(jiān)控步驟的方法流程圖;
[0022]圖3為本發(fā)明客戶端重連步驟的示意圖。
【具體實(shí)施方式】
[0023]下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域普通技術(shù)人員對本發(fā)明的各種等價(jià)形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0024]結(jié)合圖1-3進(jìn)行說明,
[0025]該方法實(shí)現(xiàn)的主要步驟如下:
[0026]如圖1,進(jìn)程調(diào)度方法
[0027]①在“安全”的系統(tǒng)環(huán)境下,盡可能全面地搜集系統(tǒng)中的安全進(jìn)程的信息,形成一張“可信網(wǎng)絡(luò)進(jìn)程列表”,作為進(jìn)程監(jiān)控調(diào)度的依據(jù)。
[0028]②在調(diào)度過程中,從內(nèi)核中提取出當(dāng)前進(jìn)程相關(guān)狀態(tài)信息,并判斷該進(jìn)程是否在“可信網(wǎng)絡(luò)進(jìn)程列表”中,同時(shí)掛起該進(jìn)程。如果該進(jìn)程在該列表中,則放行該進(jìn)程,允許其繼續(xù)運(yùn)行。包含當(dāng)前進(jìn)程相關(guān)狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu)如下:
[0029]
【權(quán)利要求】
1.一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法,其特征在于,包括: 進(jìn)程調(diào)度步驟: 構(gòu)建“可信網(wǎng)絡(luò)進(jìn)程列表”; 在調(diào)度過程中,從內(nèi)核中提取出當(dāng)前進(jìn)程相關(guān)狀態(tài)信息,并判斷該進(jìn)程是否在“可信網(wǎng)絡(luò)進(jìn)程列表”中,同時(shí)掛起該進(jìn)程; 如果所述進(jìn)程在該列表中,則放行該進(jìn)程,允許其繼續(xù)運(yùn)行;如果發(fā)現(xiàn)當(dāng)前進(jìn)程未在“可信網(wǎng)絡(luò)進(jìn)程列表”中登記注冊,則通過終端告知用戶處理; 進(jìn)程監(jiān)控步驟: 監(jiān)控程序?qū)ο到y(tǒng)中各進(jìn)程進(jìn)行測量,獲得系統(tǒng)中各進(jìn)程在正常情況下的資源占用情況; 監(jiān)控程序通過統(tǒng)計(jì)的方法,對系統(tǒng)中關(guān)鍵業(yè)務(wù)進(jìn)程計(jì)算一個(gè)正常運(yùn)行情況下占用各項(xiàng)系統(tǒng)資源的標(biāo)稱值,此標(biāo)稱值作為進(jìn)程出現(xiàn)異常情況的閥值; 監(jiān)控進(jìn)程實(shí)時(shí)地監(jiān)控系統(tǒng)中的所有關(guān)鍵業(yè)務(wù)進(jìn)程,當(dāng)某個(gè)進(jìn)程對系統(tǒng)的CPU使用率或者內(nèi)存使用情況超過了閥值,則認(rèn)為該進(jìn)程為異常進(jìn)程,監(jiān)控程序?qū)⒂涗浵略撨M(jìn)程的相關(guān)信息,并終止該進(jìn)程,釋放其所占用的系統(tǒng)資源; 監(jiān)控程序中維護(hù)一個(gè)時(shí)間計(jì)數(shù)器,當(dāng)進(jìn)程被終止時(shí),該計(jì)數(shù)器開始計(jì)數(shù),經(jīng)過設(shè)定時(shí)間t后,監(jiān)控程序?qū)⒅匦聠?dòng)該進(jìn)程,恢復(fù)該業(yè)務(wù)進(jìn)程的正常運(yùn)行,否則該進(jìn)程繼續(xù)等待。
2.根據(jù)權(quán)利要求1所述的一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法,其特征在于:還包括客戶端重連步驟:. 客戶端在與服務(wù)端某業(yè)務(wù)進(jìn)程進(jìn)行交互之前,向服務(wù)端發(fā)送請求報(bào)文; 若服務(wù)端該業(yè)務(wù)進(jìn)程運(yùn)行正常,則當(dāng)服務(wù)端接收到來自客戶端的請求報(bào)文后,向客戶端發(fā)送響應(yīng)報(bào)文,允許客戶端進(jìn)程與服務(wù)端該業(yè)務(wù)進(jìn)程進(jìn)行交互; 若服務(wù)端該業(yè)務(wù)進(jìn)程被掛起時(shí),該進(jìn)程將無法相應(yīng)客戶端的請求;當(dāng)客戶端發(fā)現(xiàn)服務(wù)端無法相應(yīng)請求時(shí),則每隔At1時(shí)間向服務(wù)端發(fā)送請求報(bào)文;當(dāng)服務(wù)端該業(yè)務(wù)進(jìn)程恢復(fù)運(yùn)行后,即可響應(yīng)客戶端請求,與客戶端進(jìn)程進(jìn)行交互。
3.根據(jù)權(quán)利要求1所述的一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法,其特征在于:所述進(jìn)程調(diào)度步驟中,所述用戶處理行為是指用戶通過本地的鍵盤、鼠標(biāo)確認(rèn)放行,該進(jìn)程則可運(yùn)行;同時(shí)將該進(jìn)程信息注冊到“可信網(wǎng)絡(luò)進(jìn)程列表”中。
4.根據(jù)權(quán)利要求1所述的一種基于進(jìn)程強(qiáng)制運(yùn)行控制的軟件抗死鎖方法,其特征在于:包含所述當(dāng)前進(jìn)程相關(guān)狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu)為typedef struct{char Name[20];_u32 PID;_u32 PPID;—u32 UID;—u32 GID;char StartTime[20]:char Status[20];double Standard[2]double Cpu;double Mem;}-piOcess_info。//進(jìn)程名//進(jìn)程ID號//父進(jìn)程ID號//進(jìn)程用戶ID號//進(jìn)程組ID號//進(jìn)程開始時(shí)間//進(jìn)程運(yùn)行狀態(tài) //進(jìn)程占用各系統(tǒng)資源的閥值//進(jìn)程對CPU的占用率//進(jìn)程對內(nèi)存的占用率
【文檔編號】G06F11/30GK103440189SQ201310350414
【公開日】2013年12月11日 申請日期:2013年8月13日 優(yōu)先權(quán)日:2013年8月13日
【發(fā)明者】吳克河, 李藝, 崔文超 申請人:江蘇華大天益電力科技有限公司