欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

軟件進(jìn)程監(jiān)控的制作方法

文檔序號(hào):6567527閱讀:248來源:國知局
專利名稱:軟件進(jìn)程監(jiān)控的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用以監(jiān)控和管理進(jìn)程,如在計(jì)算機(jī)上運(yùn)行的請(qǐng)求進(jìn)程、交 互進(jìn)程和效用進(jìn)程的裝置以及計(jì)算機(jī)可讀介質(zhì)。
背景技術(shù)
計(jì)算機(jī)使用進(jìn)程如請(qǐng)求進(jìn)程,交互進(jìn)程,和效用進(jìn)程實(shí)現(xiàn)使用者與計(jì)算機(jī) 之間的直接通信任務(wù)。在多數(shù)計(jì)算機(jī)環(huán)境中,每一個(gè)進(jìn)程獨(dú)立運(yùn)行并定義關(guān)于 進(jìn)程開始,終止和其他進(jìn)程間交互的規(guī)則。因此,從一般角度看,這是很難確 定管理進(jìn)程運(yùn)行、進(jìn)程和其他進(jìn)程之間交互的規(guī)則,因?yàn)檫@些規(guī)則是遮蔽在進(jìn) 程的代碼中。最好是能夠提供一個(gè)管理和控制進(jìn)程外部運(yùn)行的系統(tǒng),管理進(jìn)程 開始、終止和其他進(jìn)程間交互的規(guī)則可以被外部定義。這將大大簡化對(duì)進(jìn)程的 控制,使管理進(jìn)程交互的規(guī)則以一個(gè)相對(duì)簡單的方式讓程序員理解。這些技能在技術(shù)上理解,由于各種原因,進(jìn)程運(yùn)行在計(jì)算機(jī)上會(huì)產(chǎn)生'故障', 大致意思是說這個(gè)代碼不正確操作或以其他方式意外結(jié)束。故障是由許多原因 引起的,包括,舉例來說,在進(jìn)程中存在錯(cuò)誤,進(jìn)程接收輸入狀態(tài)沒有被編程 響應(yīng),由于錯(cuò)誤或其他原因產(chǎn)生數(shù)據(jù)或代碼錯(cuò)誤,內(nèi)存或緩存溢出,代碼沖突, 及其他。最好能提供一個(gè)系統(tǒng)具有外部監(jiān)控進(jìn)程檢測任何不當(dāng)進(jìn)程操作。此外, 它還將是可取的,在發(fā)生故障時(shí),使進(jìn)程通過執(zhí)行重新啟動(dòng)計(jì)算機(jī),重新啟動(dòng) 進(jìn)程,或兩者兼而有之,自動(dòng)而不需要任何使用者行為就能夠使進(jìn)程運(yùn)行。此 外,它還將是可取的,如果使用為進(jìn)程預(yù)先配置的恢復(fù)計(jì)劃,進(jìn)程重新啟動(dòng)或 是設(shè)備重新啟動(dòng),提供靈活的方式使進(jìn)程從故障中恢復(fù)?,F(xiàn)有技術(shù)的另 一個(gè)問題是一個(gè)進(jìn)程控制其他進(jìn)程的方式。在現(xiàn)有技術(shù)中, 在一個(gè)受控制的方式下, 一個(gè)運(yùn)行的進(jìn)程沒有能力啟動(dòng)或終止另一個(gè)相關(guān)進(jìn)程。 最好是能夠啟動(dòng)一個(gè)進(jìn)程具有管理能力,這個(gè)能力是在稍后時(shí)間,使外部代碼 在特殊情況下終止,在發(fā)生故障時(shí),提前配置它的恢復(fù)行為。在一個(gè)進(jìn)程需要 終止的情況時(shí),最好提供能夠在進(jìn)程終止之前實(shí)現(xiàn)配置退出處理。因此,應(yīng)該提供一個(gè)裝置,計(jì)算機(jī)可讀介質(zhì),監(jiān)控和管理客戶端進(jìn)程的方 法,如計(jì)算機(jī)上可運(yùn)行的請(qǐng)求進(jìn)程,交互進(jìn)程,和效用進(jìn)程,具有克服上述現(xiàn) 有技術(shù)存在的問題。發(fā)明內(nèi)容本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種計(jì)算機(jī),所述計(jì)算機(jī)包 含一個(gè)處理器和連接到所述處理器的內(nèi)存。所述內(nèi)存存儲(chǔ)有監(jiān)控進(jìn)程,所述監(jiān) 控進(jìn)程擁有運(yùn)行在計(jì)算機(jī)上與進(jìn)程對(duì)應(yīng)的監(jiān)控線程。監(jiān)控線程單獨(dú)運(yùn)行或外部 運(yùn)行對(duì)應(yīng)的進(jìn)程,從而使處理器能夠使用監(jiān)控線程外部控制其對(duì)應(yīng)的進(jìn)程。監(jiān) 控進(jìn)程包括一個(gè)開始進(jìn)程,用于從操作平臺(tái)接收一個(gè)句柄,以響應(yīng)運(yùn)行在操作 平臺(tái)上的開始進(jìn)程,創(chuàng)建包含句柄的監(jiān)控線程用于監(jiān)控進(jìn)程。這個(gè)進(jìn)程可定制 允許監(jiān)控進(jìn)程與其交互。眾所周知,無論是監(jiān)控進(jìn)程和對(duì)應(yīng)的進(jìn)程, 一個(gè)監(jiān)控 線程可以內(nèi)部添加到進(jìn)程中,監(jiān)控特殊進(jìn)程間的通信對(duì)象(例如信號(hào)量,互斥, 事件等)。監(jiān)控進(jìn)程可以通過發(fā)信號(hào)給進(jìn)程間的通信對(duì)象請(qǐng)求終止對(duì)應(yīng)的進(jìn)程, 觸發(fā)進(jìn)程,執(zhí)行定制的終止程序終止進(jìn)程本身。終止進(jìn)程程序可能涉及存儲(chǔ)數(shù) 據(jù),或在終止之前執(zhí)行其他任務(wù)??梢酝ㄟ^其中的各種方式觸發(fā)開始進(jìn)程和終 止進(jìn)程,并可能源自通過處理器執(zhí)行另一個(gè)運(yùn)行進(jìn)程,使用者通過使用界面所 提供的計(jì)算機(jī)的輸入和輸出單元,與計(jì)算機(jī)連接的外部設(shè)備,計(jì)算機(jī)的接口單 元,或綜合所述。監(jiān)控進(jìn)程基于一個(gè)或多個(gè)外部規(guī)則執(zhí)行開始和終止請(qǐng)求,即 確定是否在此情況下的一個(gè)進(jìn)程,目標(biāo)請(qǐng)求進(jìn)程可以被開始或終止。所述內(nèi)存 可以儲(chǔ)存一個(gè)初始化進(jìn)程確定一個(gè)或多個(gè)進(jìn)程,這些進(jìn)程在計(jì)算機(jī)開啟后由處 理器啟動(dòng)。所述監(jiān)控進(jìn)程可進(jìn)一步構(gòu)成一個(gè)故障檢測和恢復(fù)模塊存儲(chǔ)系統(tǒng)碰恢 復(fù)計(jì)劃。所述故障恢復(fù)計(jì)劃定義一個(gè)或多個(gè)由處理器執(zhí)行的函數(shù),以恢復(fù)故障 進(jìn)程。處理器執(zhí)行恢復(fù)計(jì)劃自動(dòng)恢復(fù)故障進(jìn)程,無需計(jì)算機(jī)使用者參與。故障 檢測和恢復(fù)模塊包括進(jìn)程一個(gè)進(jìn)程狀態(tài)表,存儲(chǔ)正常終止標(biāo)識(shí),如果進(jìn)程終止 正常,所述終止標(biāo)識(shí)是由監(jiān)控進(jìn)程設(shè)置,如果由于故障導(dǎo)致的進(jìn)程終止,則不 是由進(jìn)程設(shè)置。所述監(jiān)控進(jìn)程還包括一個(gè)事件處理器,接收來自外部監(jiān)控線程 的退出通知信號(hào),用于終止進(jìn)程,并轉(zhuǎn)發(fā)給退出通知所述故障檢測和恢復(fù)模塊 以決定進(jìn)程是否正常終止或由于故障導(dǎo)致的終止。在此基礎(chǔ)上的決定,所述故 障事件檢測和恢復(fù)模塊可確定是否一個(gè)進(jìn)程終止正?;蚴怯捎诠收?,請(qǐng)求所述模塊執(zhí)行故障恢復(fù)計(jì)劃。本發(fā)明實(shí)施例還提供了 一種計(jì)算機(jī),所述計(jì)算機(jī)包括處理器;與所述處理器連接的內(nèi)存。所述處理器存儲(chǔ)一個(gè)故障檢測和恢復(fù)模塊確定恢復(fù)方案,由所述 處理器執(zhí)行的一個(gè)進(jìn)程。所述故障檢測和恢復(fù)模塊可以自動(dòng)檢測系統(tǒng)故障的進(jìn) 程,并逐步恢復(fù),從故障的進(jìn)程中,執(zhí)行恢復(fù)計(jì)劃,而無需采取任何使用者參 與的計(jì)算機(jī)行動(dòng)。為進(jìn)程恢復(fù)計(jì)劃可以被專門定義。反過來說,恢復(fù)計(jì)劃可以 是一個(gè)默認(rèn)計(jì)劃用于恢復(fù)在沒有恢復(fù)計(jì)劃的進(jìn)程故障?;謴?fù)計(jì)劃可支配的計(jì)算 機(jī)被重新啟動(dòng),或進(jìn)程重新啟動(dòng),或者兩者兼有。在一些實(shí)施例中,監(jiān)控進(jìn)程儲(chǔ)存在內(nèi)存里,可進(jìn)一步包括一個(gè)事件句柄進(jìn) 程接收退出通知信號(hào)從進(jìn)程控制模塊,顯示該進(jìn)程已終止。該事件處理器通知 故障檢測和恢復(fù)模塊的退出通知信號(hào),信號(hào)來自終止進(jìn)程和進(jìn)程控制模塊。在 一些實(shí)施例中,進(jìn)程控制模塊有一個(gè)隊(duì)列存儲(chǔ)開始和終止執(zhí)行請(qǐng)求,由進(jìn)程控 制模塊允許按規(guī)則執(zhí)行。在一些實(shí)施例中,監(jiān)控進(jìn)程包括一個(gè)初始化進(jìn)程配置, 以確定開始和終止執(zhí)行請(qǐng)求后,啟動(dòng)計(jì)算機(jī),初始化進(jìn)程輸入配置的開始和終 止請(qǐng)求進(jìn)入隊(duì)列為4丸行后,啟動(dòng)計(jì)算才幾。開始請(qǐng)求和終止請(qǐng)求在隊(duì)列中可以源 自不同的來源,包括另一運(yùn)行進(jìn)程中,連接處理器的輸入裝置,由一個(gè)使用者, 或者是一個(gè)連接到處理器的接口單元接收請(qǐng)求,或者是由外部設(shè)備,或者是組 合。在不同的故障進(jìn)程之后,故障恢復(fù)計(jì)劃可以是確定裝置是否能夠啟動(dòng),在 一個(gè)或多個(gè)進(jìn)程重新啟動(dòng),或兩者兼而有之。故障檢測和恢復(fù)模塊提供的任何 進(jìn)程啟動(dòng)或重新啟動(dòng)初始化進(jìn)程輸入到執(zhí)行的隊(duì)列后,重新啟動(dòng)計(jì)算機(jī)或重新 啟動(dòng)一個(gè)進(jìn)程。其中故障恢復(fù)計(jì)劃,可以是一個(gè)默認(rèn)的恢復(fù)計(jì)劃被用在沒有故 障恢復(fù)計(jì)劃的進(jìn)程中。監(jiān)控線程被并入在一個(gè)客戶端進(jìn)程中,如果是由進(jìn)程控 制才莫塊標(biāo)識(shí)纟丸行的進(jìn)程終止,客戶端進(jìn)程可以包括終止進(jìn)程確定在進(jìn)程終止前 執(zhí)行進(jìn)程。監(jiān)控進(jìn)程,或更具體地說,進(jìn)程控制模塊,可以包括一個(gè)為開始進(jìn) 程的啟動(dòng)進(jìn)程,終止進(jìn)程的終止進(jìn)程。本發(fā)明的實(shí)施例是計(jì)算機(jī)可讀介質(zhì)計(jì)算機(jī)進(jìn)程(即監(jiān)控進(jìn)程),以執(zhí)行一 個(gè)或一個(gè)以上的上述描述的功能,監(jiān)控進(jìn)程由計(jì)算機(jī)執(zhí)行。


概括描述本發(fā)明內(nèi)容之后,根據(jù)附圖給出參考說明,所述附圖無需按規(guī)定比例繪制,其中圖1是本發(fā)明一個(gè)具體實(shí)施例的結(jié)構(gòu)圖,圖中計(jì)算機(jī)含有一個(gè)存儲(chǔ)器(即 計(jì)算機(jī)可讀介質(zhì)),該存儲(chǔ)器已存儲(chǔ)了監(jiān)控進(jìn)程,該監(jiān)控進(jìn)程用于控制一個(gè)或多 個(gè)進(jìn)程和依照本發(fā)明內(nèi)容自動(dòng)從進(jìn)程故障中恢復(fù);圖2是本發(fā)明方法的一個(gè)具體實(shí)施例,該方法由監(jiān)控進(jìn)程執(zhí)行,該監(jiān)控進(jìn) 程監(jiān)控和控制進(jìn)程,所述進(jìn)程使用進(jìn)程外部的監(jiān)控線程,該方法還用于執(zhí)行進(jìn) 程故障恢復(fù);圖3是本發(fā)明方法的一個(gè)具體實(shí)施例,該方法由監(jiān)控進(jìn)程的啟動(dòng)進(jìn)程執(zhí)行, 用于啟動(dòng)進(jìn)程和創(chuàng)建一個(gè)監(jiān)控線程來控制進(jìn)程;圖4是本發(fā)明方法的一個(gè)具體實(shí)施例,該方法由監(jiān)控進(jìn)程的終止進(jìn)程執(zhí)行, 用于終止進(jìn)程和通知退出進(jìn)程終止時(shí)的故障檢測結(jié)果和恢復(fù)模塊;和圖5是本發(fā)明方法的一個(gè)具體實(shí)施例,該方法是終止進(jìn)程通知用于終止的 進(jìn)程的監(jiān)控線程,并以此來啟動(dòng)定制的退出進(jìn)程。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明 作進(jìn)一步地詳細(xì)描述,只是對(duì)一些,并不是對(duì)所有的發(fā)明實(shí)施例進(jìn)行闡述。事 實(shí)上,本發(fā)明有很多表現(xiàn)形式,并不僅僅限于所述的表現(xiàn)形式。當(dāng)然,闡述的 這些實(shí)施例符合對(duì)應(yīng)的法律要求。定義'和/或'是指是指部分,或全部是由前邊和后邊的條件決定的。因此,"A, B,及/或C",是指"A、 B、 C中的一個(gè),或者A, B,和C的全部。"'計(jì)算機(jī)',是用在這里,是指通常的技術(shù)屬性條件。它是指一種裝置具有內(nèi) 存和處理器接收從一個(gè)內(nèi)存,使用者,或外部設(shè)備的輸入數(shù)據(jù),處理這些數(shù)據(jù) 的基礎(chǔ)上,控制進(jìn)程儲(chǔ)存在內(nèi)存,處理輸入數(shù)據(jù)并產(chǎn)生輸出數(shù)據(jù)。'計(jì)算機(jī)可讀介質(zhì)'是一個(gè)'內(nèi)存。''內(nèi)存'可以是一個(gè)隨機(jī)存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),硬盤驅(qū)動(dòng) 器存儲(chǔ)單元,磁帶機(jī),光盤(光盤版),數(shù)字光盤(DVD ),或者以數(shù)字或 模擬形式存儲(chǔ)的其他任何有數(shù)據(jù)儲(chǔ)存能力的設(shè)備,無論是在光學(xué),電子,磁力或其他方面。'內(nèi)存'包括在其定義中的任何硬件,軟件或軟件和硬件相結(jié)合,可 以用計(jì)算機(jī)的處理器來讀取,并可能存儲(chǔ)計(jì)算機(jī)進(jìn)程或數(shù)據(jù)。'操作平臺(tái)'是指一個(gè)操作系統(tǒng)或操作環(huán)境控制的分配和使用的硬件資源,如內(nèi)存,處理器時(shí)間,硬盤空間,輸入和輸出單元和外圍設(shè)備。操作平臺(tái)包括有 windows xp , windows 2000 , windows ce系統(tǒng),windows 98 , windows NT , Mac系統(tǒng),Unix , Linux系統(tǒng),AJX , I系列,Z系列,Solaris和其{也。'進(jìn)程',基本上是可以由處理器執(zhí)行的任何代碼,。 一個(gè)進(jìn)程可以是一個(gè)請(qǐng) 求進(jìn)程,交互進(jìn)程,或效用進(jìn)程,例如。'處理器'可以是一個(gè)微處理器,微控制器,可編程門陣列(PGA),現(xiàn)場可 編程門陣列(FPGA ),編程陣列邏輯(PAL),可編程邏輯陣列(PLA), 并可能與其他形式能接收和句柄輸入數(shù)據(jù)根據(jù)編程指令產(chǎn)生輸出數(shù)據(jù)。'發(fā)送'或'傳遞'是指傳輸數(shù)據(jù)的一個(gè)元素或進(jìn)程到另一個(gè)。它可以包括傳送的數(shù)據(jù)或信號(hào),從一個(gè)元素到另一個(gè),或有效地傳輸這些數(shù)據(jù)或信號(hào),使數(shù)據(jù)句 柄的一個(gè)單元或模塊傳輸?shù)搅?一單元或模塊。在一個(gè)單詞后的'(s )'或'(es)'或'(ies)',是指'一個(gè)或一個(gè)以上的意思。'因此,'process (es)'就是'一個(gè)或一個(gè)以上的進(jìn)程。'計(jì)算機(jī)10的概要描述 圖1是本發(fā)明實(shí)施例計(jì)算機(jī)10的示意圖。計(jì)算機(jī)10個(gè)包括一個(gè)處理器12 個(gè), 一個(gè)內(nèi)存14 , 一個(gè)輸入單元16 ,是一個(gè)輸出單元18 ,可選電源20 , 一個(gè)接口單元22(IU),和通道24 。處理器12與內(nèi)存14通信、輸入單元16 , 輸出單元18 ,電源20 ,和接口單元22經(jīng)過通道24連接進(jìn)行通信。處理器 12與外部設(shè)備、計(jì)算機(jī)10的接口單元22連接進(jìn)行通信。處理器26內(nèi)存14存儲(chǔ)一個(gè)或多個(gè)由處理器12執(zhí)行的客戶端進(jìn)程26??蛻舳诉M(jìn)程或 進(jìn)程26包括一個(gè)請(qǐng)求進(jìn)程,交互進(jìn)程,效用進(jìn)程,或這些進(jìn)程中的多數(shù)相結(jié)合。 每個(gè)客戶端進(jìn)程26由處理器12根據(jù)計(jì)劃執(zhí)行各項(xiàng)功能。在正常運(yùn)行,處理器 12同時(shí)運(yùn)行進(jìn)程26的時(shí)間不同。換言之,處理器的12根據(jù)自己的時(shí)間分配為 每一個(gè)正在運(yùn)行的進(jìn)程分配時(shí)間和按順序執(zhí)行。提供特殊的計(jì)算機(jī)10和進(jìn)程26 ,它可以執(zhí)行,在不以任何方式有意淡化 發(fā)明的最廣范圍,像這樣的計(jì)算機(jī)和進(jìn)程都可以應(yīng)用,計(jì)算機(jī)10可實(shí)施作為一個(gè)手持設(shè)備,例如通過使用UPS公司的驅(qū)動(dòng)進(jìn)程和包句柄的信息采集裝置(DIAD), —個(gè)客戶端進(jìn)程26可由是信息采集裝置(DIAD)執(zhí)行,也就是請(qǐng) 求句柄的獲得和傳送。這個(gè)請(qǐng)求可以通過編程從一個(gè)外部設(shè)備接收數(shù)據(jù)。這個(gè) 數(shù)據(jù)可能顯示地址,而處理器就是要提供數(shù)據(jù)傳輸路線,及地址,而這些數(shù)據(jù) 是從手持設(shè)備中獲得。這些應(yīng)用可以編程允許手持設(shè)備使用輸入單元16和輸出 單元18查看有關(guān)接收和傳輸?shù)臄?shù)據(jù)包,如終止接收及傳輸?shù)刂贰K赡軙?huì)進(jìn)一 步獲得有關(guān)接收和傳輸?shù)臄?shù)據(jù),如數(shù)據(jù)顯示的是,包句柄設(shè)備獲得或傳輸一個(gè) 包的時(shí)間和日期,數(shù)據(jù)簽名表示確認(rèn)接收數(shù)據(jù)和傳輸數(shù)據(jù)等。此外,請(qǐng)求可以 通過編程使驅(qū)動(dòng)進(jìn)程接收通過發(fā)單人發(fā)送的包單。計(jì)算機(jī)10以無線方式或直接 通過接口單元22與外部裝置連接,例如通過對(duì)接站,跟蹤服務(wù)器等,從外部設(shè) 備接收數(shù)據(jù),并提供獲得的數(shù)據(jù)傳送給外部設(shè)備。獲得的數(shù)據(jù)可以提供給以計(jì) 費(fèi),物流,包裝跟蹤等為目的外部設(shè)備。此外,進(jìn)程或進(jìn)程26 ,可以由一個(gè)或多個(gè)交互進(jìn)程組成,使計(jì)算機(jī)10與 外部設(shè)備通信。例如, 一個(gè)交互進(jìn)程,可以檢測到計(jì)算機(jī)IO是連接到對(duì)接站允 許收費(fèi),其電源來源的20可實(shí)施作為充電電池。為響應(yīng)收費(fèi)站的連接事件,交 互進(jìn)程,可以處理器12執(zhí)行,使計(jì)算機(jī)10與另一裝置初始化通信,觸發(fā)傳輸 數(shù)據(jù),或其他活動(dòng)。所述例子進(jìn)程26存儲(chǔ)在計(jì)算機(jī)10中執(zhí)行。這些普通的技巧在技術(shù)中被其 他請(qǐng)求進(jìn)程,交互進(jìn)程,效用進(jìn)程中所應(yīng)用,不管是否與接收或傳輸數(shù)據(jù)包有 關(guān),被計(jì)算機(jī)10根據(jù)請(qǐng)求的目的所使用。句柄的包的內(nèi)容是可仿效的,本發(fā)明 所揭示內(nèi)容可以適用于整個(gè)與句柄包和傳輸包無關(guān)用途。進(jìn)程26提供各自的監(jiān)控線索44,其中包括進(jìn)程間的通信對(duì)象的51 (例如, 一個(gè)事件,信號(hào)量,互斥,或其他機(jī)制)與句柄56 ,使進(jìn)程控制模塊30終止 運(yùn)行進(jìn)程26 。此外,監(jiān)控線程44,可l是供與終止(TERM)代碼60其中確定 任何句柄由進(jìn)程26執(zhí)行當(dāng)監(jiān)控進(jìn)程28發(fā)出終止信號(hào)時(shí)。這種句柄可以涉及存 儲(chǔ)數(shù)據(jù)或執(zhí)行其他進(jìn)程終止之前的任務(wù)。對(duì)于這些特性在以下進(jìn)一步詳述,監(jiān)控進(jìn)程28內(nèi)存14存儲(chǔ)一個(gè)監(jiān)控進(jìn)程28由處理器的12監(jiān)控,并在必要時(shí)控制任何運(yùn) 行于計(jì)算機(jī)10的進(jìn)程26 。監(jiān)控進(jìn)程28允許運(yùn)行進(jìn)程要求啟動(dòng)或終止的另 一個(gè) 進(jìn)程。在本實(shí)施例圖1中,監(jiān)控進(jìn)程28的有利組成是由進(jìn)程26分開的代碼。因此,它可以控制這種過程,甚至在發(fā)生一個(gè)或一個(gè)以上的進(jìn)程故障。換句話說,監(jiān)控進(jìn)程28有能力來執(zhí)行計(jì)算機(jī)11,不會(huì)受進(jìn)程26的狀況影響。在一個(gè) 或多個(gè)進(jìn)程26故障時(shí),監(jiān)控進(jìn)程28有恢復(fù)能力。監(jiān)控進(jìn)程的28由一個(gè)過程的控制模塊30組成,故障檢測和恢復(fù)模塊32 個(gè),以及一個(gè)事件處理器34 。上述每個(gè)模塊在下文詳細(xì)討論。進(jìn)程控制模塊30進(jìn)程控制模塊30具有以下功能(l)開始或終止任何的客戶端進(jìn)程;(2), 以確定客戶是否進(jìn)程運(yùn)行;(3)為使另外一個(gè)客戶進(jìn)程去啟動(dòng)或終止一個(gè)客戶端進(jìn)程。在一般的情況下,進(jìn)程控制模塊30,包括執(zhí)行開始請(qǐng)求43的開始進(jìn)程38, 執(zhí)行終止請(qǐng)求43的終止進(jìn)程54。進(jìn)程控制模塊30還包括一個(gè)隊(duì)列39存放開始 和終止請(qǐng)求43,先入先出(先進(jìn)先出)執(zhí)行開始進(jìn)程38和終止進(jìn)程54,當(dāng)開 始進(jìn)程時(shí)為每個(gè)運(yùn)行進(jìn)程26創(chuàng)建一個(gè)或多個(gè)監(jiān)控線程47,使監(jiān)控進(jìn)程28監(jiān)控 進(jìn)程故障。開始進(jìn)程38從隊(duì)列39接收開始請(qǐng)求43,并決定根據(jù)規(guī)則41 ,判 斷是否每個(gè)請(qǐng)求可以被執(zhí)行。如果是的話,那將創(chuàng)建一個(gè)監(jiān)控線程47外部進(jìn)程 26 ,使這一進(jìn)程受到監(jiān)控,以確定它是否已經(jīng)終止。如果不符合規(guī)則41,開始 進(jìn)程38 ,可以拒絕開始請(qǐng)求43或把它退回給排隊(duì)39到一個(gè)或更多的突發(fā)事件 發(fā)生允許進(jìn)程執(zhí)行。終止進(jìn)程54句柄隊(duì)列39中的所有終止請(qǐng)求43 。當(dāng)乂人隊(duì)列 39中接到終止請(qǐng)求43,用規(guī)則70評(píng)估請(qǐng)求,以決定是否可以執(zhí)行終止請(qǐng)求。 如果是的話,它標(biāo)志著進(jìn)程26中的對(duì)象51是目標(biāo)請(qǐng)求,以使用56句柄進(jìn)程間 的通信對(duì)象51,從而導(dǎo)致進(jìn)程在終止前4丸行其定制終止代碼60。終止進(jìn)程54 也通知故障檢測和恢復(fù)模塊32的進(jìn)程,當(dāng)執(zhí)行一個(gè)終止請(qǐng)求,以使模塊獲知這 一進(jìn)程的終止是正常的,還是由于故障導(dǎo)致的。反之,如果規(guī)則70不允許終止 進(jìn)程54執(zhí)行終止請(qǐng)求,那么隊(duì)列中的終止請(qǐng)求在允許執(zhí)行的情況下才被執(zhí)行, 或者它可能完全拒絕終止請(qǐng)求。以何種方式終止或開始請(qǐng)求介紹介紹進(jìn)程控制 模塊30 ,更具體地說,隊(duì)列39 ,可以從詳細(xì)討論中產(chǎn)生幾個(gè)方案。計(jì)算機(jī)10個(gè)載入及執(zhí)行進(jìn)程控制模塊30后啟動(dòng)電腦。進(jìn)程控制模塊30包 括一個(gè)初始化(INIT)函凄t36,其中定義了一系列的一個(gè)或多個(gè)進(jìn)程26,它們 是由處理器12響應(yīng)計(jì)算才幾10啟動(dòng)開始。此外,初始化函數(shù)36 ,可確定一系 列的一個(gè)或多個(gè)進(jìn)程由計(jì)算機(jī)10重新啟動(dòng)后執(zhí)行,這系列進(jìn)程不需要重新啟動(dòng)后執(zhí)行同樣的進(jìn)程。監(jiān)控進(jìn)程28配置帶有啟動(dòng)裝置的操作平臺(tái)。處理器執(zhí)行監(jiān)控進(jìn)程28為定義一系列初始化進(jìn)程運(yùn)行初始化函數(shù)36發(fā)動(dòng)開始進(jìn)程請(qǐng)求。在 發(fā)生不止一個(gè)進(jìn)程運(yùn)行時(shí),如前所述,處理器通常多任務(wù)之間為正在運(yùn)行的進(jìn) 程26分配句柄時(shí)間和正在運(yùn)行的進(jìn)程。一個(gè)正在運(yùn)行的進(jìn)程26可以請(qǐng)求處理器12開始或終止另一個(gè)進(jìn)程。更具 體地說,客戶端進(jìn)程26可以傳送請(qǐng)求43至隊(duì)列39通過開始進(jìn)程38啟動(dòng)執(zhí)行, 或啟動(dòng)終止進(jìn)程54終止進(jìn)程, 一個(gè)目標(biāo)進(jìn)程中所指定的請(qǐng)求。請(qǐng)求43可以包 括數(shù)據(jù)顯示目標(biāo)進(jìn)程中為開始或終止請(qǐng)求和進(jìn)程發(fā)起的請(qǐng)求。當(dāng)請(qǐng)求43進(jìn)到隊(duì) 列39的隊(duì)尾,通過開始進(jìn)程38或終止進(jìn)程54分析,為適宜的類型請(qǐng)求的,這 就決定了目標(biāo)進(jìn)程是否是一個(gè)由請(qǐng)求進(jìn)程開始或終止。在此基礎(chǔ)上由規(guī)則41 , 70所確定的一個(gè)或一個(gè)以上的幾種標(biāo)準(zhǔn),開始進(jìn)程38確定目標(biāo)進(jìn)程是否可以開 始或終止。在開始進(jìn)程38和終止進(jìn)程54的一個(gè)具體描述中,請(qǐng)求進(jìn)程是通過 規(guī)則41 , 70分配一個(gè)特權(quán)開始或終止目標(biāo)進(jìn)程,或者反過來說,進(jìn)程可以分 配一個(gè)限制,禁止它開始或終止目標(biāo)進(jìn)程,這取決于進(jìn)程員如何分配特權(quán)和限 制給進(jìn)程26 。此外,如果有兩個(gè)或兩個(gè)以上被確定是目標(biāo)進(jìn)程,它可能是開始 進(jìn)程38的規(guī)則41或終止進(jìn)程54的規(guī)則70可以編程評(píng)估相對(duì)優(yōu)先的起始進(jìn)程 的請(qǐng)求。例如,如果一個(gè)開始請(qǐng)求由一個(gè)進(jìn)程發(fā)起,處理器12可以執(zhí)行監(jiān)控進(jìn) 程28 ,以確定是否按規(guī)定41, 一個(gè)進(jìn)程先前發(fā)出的終止請(qǐng)求43當(dāng)收到開始請(qǐng) 求時(shí)仍然有效成為目標(biāo)進(jìn)程,此進(jìn)程具有從提出請(qǐng)求的進(jìn)程中有優(yōu)先權(quán)的請(qǐng)求。 如果是的話,那么處理器12可以拒絕開始請(qǐng)求進(jìn)程開始請(qǐng)求43,或可暫緩執(zhí)行, 直到發(fā)生一個(gè)或一個(gè)以上的事件,如終止進(jìn)程終止請(qǐng)求具有更優(yōu)先的請(qǐng)求。然 后,再由處理器12執(zhí)行開始進(jìn)程34以導(dǎo)致請(qǐng)求進(jìn)程開始。此外,監(jiān)控進(jìn)程28 利用內(nèi)部隊(duì)列39使開始請(qǐng)求和終止請(qǐng)求按順序執(zhí)行。如有需要,消除不相干的 請(qǐng)求,使隊(duì)列優(yōu)化,例如,如果一個(gè)開始進(jìn)程的請(qǐng)求在一個(gè)終止請(qǐng)求后,開始 就請(qǐng)求可能會(huì)終止以節(jié)約處理時(shí)間。此外,當(dāng)通過輸入單元16從一個(gè)4吏用者收到請(qǐng)求43,進(jìn)程26開始或終止。 例如, 一個(gè)使用者的計(jì)算機(jī)10可以操作輸入裝置16產(chǎn)生的請(qǐng)求43提供給處理 器12開始或終止一個(gè)或多個(gè)進(jìn)程26 。隊(duì)列39擁有請(qǐng)求43直到根據(jù)規(guī)則41 , 70由開始進(jìn)程38或終止進(jìn)程54執(zhí)行。然而,另一種方式,進(jìn)程26可以開始或終止響應(yīng)外部設(shè)備產(chǎn)生的請(qǐng)求43,請(qǐng)求43由處理器12通過接口單元22接收。請(qǐng)求43在隊(duì)列39中直到由開始進(jìn) 程38根據(jù)規(guī)則41或終止進(jìn)程54根據(jù)規(guī)則71執(zhí)行。在圖1中所述類型的請(qǐng)求43,作為外部啟動(dòng)/終止請(qǐng)求55 ,因?yàn)樗鼈冊醋?或引發(fā)外界的進(jìn)程控制模塊30。除上述初始化函數(shù)36和外部啟動(dòng)/終止請(qǐng)求43 ,開始或終止請(qǐng)求43可來 自故障檢測和恢復(fù)模塊32 。以何種方式出現(xiàn),在稍后部分對(duì)故障檢測和恢復(fù)模 塊32的詳細(xì)細(xì)節(jié)進(jìn)行"i侖述。當(dāng)進(jìn)程26被啟動(dòng),操作平臺(tái)46創(chuàng)建一個(gè)句柄48確定該進(jìn)程,并提供同樣 的開始進(jìn)程38 。開始進(jìn)程38監(jiān)控句柄48 ,由一個(gè)監(jiān)控線程47創(chuàng)建和存儲(chǔ)在 進(jìn)程控制模塊30中。當(dāng)一個(gè)進(jìn)程26終止,才喿作平臺(tái)46無效其句柄48 ,造 成監(jiān)控線程47警報(bào)進(jìn)程已經(jīng)終止。這會(huì)導(dǎo)致監(jiān)控線程47產(chǎn)生退出通知信號(hào), 給事件處理器34由故障檢測和恢復(fù)模塊32著手檢查,以確定進(jìn)程的終止是正 常還是故障導(dǎo)致終止。如前所述, 一個(gè)客戶端進(jìn)程26可以修改,就如它可以由監(jiān)控進(jìn)程28控制。 終止請(qǐng)求從監(jiān)控進(jìn)程28至客戶端進(jìn)程26的通信是由唯一的系統(tǒng)標(biāo)識(shí)符支持, 它可以由一個(gè)事件,信號(hào)量,互斥,或其他機(jī)制實(shí)施計(jì)算機(jī)中進(jìn)程間的通信。 一個(gè)監(jiān)控線程("ST" ) 44,被編程到客戶端進(jìn)程26 -R,在等待由監(jiān)控進(jìn)程 28發(fā)信號(hào)給對(duì)象51 (例如, 一個(gè)事件,信號(hào)量,互斥,或其他機(jī)制)。當(dāng)監(jiān)控 進(jìn)程28執(zhí)行一個(gè)終止請(qǐng)求,它利用句柄56發(fā)信號(hào)給對(duì)象51 ,啟動(dòng)監(jiān)控線程 44,以激活服務(wù)終止(TERM)函數(shù)60,這個(gè)函數(shù)可被編程到終止進(jìn)程26 。當(dāng) 客戶端進(jìn)程被終止,無效進(jìn)程句柄48由操作平臺(tái)46發(fā)出信號(hào)給對(duì)應(yīng)的監(jiān)控線 程47,在監(jiān)控進(jìn)程28中生成退出通知傳送到事件處理器34 ,從而激活故障檢 測和恢復(fù)模塊32 。在正常操作下,有很多運(yùn)行于計(jì)算機(jī)10的客戶端進(jìn)程26 。因此,在圖1 中監(jiān)控線程47-1通過47 - x對(duì)應(yīng)于每一個(gè)過程26 -R1 ,通過26 -RX運(yùn)行于計(jì)算 機(jī)10 。' R '表示進(jìn)程26正在運(yùn)行和'X '代表運(yùn)行于計(jì)算機(jī)11的客戶端進(jìn)程的數(shù) 量。監(jiān)控線程47-l通過47 - X繼續(xù)運(yùn)行在進(jìn)程控制模塊30,只要他們對(duì)應(yīng)的 進(jìn)程26正在運(yùn)行。在圖1中,這些沒有運(yùn)行的進(jìn)程由數(shù)字'26-NRl-26-NRQ '標(biāo)識(shí),'NR'標(biāo)識(shí)進(jìn)程的狀態(tài)是沒有執(zhí)行,'Q'是沒有被執(zhí)行的進(jìn)程編號(hào)。當(dāng)執(zhí)行終止請(qǐng)求43 ,終止進(jìn)程54設(shè)置一個(gè)正常終止標(biāo)識(shí)對(duì)應(yīng)故障斥企測和恢復(fù)模塊32中的進(jìn)程狀態(tài)表77中的進(jìn)程26。設(shè)置這個(gè)標(biāo)識(shí),表明進(jìn)程26已由 終止進(jìn)程請(qǐng)求終止。當(dāng)一個(gè)進(jìn)程26終止運(yùn)行,操作平臺(tái)46使進(jìn)程句柄48無效。 將這種句柄無效發(fā)信號(hào)給對(duì)應(yīng)的進(jìn)程控制模塊30中的監(jiān)控線程47,使之產(chǎn)生退 出通知信號(hào)給事件處理器34從而警報(bào)故障檢測和恢復(fù)模塊32檢查進(jìn)程是否正 常終止還是故障終止,正常終止標(biāo)識(shí)存儲(chǔ)在進(jìn)程中狀態(tài)表77。故障;險(xiǎn)測和恢復(fù) 模塊32和操作的細(xì)節(jié)在下面闡述。故障檢測和恢復(fù)模塊32故障檢測和恢復(fù)模塊32提供下列功能(1 )它允許一個(gè)客戶端進(jìn)程配 置如何使模塊恢復(fù)進(jìn)程故障事件;(2 )模塊能夠保持所有運(yùn)行在計(jì)算機(jī)10的 使用者進(jìn)程的狀態(tài)(即,數(shù)據(jù)顯示進(jìn)程是否在運(yùn)行,是否正常終止或故障終止); (3 )模塊監(jiān)控客戶端進(jìn)程的故障;(4)在檢測故障進(jìn)程后,模塊為故障進(jìn)程 執(zhí)行配置的恢復(fù)計(jì)劃。如圖1所示,故障檢測和恢復(fù)模塊32存儲(chǔ)故障恢復(fù)計(jì)劃75-1通過75 -Y (Y是計(jì)劃的數(shù)目),為計(jì)算機(jī)1 0中的一個(gè)或多個(gè)進(jìn)程2 6。故障恢復(fù)計(jì)劃 75-1至75 -丫可專門配置一個(gè)或一個(gè)以上對(duì)應(yīng)的進(jìn)程2 6,允許計(jì)算才幾1 0以一 個(gè)定制的方式從故障進(jìn)程26中恢復(fù)。舉例來說,在故障進(jìn)程后,故障恢復(fù)計(jì)劃 75可以指定計(jì)算機(jī)10恢復(fù)故障進(jìn)程26是通過重新啟動(dòng)計(jì)算機(jī)或者重新啟動(dòng)故 障進(jìn)程,或者兩者兼有。如果一個(gè)定制的計(jì)劃75是沒有界定為一個(gè)進(jìn)程26,那 么故障檢測和恢復(fù)模塊32使用默認(rèn)計(jì)劃75 - Z恢復(fù)故障進(jìn)程。故障檢測和恢復(fù)模塊32擁有進(jìn)程狀態(tài)表77顯示哪些進(jìn)程正在運(yùn)行,而哪 些進(jìn)程沒有正在運(yùn)行。故障檢測和恢復(fù)模塊32擁有正常終止數(shù)據(jù),正常終止數(shù) 據(jù)來自終止進(jìn)程54,終止進(jìn)程54為任何進(jìn)程正常終止以反映終止是不是故障導(dǎo) 致的。如果發(fā)現(xiàn)有任何進(jìn)程終止,是否正常終止或由于故障,操作平臺(tái)46發(fā)信 號(hào)給監(jiān)控進(jìn)程的監(jiān)控線程47,為這個(gè)進(jìn)程,通過無效進(jìn)程句柄48 ,然后通知 事件處理器30途經(jīng)退出通知事件激活故障檢測和恢復(fù)模塊32 。為了響應(yīng)退出 通知信號(hào),故障檢測和恢復(fù)模塊32更新進(jìn)程狀態(tài)表77,表示進(jìn)程生成退出通知 已經(jīng)終止。此外,故障檢測和恢復(fù)模塊32在進(jìn)程狀態(tài)表77中檢查對(duì)應(yīng)的正常 終止標(biāo)識(shí),以確定該進(jìn)程是否已正常終止。如果是的話,進(jìn)程檢測和恢復(fù)模塊 32需要執(zhí)行,沒有進(jìn)一步處理的終止進(jìn)程。反過來說,如果進(jìn)程終止標(biāo)識(shí)顯示 進(jìn)程終止異常,然后故障檢測和恢復(fù)模塊32執(zhí)行故障恢復(fù)計(jì)劃75對(duì)應(yīng)的故障進(jìn)程以恢復(fù)故障。如前所述,故障恢復(fù)計(jì)劃75可專門配置一個(gè)進(jìn)程26以確定 如何在計(jì)算機(jī)恢復(fù)故障進(jìn)程。在一個(gè)對(duì)應(yīng)的故障進(jìn)程完全恢復(fù)后,故障恢復(fù)計(jì) 劃75是圖l從75-l至75-Y中指定一個(gè),指明計(jì)算機(jī)10是否應(yīng)啟動(dòng),故障進(jìn) 程重新啟動(dòng),或兩者兼而有之。此外,這種計(jì)劃75可以被定義表明是否有其他 進(jìn)程必須重新開始或重新啟動(dòng),以恢復(fù)故障。故障恢復(fù)計(jì)劃75并不是專門為進(jìn) 程26定義的,故障檢測和恢復(fù)模塊32用默認(rèn)恢復(fù)計(jì)劃75 - Z恢復(fù)運(yùn)行在計(jì)算 機(jī)10上的故障和進(jìn)程。為故障進(jìn)程執(zhí)行故障恢復(fù)計(jì)劃75導(dǎo)致產(chǎn)生一個(gè)或更多 的開始或終止請(qǐng)求43,檢測和恢復(fù)模塊32規(guī)定更新初始化函數(shù)36 ,隊(duì)列39 , 或者兩者兼有。事件句柄34事件處理器34響應(yīng)事件所產(chǎn)生在監(jiān)控進(jìn)程28內(nèi)部的監(jiān)控線程47 。更具體 地說,當(dāng)一個(gè)進(jìn)程的26通過執(zhí)行終止函數(shù)60和終止代碼61退出,終止進(jìn)程 發(fā)信號(hào)給監(jiān)控進(jìn)程28的監(jiān)控線程47由句柄48無效終止進(jìn)程,從而導(dǎo)致監(jiān)控進(jìn) 程產(chǎn)生退出通知事件通知事件處理器34,終止進(jìn)程26。此外,如果一個(gè)進(jìn)程26 由于故障終止異常,監(jiān)控進(jìn)程28以類似的方式通知事件處理器34。響應(yīng)退出通 知,事件處理器34激活故障檢測和恢復(fù)模塊32確定進(jìn)程是否正常終止或是故 障終止,在進(jìn)程26退出前,進(jìn)程狀態(tài)表77中的正常終止標(biāo)識(shí)或不是正常終止 標(biāo)識(shí)由終止進(jìn)程54設(shè)置。使用監(jiān)控線程監(jiān)控和控制進(jìn)程的方法圖2是使用外部運(yùn)行在計(jì)算機(jī)10上的進(jìn)程相關(guān)聯(lián)的監(jiān)控線程47監(jiān)控一個(gè) 或多個(gè)進(jìn)程26的流程圖。監(jiān)控進(jìn)程28被編程由圖1中的計(jì)算機(jī)10執(zhí)行,以實(shí) 現(xiàn)圖2中的方法步驟。圖2中的步驟200,裝置10啟動(dòng),步驟202 ,為響應(yīng)啟動(dòng),裝置10執(zhí)行 一個(gè)初始化(初始化)進(jìn)程36 。這會(huì)導(dǎo)致處理器12啟動(dòng)由初始化進(jìn)程36定義 的一個(gè)或多個(gè)進(jìn)程26。更具體地說,通過其#1行,初始化進(jìn)程36發(fā)送一個(gè)或多 個(gè)開始請(qǐng)求23為開始進(jìn)程38的目標(biāo)進(jìn)程26。初始化進(jìn)程36編程啟動(dòng)特殊的進(jìn) 程26。步驟204 ,開始進(jìn)程38從隊(duì)列39收到啟動(dòng)請(qǐng)求(s ) 43并同時(shí)執(zhí)行。 當(dāng)每個(gè)進(jìn)程26開始,為啟動(dòng)進(jìn)程26,開始進(jìn)程38從裝置的4喿作平臺(tái)46收到句 柄48 。每個(gè)句柄48有能力確定各自的外部進(jìn)程26-R的運(yùn)行狀態(tài)??蛻舳诉M(jìn) 程26編程創(chuàng)建一個(gè)監(jiān)控線程44開始并把這種監(jiān)控線程44連同進(jìn)程間通信對(duì)象51和句柄56合并到進(jìn)程26中。另外,開始進(jìn)程38生成監(jiān)控線程47 ,在內(nèi)部 合并對(duì)象53與句柄48 ,因此,使監(jiān)控進(jìn)程28可以監(jiān)控進(jìn)程26在外部的的運(yùn) 行狀態(tài)。步驟206 ,開始進(jìn)程38收到由各種可能的來源所產(chǎn)生的外部開始請(qǐng)求 (s ) 43,包括另一個(gè)運(yùn)行進(jìn)程26 ,使用者的操作輸入單元16, —個(gè)通過接 口單元(IU) 22的外部設(shè)備,或結(jié)合所述。開始進(jìn)程38可以執(zhí)行時(shí)在先處理 隊(duì)列請(qǐng)求中的開始請(qǐng)求(s ) 43。假設(shè)請(qǐng)求(s ) 43可按照規(guī)則41執(zhí)行, 開始進(jìn)程38啟動(dòng)進(jìn)程(es) 26 ,從操作平臺(tái)46獲得對(duì)應(yīng)的句柄(s ) 48 , 并創(chuàng)建一個(gè)監(jiān)控線程(s ) 47 ,合并各自的對(duì)象53和句柄48,使進(jìn)程(es) 26可以被監(jiān)控。如上所述,進(jìn)程26創(chuàng)建它們自己的監(jiān)控線程44,合并從操作 平臺(tái)46接收的進(jìn)程間的通信對(duì)象句柄56,使進(jìn)程控制模塊30控制進(jìn)程26 。步驟208,事件處理器34等待來自監(jiān)控線程(s)47的退出通知,響應(yīng)對(duì)應(yīng) 通過"^喿作平臺(tái)46無效的句柄(s )48,顯示對(duì)應(yīng)進(jìn)程的26已經(jīng)終止。步驟210, 為響應(yīng)事件處理器的退出通知檢測,故障檢測和恢復(fù)模塊32執(zhí)行,以確定是否 退出通知是由于正常終止還是進(jìn)程26的故障終止。模塊32執(zhí)行檢測函數(shù)以確 定終止進(jìn)程54是否在進(jìn)程26終止之前在進(jìn)程狀態(tài)表77中設(shè)置了 一個(gè)正常的終 止標(biāo)識(shí)。如果終止進(jìn)程54設(shè)置了正常終止標(biāo)識(shí),進(jìn)程沒有故障返回控制給步驟 208其中處理器34繼續(xù)監(jiān)控每個(gè)運(yùn)行進(jìn)程退出通知。反過來說,如果步驟212 進(jìn)程沒有在進(jìn)程狀態(tài)表77中設(shè)置正常終止標(biāo)識(shí),那么這個(gè)進(jìn)程是由于故障終止 的,此情況下,仍然控制與故障檢測和恢復(fù)模塊32更新一套初始化進(jìn)程26 , 以重新啟動(dòng)基于存放在進(jìn)程狀態(tài)表77中重新啟動(dòng)標(biāo)識(shí)的值。它還根據(jù)故障進(jìn)程 26的故障恢復(fù)計(jì)劃75設(shè)置啟動(dòng)和/或重新啟動(dòng)標(biāo)識(shí)。如果沒有為故障進(jìn)程26指 定恢復(fù)計(jì)劃75,那么模塊32用默認(rèn)計(jì)劃75-Z設(shè)置(或重新設(shè)置)啟動(dòng)和/或重 新啟動(dòng)標(biāo)識(shí)以恢復(fù)故障。步驟216 ,模塊32確定是否故障恢復(fù)計(jì)劃請(qǐng)求重新啟 動(dòng)計(jì)算機(jī)IO 。如果是的話,由處理器12執(zhí)行步驟200重新啟動(dòng)裝置。反過來 說,如果沒有設(shè)置重新啟動(dòng)標(biāo)識(shí),則進(jìn)入步驟218,處理器12執(zhí)行模塊32引起 重新啟動(dòng)進(jìn)程,標(biāo)識(shí)需要為計(jì)劃75被執(zhí)行重新啟動(dòng)進(jìn)程狀態(tài)表77。如果處理器 的執(zhí)行模塊32表明沒有進(jìn)程需要重新啟動(dòng),則進(jìn)入步驟208,事件處理器34繼 續(xù)監(jiān)控運(yùn)行進(jìn)程退出通知。如果模塊32決定步驟218重新啟動(dòng)是必要的,在步 驟204則模塊32傳遞開始請(qǐng)求43排隊(duì)等待開始進(jìn)程38執(zhí)行以啟動(dòng)步驟214中恢復(fù)計(jì)劃指定的進(jìn)程。執(zhí)行步驟204后,控制進(jìn)入步驟208,事件處理器34使 用對(duì)應(yīng)的監(jiān)控線程47監(jiān)控正在運(yùn)行的進(jìn)程26。圖3是本發(fā)明方法的一個(gè)具體實(shí)施例,所述方法用于啟動(dòng)裝置10中的進(jìn)程 26。步驟300,監(jiān)控進(jìn)程或客戶端進(jìn)程26-R發(fā)起開始請(qǐng)求43請(qǐng)求啟動(dòng)目標(biāo)進(jìn) 程26-NR。開始請(qǐng)求43存儲(chǔ)在隊(duì)列39中等待開始進(jìn)程38執(zhí)行。步驟302,開 始進(jìn)程38啟動(dòng)新的進(jìn)程26 。開始進(jìn)程38請(qǐng)求操:作平臺(tái)46啟動(dòng)請(qǐng)求的進(jìn)程26。 開始進(jìn)程38從操作平臺(tái)46接收開始進(jìn)程的句柄48,并將句柄保存在內(nèi)存???戶端進(jìn)程26合并一個(gè)監(jiān)控線程44、 一個(gè)對(duì)象51和一個(gè)句柄56 ,使它能夠被 監(jiān)控進(jìn)程控制,步驟304,開始進(jìn)程38在監(jiān)控進(jìn)程28內(nèi)創(chuàng)建了一個(gè)靜態(tài)的監(jiān)控 線程47、 一個(gè)對(duì)象53和一個(gè)句柄48,當(dāng)開始客戶端進(jìn)程的句柄^皮無效時(shí),靜 態(tài)的監(jiān)控線程47、對(duì)象53和句柄48被激活(即,當(dāng)進(jìn)程終止)。激活的監(jiān)控線 程47使它發(fā)出退出通知給事件處理器34,事件處理器34順序警告故障檢測和 恢復(fù)模塊32檢查是否進(jìn)程的退出是正常的,或因故障導(dǎo)致退出。圖4是本發(fā)明方法的一個(gè)具體實(shí)施例,所述方法用于終止裝置10中的進(jìn)程 26。步驟400監(jiān)控進(jìn)程28或客戶端26 -R發(fā)出終止請(qǐng)求43給另 一個(gè)進(jìn)程26 -NR。終止請(qǐng)求43排隊(duì)等候,直至它可以由終止進(jìn)程54執(zhí)行。步驟402終止進(jìn) 程54確定進(jìn)程被終止后是否應(yīng)該重新啟動(dòng)。它做這個(gè)決定是根據(jù)規(guī)則70 ,故 障恢復(fù)計(jì)劃75 ,或者兩者兼有。步驟402如果終止進(jìn)程54確定進(jìn)程不應(yīng)被重 新啟動(dòng),那么進(jìn)入步驟404 ,它給進(jìn)程設(shè)置了對(duì)應(yīng)的標(biāo)識(shí)以表示進(jìn)程在終止后 沒有被重新啟動(dòng)。相反,在步驟402中,如果終止進(jìn)程確定進(jìn)程被終止后應(yīng)該 重新啟動(dòng),進(jìn)入步驟406,則在表77中設(shè)置對(duì)應(yīng)的標(biāo)識(shí)表示這樣的進(jìn)程在被終 止后應(yīng)該被重新啟動(dòng)。步驟408 ,終止進(jìn)程38由處理器12執(zhí)行確定裝置10在 目標(biāo)進(jìn)程終止后是否應(yīng)該重新啟動(dòng)。如果不是的話,進(jìn)入步驟410,終止進(jìn)程 54設(shè)置對(duì)應(yīng)的標(biāo)識(shí)表示裝置IO在目標(biāo)進(jìn)程終止后不應(yīng)該被重新啟動(dòng)。反過來說, 在步驟408中如果終止進(jìn)程54確定裝置10在目標(biāo)進(jìn)程終止后應(yīng)該重新啟動(dòng), 則進(jìn)入步驟412,終止進(jìn)程54設(shè)置對(duì)應(yīng)的標(biāo)識(shí)在進(jìn)程狀態(tài)表77中。步驟414, 終止進(jìn)程54發(fā)信號(hào)給客戶端進(jìn)程的監(jiān)控線程44中的進(jìn)程間通信對(duì)象51,同樣 發(fā)出終止請(qǐng)求到目標(biāo)進(jìn)程26 。圖5是本發(fā)明方法的一個(gè)具體實(shí)施例,所述方法用于終止在裝置10中執(zhí)行 的的客戶端進(jìn)程26。步驟500,客戶端進(jìn)程26根據(jù)自己的代碼正常執(zhí)行客戶端句柄。沒有終止請(qǐng)求,步驟500中正??蛻舳司浔ㄟ^正常終止過程26 。然而, 在這種情況下,步驟502,終止進(jìn)程54為進(jìn)程26發(fā)送一個(gè)終止請(qǐng)求給監(jiān)控線程 44。終止請(qǐng)求通過發(fā)信號(hào)給監(jiān)控線程44的進(jìn)程間通信對(duì)象激活進(jìn)程26的監(jiān)控 線程44。步驟504 ,在執(zhí)行的終止代碼61之前終止執(zhí)行之前,根據(jù)編程60進(jìn) 程26定制退出處理??蛇x擇的方式在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和 潤飾也視為本發(fā)明的保護(hù)范圍。舉例來說,故障恢復(fù)計(jì)劃75并不一定要存儲(chǔ)在 故障檢測和恢復(fù)模塊32中,這些計(jì)劃可以存儲(chǔ)在內(nèi)存14的任何地方,除在揭 示的^f莫塊之外或在各自進(jìn)程26的監(jiān)控線程44或47內(nèi)。同樣地,當(dāng) 一個(gè)進(jìn)程26 通過對(duì)應(yīng)的監(jiān)控線程44發(fā)信號(hào)退出時(shí),終止代碼60定義代碼執(zhí)行,監(jiān)控線程 44與正在運(yùn)行的進(jìn)程26分開存儲(chǔ),當(dāng)監(jiān)控線程44被發(fā)信號(hào)退出時(shí)進(jìn)程26可被 重新獲得執(zhí)行。進(jìn)程狀態(tài)表77不必被存儲(chǔ)在故障檢測和恢復(fù)模塊32 ,但可被 儲(chǔ)存在內(nèi)存14的另一個(gè)容易到達(dá)模塊32和事件處理器34位置。雖然規(guī)則41 , 70通常是與進(jìn)程26分開存儲(chǔ)的,本規(guī)則適用于某一特定進(jìn)程26可被存儲(chǔ)在這 樣的進(jìn)程內(nèi),或者存儲(chǔ)在有可能不利遮蔽規(guī)則的相關(guān)監(jiān)控線程44。如果沒有偏 離范圍的發(fā)明,進(jìn)程控制模塊30,事件處理器34和故障檢測和恢復(fù)模塊32是 可以相互結(jié)合成較大的或劃分成較小的代碼段根據(jù)他們的函數(shù)作用。這些和其 他的修改在發(fā)明的范圍內(nèi)被理解。本發(fā)明在這里闡述的修改和具體實(shí)施例在技術(shù)上被理解,在上述描述和相 關(guān)附圖提出了一些有益效果。因此,以上所揭露的僅為本發(fā)明一種較佳實(shí)施例 而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的 等同變化,仍屬本發(fā)明所涵蓋的范圍。產(chǎn)業(yè)適用性本發(fā)明各實(shí)施例所揭露和要求保護(hù)的計(jì)算機(jī)及介質(zhì),通過使計(jì)算機(jī)自動(dòng)檢 測和恢復(fù)進(jìn)程的故障,而具有產(chǎn)業(yè)適用性。
權(quán)利要求
1、一種計(jì)算機(jī),其特征在于包括存儲(chǔ)有監(jiān)控進(jìn)程的內(nèi)存,所述內(nèi)存包括進(jìn)程控制模塊,其基于對(duì)客戶端進(jìn)程外部定義并存儲(chǔ)在所述內(nèi)存中的規(guī)則開始或終止客戶端進(jìn)程,所述進(jìn)程控制模塊通過請(qǐng)求操作平臺(tái)啟動(dòng)客戶端進(jìn)程以啟動(dòng)所述客戶端進(jìn)程,從所述操作平臺(tái)接收所述已啟動(dòng)客戶端進(jìn)程的句柄,生成第一監(jiān)控線程并將其與句柄并入到所述已啟動(dòng)客戶端進(jìn)程中,并儲(chǔ)存所述第一監(jiān)控線程在所述進(jìn)程控制模塊中,用于監(jiān)控客戶端進(jìn)程的運(yùn)行狀態(tài),所述進(jìn)程控制模塊產(chǎn)生退出通知事件以響應(yīng)通過所述監(jiān)控線程對(duì)已終止客戶端進(jìn)程的檢測,所述進(jìn)程控制模塊通過在客戶端進(jìn)程中發(fā)信號(hào)給第二監(jiān)控線程的進(jìn)程間的通信對(duì)象,利用進(jìn)程間的通信對(duì)象的句柄,終止所述客戶端進(jìn)程;故障檢測和恢復(fù)模塊,其為一個(gè)或多個(gè)啟動(dòng)的客戶端進(jìn)程存儲(chǔ)定義的故障恢復(fù)計(jì)劃,所述故障檢測和恢復(fù)模塊具有進(jìn)程狀態(tài)表,如果客戶端進(jìn)程已經(jīng)正常終止,則從所述進(jìn)程控制模塊接收正常終止信號(hào),并從已終止進(jìn)程經(jīng)由相對(duì)應(yīng)于所述已終止客戶端進(jìn)程的所述第一監(jiān)控線程接收退出通知信號(hào),所述退出通知信號(hào)表明客戶端進(jìn)程終止,所述故障檢測和恢復(fù)模塊檢查以決定是否進(jìn)程是正常終止,以響應(yīng)從所述進(jìn)程控制模塊接收的退出通知信號(hào),所述檢查是檢查終止的客戶端進(jìn)程是否有對(duì)應(yīng)的正常終止數(shù)據(jù)在進(jìn)程狀態(tài)表中,所述故障檢測和恢復(fù)模塊存儲(chǔ)至少一個(gè)定義計(jì)算機(jī)怎樣從客戶端進(jìn)程故障恢復(fù)的故障恢復(fù)計(jì)劃,如果所述進(jìn)程控制模塊確定客戶端進(jìn)程是由于故障導(dǎo)致退出,則所述進(jìn)程控制模塊執(zhí)行故障恢復(fù)計(jì)劃;以及處理器,其連接到所述內(nèi)存,并控制所述進(jìn)程控制模塊和故障檢測模塊執(zhí)行所述功能。
2、如權(quán)利要求1所述的計(jì)算機(jī),其特征在于,所述內(nèi)存進(jìn)一步存儲(chǔ)一個(gè)事 件處理器,所述事件處理器從所述進(jìn)程控制模塊接收退出通知信號(hào),所述退出 通知信號(hào)表示客戶端進(jìn)程已經(jīng)終止,所述事件處理器將所述退出通知信號(hào)通知 所述故障檢測和恢復(fù)模塊,所述故障檢測和恢復(fù)模塊確定客戶端進(jìn)程是否正常終止以響應(yīng)來自所述進(jìn)程控制模塊的對(duì)應(yīng)的退出通知信號(hào)。
3、 如權(quán)利要求1所述的計(jì)算機(jī),其特征在于,所述進(jìn)程控制模塊含有一個(gè) 隊(duì)列,所述隊(duì)列存儲(chǔ)由所述進(jìn)程控制模塊在規(guī)則允許下執(zhí)行的開始和終止請(qǐng)求。
4、 如權(quán)利要求3所述的計(jì)算機(jī),其特征在于,所述監(jiān)控進(jìn)程包含一個(gè)經(jīng)配置以定義在計(jì)算機(jī)啟動(dòng)時(shí)被執(zhí)行的開始和終止請(qǐng)求的初始化進(jìn)程,所述初始化 進(jìn)程輸入所述經(jīng)配置的開始和終止請(qǐng)求到所述隊(duì)列里以在計(jì)算機(jī)啟動(dòng)時(shí)執(zhí)行。
5、 如權(quán)利要求1所述的計(jì)算機(jī),其特征在于,至少一個(gè)開始和終止請(qǐng)求輸 入到運(yùn)行進(jìn)程的隊(duì)列中。
6、 一種計(jì)算機(jī),其特征在于,包括 處理器;以及 所述處理器連接的內(nèi)存;為運(yùn)行在所述計(jì)算機(jī)上的對(duì)應(yīng)的客戶端進(jìn)程,所述內(nèi)存存儲(chǔ)一個(gè)含有監(jiān)控 線程的監(jiān)控進(jìn)程,所述監(jiān)控線程外部運(yùn)行對(duì)應(yīng)的客戶端進(jìn)程,允許所述處理器 外部監(jiān)控對(duì)應(yīng)的客戶端進(jìn)程。
7、 如權(quán)利要求6所述的計(jì)算機(jī),其特征在于,所述監(jiān)控進(jìn)程包含一個(gè)開始 進(jìn)程,所述開始進(jìn)程使用來自操作平臺(tái)的句柄以響應(yīng)運(yùn)行在所述操作平臺(tái)的客 戶端進(jìn)程的開始,并且創(chuàng)建監(jiān)控線程,所述監(jiān)控線程包括用于監(jiān)控所述客戶端 進(jìn)程的句柄。
8、 如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述開始進(jìn)程包括一個(gè)或多 個(gè)規(guī)則,所述規(guī)則用于開始進(jìn)程確定客戶端進(jìn)程是否可被啟動(dòng),所述開始進(jìn)程 啟動(dòng)所述客戶端進(jìn)程開始以響應(yīng)確定基于對(duì)客戶端進(jìn)程外部已定義的一個(gè)或多 個(gè)夫見則的客戶端進(jìn)程可^皮啟動(dòng)。
9、 如權(quán)利要求6所述的計(jì)算機(jī),其特征在于,還包括 輸入單元;輸出單元;以及 接口單元;所述監(jiān)控進(jìn)程包括開始進(jìn)程和/或終止進(jìn)程,其均能被另一個(gè)由處理器執(zhí)行 的運(yùn)行進(jìn)程觸發(fā),使用者通過所述輸入單元和所述輸出單元,外部設(shè)備通過所 述接口單元,或者它們的結(jié)合,使用監(jiān)控線程、 一個(gè)或多個(gè)對(duì)應(yīng)客戶端進(jìn)程的 句柄、在對(duì)應(yīng)的客戶端進(jìn)程內(nèi)進(jìn)程間通信對(duì)象的句柄,來控制所述客戶端進(jìn)程。
10、 如權(quán)利要求6所述的計(jì)算機(jī),其特征在于,所述內(nèi)存存儲(chǔ)一個(gè)初始化 進(jìn)程,所述初始化進(jìn)程定義了一個(gè)或多個(gè)由處理器在計(jì)算機(jī)開啟時(shí)啟動(dòng)的進(jìn)程。
11、 如權(quán)利要求6所述的計(jì)算機(jī),其特征在于,所述監(jiān)控進(jìn)程進(jìn)一步包括一個(gè)故障檢測和恢復(fù)模塊,所述故障檢測和恢復(fù)模塊存儲(chǔ)了 一個(gè)定義從所述客 戶端進(jìn)程的故障恢復(fù)的故障恢復(fù)計(jì)劃,所述處理器執(zhí)行所述恢復(fù)計(jì)劃以在沒有 包含計(jì)算機(jī)使用者請(qǐng)求的情形下從所述客戶端進(jìn)程的故障自動(dòng)恢復(fù)。
12、 如權(quán)利要求11所述的計(jì)算機(jī),其特征在于,所述故障檢測和恢復(fù)模塊 包括存儲(chǔ)正常終止標(biāo)識(shí)數(shù)據(jù)的進(jìn)程狀態(tài)表,所述正常終止標(biāo)識(shí)數(shù)據(jù)是由監(jiān)控進(jìn) 程的終止進(jìn)程所設(shè)置以表示客戶端進(jìn)程正常終止。
13、 如權(quán)利要求11所述的計(jì)算機(jī),其特征在于,所述監(jiān)控進(jìn)程進(jìn)一步包括 一個(gè)事件處理器,在所述客戶端進(jìn)程終止時(shí),所述事件處理器從所述客戶端進(jìn) 程的監(jiān)控線程接收一個(gè)退出通知,并激活所述故障檢測和恢復(fù)模塊用以確定客 戶端進(jìn)程是否正常終止或是由于故障而終止。
14、 一種計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)一個(gè)計(jì) 算機(jī)進(jìn)程,計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)進(jìn)程的步驟包括給客戶端進(jìn)程創(chuàng)建一個(gè)外部監(jiān)控線程用以啟動(dòng)運(yùn)行在計(jì)算機(jī)處理器上的所 述客戶端進(jìn)程,所述創(chuàng)建的監(jiān)控線程包括一個(gè)從操作平臺(tái)接收的句柄,所述句 柄被所述處理器用來監(jiān)所述控客戶端進(jìn)程的運(yùn)行狀態(tài)。
15、 如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)執(zhí)行 所述計(jì)算機(jī)進(jìn)程的步驟進(jìn)一步包括由處理器執(zhí)行一個(gè)初始化進(jìn)程以響應(yīng)啟動(dòng),重新啟動(dòng)進(jìn)程,或者重新啟動(dòng) 計(jì)算機(jī),或者它們的結(jié)合,所述初始化進(jìn)程執(zhí)行啟動(dòng)一個(gè)或多個(gè)由所述初始化 進(jìn)程定義的客戶端進(jìn)程,創(chuàng)建為每一各自由所述初始化進(jìn)程定義的客戶端進(jìn)程 執(zhí)行的監(jiān)控線程,以使每一個(gè)運(yùn)行的客戶端進(jìn)程具有對(duì)應(yīng)的監(jiān)控線程,所述處 理器使用所述監(jiān)控線程監(jiān)控每一個(gè)運(yùn)行進(jìn)程的狀態(tài)。
16、 如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)執(zhí)行 所述計(jì)算機(jī)進(jìn)程的步驟進(jìn)一步包括接收請(qǐng)求以啟動(dòng)客戶端進(jìn)程,創(chuàng)建響應(yīng)于接收的請(qǐng)求而執(zhí)行的監(jiān)控線程。
17、 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)執(zhí)行 所述計(jì)算機(jī)進(jìn)程的步驟進(jìn)一步包括響應(yīng)接收請(qǐng)求,確定所述客戶端進(jìn)程基于一個(gè)或多個(gè)外部定義的規(guī)則是否 被啟動(dòng),才丸行啟動(dòng)以響應(yīng)確定客戶端進(jìn)程基于一個(gè)或多個(gè)失見則^皮啟動(dòng)。
18、 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求從另一 個(gè)由所述處理器執(zhí)行的進(jìn)程接收。
19、 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求通過計(jì) 算機(jī)輸入單元從使用者接收。
20、 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求通過計(jì) 算機(jī)接口單元從外部設(shè)備接收。
21、 如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)執(zhí)行 所述計(jì)算機(jī)進(jìn)程的步驟進(jìn)一步包括在所述操作平臺(tái)啟動(dòng)所述客戶端進(jìn)程后,從所述操作平臺(tái)接收句柄,接收 所述句柄在創(chuàng)建所述監(jiān)控線程之前。
22、 一種計(jì)算機(jī)可讀介質(zhì),存儲(chǔ)一個(gè)計(jì)算機(jī)進(jìn)程,計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī) 進(jìn)程的步驟包括創(chuàng)建客戶端進(jìn)程的內(nèi)部監(jiān)控線程以響應(yīng)啟動(dòng)運(yùn)行在計(jì)算機(jī)處 理器上的客戶端進(jìn)程,所述監(jiān)控線程由來自監(jiān)控進(jìn)程的終止請(qǐng)求激活,作為在 為發(fā)信號(hào)給客戶端進(jìn)程以終止執(zhí)行的進(jìn)程中的目標(biāo),所述監(jiān)控進(jìn)程傳送所述終 止請(qǐng)求給所述客戶端進(jìn)程,使用所述進(jìn)程的監(jiān)控線程的進(jìn)程間通信對(duì)象的句柄 使所述監(jiān)控進(jìn)程與所述客戶端進(jìn)程通信。
23、 如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述進(jìn)程間通信 對(duì)象包括至少一個(gè)信號(hào)量,互斥,事件,或它們的結(jié)合。
24、 如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)執(zhí)行 所述計(jì)算機(jī)進(jìn)程的步驟進(jìn)一步包括接收請(qǐng)求以在所述監(jiān)控進(jìn)程中終止所述客戶端進(jìn)程;以及 通過發(fā)信號(hào)給所述進(jìn)程中的進(jìn)程間通信對(duì)象的句柄以響應(yīng)接收請(qǐng)求,從所 述監(jiān)控進(jìn)程終止所述客戶端進(jìn)程。
25、 如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括步驟 響應(yīng)于接收所述請(qǐng)求,確定客戶端進(jìn)程是否基于一個(gè)或多個(gè)外部定義客戶端進(jìn)程的規(guī)則被終止,執(zhí)行終止以響應(yīng)確定進(jìn)程基于一個(gè)或多個(gè)規(guī)則可被終止。
26、 如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求從由所 述處理器執(zhí)行的另 一個(gè)進(jìn)程接收。
27、 如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求通過計(jì) 算機(jī)輸入單元從使用者接收。
28、 如權(quán)利要求22所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述請(qǐng)求通過計(jì) 算機(jī)接口單元從外部設(shè)備接收。
29、 一種計(jì)算機(jī),其特征在于 處理器;以及連接到所述處理器的內(nèi)存,所述內(nèi)存存儲(chǔ)有故障檢測和恢復(fù)模塊,所述故 障和恢復(fù)模塊為由所述處理器執(zhí)行的客戶端進(jìn)程定義一個(gè)恢復(fù)計(jì)劃,所述故障 檢測和恢復(fù)模塊通過在沒有由計(jì)算機(jī)使用者請(qǐng)求的情況下執(zhí)行所述恢復(fù)計(jì)劃, 自動(dòng)檢測和恢復(fù)所述客戶端進(jìn)程故障。
30、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃為所述客戶 端進(jìn)程特定定義。
31、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃是默認(rèn)的計(jì) 劃,用于在沒有為所述客戶端進(jìn)程特定定義恢復(fù)計(jì)劃的事件中恢復(fù)所述客戶端 進(jìn)程故障。
32、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃表示所述計(jì) 算才幾纟皮重tf啟動(dòng)。
33、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃表示所述客 戶端進(jìn)程:故重新啟動(dòng)。
34、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃表示所述處 理器終止至少一個(gè)其他客戶端進(jìn)程。
35、 如權(quán)利要求29所述的計(jì)算機(jī),其特征在于,所述恢復(fù)計(jì)劃表示所述處 理器啟動(dòng)至少一個(gè)其他客戶端進(jìn)程。
36、 一種計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)一個(gè)計(jì) 算機(jī)進(jìn)程,所述計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)進(jìn)程的步驟包括所述客戶端進(jìn)程外部^r測運(yùn)行在所述計(jì)算^L處理器的客戶端進(jìn)程故障;以及自動(dòng)執(zhí)行一個(gè)故障恢復(fù)計(jì)劃以恢復(fù)所述客戶端進(jìn)程故障。
37、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述4企測步驟進(jìn) 一步包括通過終止客戶端進(jìn)程的句柄的無效,發(fā)送信號(hào)給監(jiān)控線程,所述監(jiān)控線程 產(chǎn)生退出通知事件以響應(yīng)所述句柄的無效;接收所述退出通知事件;在終止前,斗企查由所述客戶端進(jìn)程設(shè)置的進(jìn)程終止標(biāo)識(shí);以及 基于所述檢查,確定所述客戶端進(jìn)程是否故障; 基于所述確定,執(zhí)行所述故障恢復(fù)計(jì)劃。
38、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,為客戶端進(jìn)程定 義特定定義的所述故障恢復(fù)計(jì)劃。
39、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述故障恢復(fù)計(jì) 劃是在沒有為客戶端進(jìn)程特定定義的計(jì)劃時(shí)定義的默認(rèn)計(jì)劃。
40、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述故障恢復(fù)計(jì) 劃引導(dǎo)所述處理器重新啟動(dòng)計(jì)算機(jī)。
41、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述故障恢復(fù)計(jì) 劃引導(dǎo)處理器重新啟動(dòng)發(fā)生故障的客戶端進(jìn)程。
42、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述故障恢復(fù)計(jì) 劃引導(dǎo)所述處理器啟動(dòng)至少一個(gè)附加的進(jìn)程。
43、 如權(quán)利要求36所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述故障恢復(fù)計(jì) 劃51導(dǎo)所述處理器終止至少一個(gè)附加的進(jìn)程。
全文摘要
監(jiān)控進(jìn)程在啟動(dòng)計(jì)算機(jī)后執(zhí)行一系列客戶端進(jìn)程,開始,終止,監(jiān)控運(yùn)行于計(jì)算機(jī)上的進(jìn)程,和/或自動(dòng)檢測和恢復(fù)進(jìn)程故障。當(dāng)客戶端進(jìn)程被啟動(dòng)時(shí),進(jìn)程使用它創(chuàng)建的監(jiān)控線程監(jiān)控客戶端進(jìn)程,并使用進(jìn)程的句柄檢測進(jìn)程終止。當(dāng)檢測到進(jìn)程終止,檢查監(jiān)控進(jìn)程內(nèi)的狀態(tài)表以確定是否是客戶端進(jìn)程故障或是正常終止。如果是由于故障導(dǎo)致終止,進(jìn)程使用預(yù)先配置的計(jì)劃自動(dòng)執(zhí)行故障恢復(fù)。
文檔編號(hào)G06F11/07GK101268447SQ200680017717
公開日2008年9月17日 申請(qǐng)日期2006年5月19日 優(yōu)先權(quán)日2005年5月26日
發(fā)明者朱蓮·約克·亞伯 申請(qǐng)人:美國聯(lián)合包裹服務(wù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
平凉市| 会泽县| 安平县| 七台河市| 福州市| 上蔡县| 日喀则市| 彰化市| 延长县| 安宁市| 福鼎市| 麻栗坡县| 苗栗市| 科技| 武定县| 东兴市| 淮滨县| 麦盖提县| 景东| 和硕县| 渭南市| 沙河市| 昭通市| 上虞市| 峨眉山市| 浑源县| 宜黄县| 博客| 大姚县| 弥勒县| 钦州市| 沁阳市| 紫金县| 博湖县| 钟祥市| 阿克| 甘洛县| 遂溪县| 乃东县| 中西区| 苍山县|