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

一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法和監(jiān)視系統(tǒng)的制作方法

文檔序號:6434916閱讀:165來源:國知局
專利名稱:一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法和監(jiān)視系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種任務(wù)進(jìn)程監(jiān)視技術(shù),特別是一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法和多任務(wù)進(jìn)程監(jiān)視系統(tǒng)。
背景技術(shù)
隨著現(xiàn)代計(jì)算機(jī)和通訊網(wǎng)絡(luò)技術(shù)的成熟和發(fā)展,現(xiàn)代信息系統(tǒng)的構(gòu)建方式和體系結(jié)構(gòu)也從原來的簡單集中處理方式向更高效的分布式架構(gòu)轉(zhuǎn)變,這種趨勢導(dǎo)致從注重程序設(shè)計(jì)轉(zhuǎn)向更復(fù)雜系統(tǒng)功能的集成,以及如何把各層面業(yè)務(wù)模塊進(jìn)行組裝,使其協(xié)同工作。基于分布式任務(wù)處理的業(yè)務(wù)流程管理系統(tǒng)是一種面向流程的信息系統(tǒng),主要基于網(wǎng)絡(luò)方式實(shí)現(xiàn)信息傳遞、數(shù)據(jù)同步、流程監(jiān)控和業(yè)務(wù)流程的持續(xù)管理優(yōu)化等功能。業(yè)務(wù)流程管理的提出避免了把工作流固化在定制的應(yīng)用程序中,支持從程序設(shè)計(jì)到應(yīng)用組裝的轉(zhuǎn)變,此外還支持面向流程、流程再設(shè)計(jì)以及組織增長(organic growth) 0目前使用廣泛的工作流程管理系統(tǒng)有Staffware、MQSeries和C0SA,案例處理系統(tǒng)FLOWer,ERP系統(tǒng)也提供了工作流程管理的模塊,SAP、Baan, PeopleSoft、Oracle和JD Edwards的工作流引擎也可被視為集成的業(yè)務(wù)流程管理系統(tǒng)。然而對工作流程的監(jiān)控只是作為單一的模塊集成在系統(tǒng)中,在不同環(huán)境下的流程監(jiān)控缺乏統(tǒng)一的標(biāo)準(zhǔn),有的尚不具備流程監(jiān)控能力,更可惜的是多數(shù)工作流管理系統(tǒng)基于不同范例(paradigms)使用多種語言和概念,各類工具間的使用方式存在差異,這樣使其相應(yīng)功能的擴(kuò)展和易用性受到限制。本發(fā)明提出了一種建立在業(yè)務(wù)流程管理系統(tǒng)之外通用的流程監(jiān)控體系,使其脫離了各工作流程管理系統(tǒng)間的限制,同時(shí)提出了一種多任務(wù)調(diào)度策略,使其對大型分布式任務(wù)處理環(huán)境下海量任務(wù)流程的實(shí)時(shí)監(jiān)控問題提供了一種有效的解決方法。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法和監(jiān)視系統(tǒng),通過對分布式終端各任務(wù)狀態(tài)的自動采集,經(jīng)多線程任務(wù)調(diào)度策略對計(jì)算資源進(jìn)行合理的分配,從而實(shí)現(xiàn)多任務(wù)進(jìn)程監(jiān)視的快速響應(yīng)。本發(fā)明公開了一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,包括以下步驟第一步,對分布式系統(tǒng)環(huán)境下的各任務(wù)執(zhí)行終端的任務(wù)執(zhí)行進(jìn)程的五種狀態(tài)進(jìn)行監(jiān)視,所述五種狀態(tài)包括就緒、等待、掛起、創(chuàng)建、消失五種;根據(jù)任務(wù)執(zhí)行進(jìn)程的狀態(tài)順序地將各任務(wù)執(zhí)行階段的任務(wù)執(zhí)行情況與之相應(yīng)的定義為五類任務(wù)準(zhǔn)備、任務(wù)等待、任務(wù)中斷、任務(wù)執(zhí)行、任務(wù)結(jié)束;將進(jìn)程監(jiān)視獲取到的任務(wù)執(zhí)行情況通過格式化的XML描述文件進(jìn)行保存;第二步、將所述XML格式描述文件傳輸?shù)饺蝿?wù)匯集處理服務(wù)器進(jìn)行數(shù)據(jù)的匯總檢驗(yàn),過濾掉冗余和異常數(shù)據(jù),將過濾后的任務(wù)執(zhí)行情況寫入數(shù)據(jù)庫,同時(shí)發(fā)送任務(wù)變化消息通知任務(wù)調(diào)度中心;第三步,任務(wù)調(diào)度中心收到任務(wù)變化消息后將這些消息直接提交到任務(wù)調(diào)度模塊,任務(wù)調(diào)度模塊將收到的消息加入消息等待隊(duì)列,調(diào)度控制單元對消息等待隊(duì)列進(jìn)行實(shí)時(shí)掃描在發(fā)現(xiàn)消息后按照先進(jìn)先出的原則進(jìn)行響應(yīng);第四步,調(diào)度控制單元響應(yīng)到任務(wù)變化消息后,查找線程索引表獲取該任務(wù)的執(zhí)行線程并交由該線程執(zhí)行,如在線程索引表中未查詢到該任務(wù)對應(yīng)的執(zhí)行線程則根據(jù)任務(wù)等級添加到調(diào)度控制單元中消息等待隊(duì)列等待線程的分配,并將已經(jīng)分配線程執(zhí)行的任務(wù)送往工作線程池執(zhí)行;第五步,線程控制模塊在系統(tǒng)運(yùn)行過程中實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,并根據(jù)當(dāng)前系統(tǒng)負(fù)載狀態(tài)通過容量調(diào)節(jié)單元對線程池中線程數(shù)量進(jìn)行相應(yīng)的增減使計(jì)算資源達(dá)到最優(yōu)的負(fù)載平衡,同時(shí)對長時(shí)間未執(zhí)行的線程進(jìn)行刪除,同時(shí)對工作異常的線程進(jìn)行回收。本發(fā)明中,調(diào)度控制單元執(zhí)行以下步驟實(shí)現(xiàn)任務(wù)調(diào)度步驟1、根據(jù)接收到的任務(wù)變更消息解析出該任務(wù)的任務(wù)標(biāo)識,根據(jù)任務(wù)標(biāo)識遍歷線程索引鏈表獲取該任務(wù)與之對應(yīng)的工作線程,轉(zhuǎn)到步驟5 ;如果未查詢到該任務(wù)的工作線程,轉(zhuǎn)到步驟2;步驟2、遍歷線程索引表,通過對線程索引表中各任務(wù)標(biāo)識進(jìn)行縱向遍歷從而獲取未分配任務(wù)的空閑線程,轉(zhuǎn)到步驟5 ;如果仍未有空閑的工作線程,轉(zhuǎn)到步驟3 ;步驟3、將該消息加入調(diào)度控制單元中的消息等待隊(duì)列,并按照任務(wù)等級進(jìn)行排序,任務(wù)等級計(jì)算公式如下ρ = S1R +S2J,其中R表示任務(wù)優(yōu)先級,取值范圍1 9 ;J表示任務(wù)執(zhí)行階段的關(guān)鍵程度,取值范圍1 9 ;4,32表示任務(wù)優(yōu)先級和任務(wù)執(zhí)行階段的關(guān)鍵程度各自權(quán)值;ρ表示計(jì)算出的任務(wù)等級;步驟4、調(diào)度控制單元實(shí)時(shí)掃描等待隊(duì)列,并返回步驟2 ;步驟5、根據(jù)分配到的工作線程標(biāo)識和任務(wù)變更消息中的任務(wù)標(biāo)識編輯該任務(wù)的執(zhí)行消息并發(fā)送至工作線程池執(zhí)行,任務(wù)調(diào)度結(jié)束。本發(fā)明中,線程池執(zhí)行如下步驟步驟1、創(chuàng)建工作線程池,根據(jù)預(yù)設(shè)的線程池容量創(chuàng)建相應(yīng)數(shù)量的工作線程,同時(shí)為每個(gè)工作線程開辟與之對應(yīng)的消息隊(duì)列,線程運(yùn)行過程中實(shí)時(shí)掃描該消息隊(duì)列獲取任務(wù)參數(shù)完成數(shù)據(jù)計(jì)算以及數(shù)據(jù)顯示等操作;步驟2、創(chuàng)建線程索引表,線程索引表以鏈表形式將任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列的對應(yīng)關(guān)系進(jìn)行保存,遍歷工作線程池將各線程標(biāo)識和相對應(yīng)的消息隊(duì)列加入線程索引表中;步驟3、工作線程池將調(diào)度控制單元送來的任務(wù)執(zhí)行消息經(jīng)解析獲取要送往執(zhí)行的線程標(biāo)識,根據(jù)線程標(biāo)識獲取線程索引鏈表中該節(jié)點(diǎn)地址;步驟4、根據(jù)獲取的節(jié)點(diǎn)地址,將任務(wù)執(zhí)行消息送往該鏈表節(jié)點(diǎn)所指向的消息隊(duì)列等待線程執(zhí)行,同時(shí)修改該鏈表節(jié)點(diǎn)的任務(wù)標(biāo)識;步驟5、當(dāng)線程消息隊(duì)列中所有消息執(zhí)行完成后,將該節(jié)點(diǎn)中任務(wù)標(biāo)識清空恢復(fù)初始狀態(tài),任務(wù)執(zhí)行結(jié)束。
利用多線程技術(shù)創(chuàng)建系統(tǒng)工作線程池以及線程索引表,并根據(jù)各工作線程所執(zhí)行的任務(wù)信息實(shí)時(shí)更新線程索引表,當(dāng)任務(wù)監(jiān)視信息送往工作線程池等待線程分配時(shí)根據(jù)執(zhí)行任務(wù)的優(yōu)先級、監(jiān)視節(jié)點(diǎn)的關(guān)鍵程度對待執(zhí)行任務(wù)進(jìn)行等級確定并按由高到低的原則建立任務(wù)等待隊(duì)列,當(dāng)?shù)却?duì)列中任務(wù)執(zhí)行時(shí),對線程索引表進(jìn)行遍歷確定執(zhí)行該任務(wù)的工作線程,并送往相應(yīng)線程的消息隊(duì)列等待執(zhí)行。本發(fā)明中,所述容量調(diào)節(jié)單元執(zhí)行以下步驟實(shí)現(xiàn)容量調(diào)節(jié)
步驟1、計(jì)算某個(gè)時(shí)間段CPU工作時(shí)間計(jì)算CPU使用率對于單核CPU計(jì)算公式為(T-I)/T*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中CPU處于空閑狀態(tài)的時(shí)間;對于多核CPU計(jì)算公式為(T*N-I)/T*N*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中全部CPU核心的總空閑時(shí)間的和,N表示CPU到核心數(shù)量;容量調(diào)節(jié)單元實(shí)時(shí)對CPU使用率進(jìn)行監(jiān)測,如果監(jiān)測某一時(shí)間段CPU使用率一直大于50%則認(rèn)為系統(tǒng)負(fù)載過重需減小線程池容量執(zhí)行步驟3 ;如果監(jiān)測某一時(shí)間段CPU使用率一直小于30%則認(rèn)為系統(tǒng)負(fù)載過輕需增加線程池容量提升系統(tǒng)處理能力執(zhí)行步驟2 ; CPU使用率保持在30% 50%之間則認(rèn)為系統(tǒng)工作比較穩(wěn)定對線程池容量不進(jìn)行操作。步驟2、增加線程池容量,創(chuàng)建工作線程以及對應(yīng)的線程響應(yīng)隊(duì)列同時(shí)根據(jù)線程標(biāo)識在線程索引表中增加響應(yīng)節(jié)點(diǎn);步驟3、減少線程池容量,釋放線程池中空閑線程并將線程索引表中該線程所在節(jié)點(diǎn)刪除。本發(fā)明還公開了一種多任務(wù)進(jìn)程監(jiān)視系統(tǒng),包括多個(gè)分布式任務(wù)執(zhí)行終端、任務(wù)匯集處理服務(wù)器以及任務(wù)調(diào)度中心;所述分布式任務(wù)執(zhí)行終端與任務(wù)匯集處理服務(wù)器之間通過XML格式描述文件傳輸任務(wù)執(zhí)行情況;所述任務(wù)調(diào)度中心包括任務(wù)調(diào)度模塊、工作線程池以及線程控制模塊;所述任務(wù)調(diào)度模塊用于接收所述任務(wù)匯集處理服務(wù)器傳來的任務(wù)變更消息,其包括任務(wù)控制單元和消息等待緩沖區(qū);所述消息等待緩沖區(qū)用于存放消息;所述任務(wù)控制單元用于掃描消息并做出響應(yīng);所述工作線程池用于處理任務(wù),其包括線程索引表,線程控制單元、任務(wù)控制單元以及任務(wù)執(zhí)行單元;所述線程索引表包括任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列;所述線程控制單元用于對各工作線程的創(chuàng)建和釋放;所述任務(wù)控制單元用于對線程索引表中各線程所對應(yīng)的線程消息隊(duì)列進(jìn)行掃描并將獲取的消息送往任務(wù)執(zhí)行單元執(zhí)行; 所述任務(wù)執(zhí)行單元用于對送達(dá)的任務(wù)變更消息進(jìn)行響應(yīng)并將任務(wù)執(zhí)行情況數(shù)據(jù)進(jìn)行編碼最后送往顯示可視化進(jìn)程監(jiān)視終端顯示;所述線程控制模塊用于實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,其包括容量調(diào)節(jié)單元,線程監(jiān)視單元以及線程干預(yù)單元;所述容量調(diào)節(jié)單元對系統(tǒng)性能進(jìn)行監(jiān)測并根據(jù)監(jiān)測結(jié)果調(diào)節(jié)線程池中工作線程數(shù)量;所述線程監(jiān)視單元用于對工作線程池中工作線程進(jìn)行監(jiān)視,將長時(shí)間空閑和長時(shí)間中斷的線程進(jìn)行記錄并以日志形式進(jìn)行保存;所述線程干預(yù)單元用于對線程監(jiān)視單元所記錄的異常線程進(jìn)行釋放和重新分配。本發(fā)明建立了分布式任務(wù)執(zhí)行信息采集技術(shù),對物理分散的各個(gè)任務(wù)執(zhí)行終端進(jìn)行任務(wù)狀態(tài)收集;建立基于多線程的任務(wù)調(diào)度策略,根據(jù)執(zhí)行任務(wù)的優(yōu)先等級、監(jiān)視節(jié)點(diǎn)的關(guān)鍵程度對執(zhí)行線程進(jìn)行合理的分配,實(shí)現(xiàn)多任務(wù)高效并行處理;建立多線程自適應(yīng)調(diào)節(jié)技術(shù),對分配線程進(jìn)行動態(tài)管理,并根據(jù)系統(tǒng)的處理能力自適應(yīng)的調(diào)整線程數(shù)量使系統(tǒng)運(yùn)行效率達(dá)到最優(yōu)值。本發(fā)明通過格式化的XML文件和任務(wù)執(zhí)行終端進(jìn)行數(shù)據(jù)交互完成任務(wù)執(zhí)行情況的自動采集,并將采集到的結(jié)果通過網(wǎng)絡(luò)匯總到任務(wù)匯集服務(wù)器,進(jìn)行數(shù)據(jù)的匯總檢驗(yàn),過濾掉冗余和異常數(shù)據(jù),最后將過濾后的任務(wù)執(zhí)行情況入庫保存。本發(fā)明系統(tǒng)運(yùn)行過程中實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,并根據(jù)當(dāng)前系統(tǒng)負(fù)載狀態(tài)通過調(diào)節(jié)工作線程池中線程數(shù)量,使系統(tǒng)效能達(dá)到最優(yōu)的負(fù)載平衡,同時(shí)對工作異常的線程進(jìn)行回收。有益效果本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)(1)通過分布式任務(wù)執(zhí)行信息采集技術(shù),可以可靠而有效的對物理分散的各個(gè)任務(wù)執(zhí)行終端進(jìn)行任務(wù)狀態(tài)收集,并利用成熟的數(shù)據(jù)庫技術(shù)對歷史采集數(shù)據(jù)進(jìn)行有效的管理。(2)利用多線程技術(shù)對多任務(wù)流程的管理和監(jiān)視進(jìn)行計(jì)算資源的合理分配,實(shí)現(xiàn)多任務(wù)高效的并行處理。(3)建立多線程任務(wù)調(diào)度策略,根據(jù)執(zhí)行任務(wù)的優(yōu)先等級、監(jiān)視節(jié)點(diǎn)的關(guān)鍵程度對執(zhí)行線程進(jìn)行合理的分配。(4)通過多線程自適應(yīng)調(diào)節(jié)技術(shù),對分配線程進(jìn)行動態(tài)管理,并根據(jù)系統(tǒng)的處理能力自適應(yīng)的調(diào)整線程數(shù)量使系統(tǒng)運(yùn)行效率達(dá)到最優(yōu)值。


下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和 /或其他方面的優(yōu)點(diǎn)將會變得更加清楚。圖1是多任務(wù)進(jìn)程監(jiān)視方法的流程圖。圖2是分布式任務(wù)執(zhí)行情況數(shù)據(jù)采集的示意圖。圖3是多線程任務(wù)調(diào)度中心體系結(jié)構(gòu)框圖。圖4是線程索引表結(jié)構(gòu)圖。
具體實(shí)施例方式如圖1所示本發(fā)明分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,步驟如下第一步、由于在分布式執(zhí)行環(huán)境下各任務(wù)執(zhí)行階段被物理分散在各任務(wù)執(zhí)行終端,如圖2所示,本發(fā)明利用現(xiàn)有進(jìn)程監(jiān)視技術(shù)對各任務(wù)執(zhí)行終端的任務(wù)執(zhí)行進(jìn)程的五種狀態(tài)(就緒、等待、掛起、創(chuàng)建、消失)進(jìn)行監(jiān)視從而確定該任務(wù)執(zhí)行階段的具體執(zhí)行情況, 根據(jù)任務(wù)執(zhí)行進(jìn)程的狀態(tài)將各任務(wù)執(zhí)行階段的任務(wù)執(zhí)行情況與之相應(yīng)的定義為五類就緒 —任務(wù)準(zhǔn)備、等待一任務(wù)等待、掛起一任務(wù)中斷、創(chuàng)建一任務(wù)執(zhí)行、消失一任務(wù)結(jié)束。最后將進(jìn)程監(jiān)視獲取到的任務(wù)執(zhí)行情況通過格式化的XML描述文件進(jìn)行保存并完成任務(wù)執(zhí)行情況的自動采集。其中約定任務(wù)執(zhí)行階段的關(guān)鍵程度和任務(wù)優(yōu)先級由低到高為1 9級;第二步、將采集到的XML描述文件通過網(wǎng)絡(luò)傳輸?shù)饺蝿?wù)匯集處理服務(wù)器進(jìn)行數(shù)據(jù)的解析和檢驗(yàn),過濾掉冗余和異常數(shù)據(jù),最后將過濾后的任務(wù)數(shù)據(jù)寫入數(shù)據(jù)庫,同時(shí)發(fā)送任務(wù)變更消息通知任務(wù)調(diào)度中心;第三步、任務(wù)調(diào)度中心收到任務(wù)變更消息后直接提交到多線程任務(wù)調(diào)度模塊,多線程任務(wù)調(diào)度模塊將收到的消息加入消息等待隊(duì)列,調(diào)度控制單元對消息等待隊(duì)列進(jìn)行實(shí)時(shí)掃描在發(fā)現(xiàn)消息后按照先進(jìn)先出的原則進(jìn)行響應(yīng);第四步、調(diào)度控制單元響應(yīng)到任務(wù)變化消息后,根據(jù)線程索引表中的內(nèi)容確定送往的工作線程,線程索引表構(gòu)成如圖4所示各線程信息和各線程對應(yīng)的消息等待隊(duì)列以二維鏈表的形式保存。通過對線程索引表的遍歷確定是否存在空閑線程,如果工作線程池中全部線程已被占用則根據(jù)任務(wù)等級采用高優(yōu)先級先執(zhí)行的策略進(jìn)行調(diào)度,調(diào)度控制單元工作詳細(xì)步驟如下步驟1、根據(jù)接收到的任務(wù)變更消息解析出該任務(wù)的任務(wù)標(biāo)識,根據(jù)任務(wù)標(biāo)識遍歷線程索引鏈表獲取該任務(wù)與之對應(yīng)的工作線程,轉(zhuǎn)到步驟5。如果未查詢到該任務(wù)的工作線程,轉(zhuǎn)到步驟2。步驟2、遍歷線程索引表,通過對線程索引表中各任務(wù)標(biāo)識進(jìn)行縱向遍歷從而獲取未分配任務(wù)的空閑線程,轉(zhuǎn)到步驟5。如果仍未有空閑的工作線程,轉(zhuǎn)到步驟3。步驟3、將該消息加入調(diào)度控制單元中的消息等待隊(duì)列,并按照任務(wù)等級進(jìn)行排序,任務(wù)等級計(jì)算公式如下P = S1R +S2J ,其中R表示任務(wù)優(yōu)先級,取值范圍1 9 ;J表示任務(wù)執(zhí)行階段的關(guān)鍵程度,取值范圍1 9 ;4,仏表示任務(wù)優(yōu)先級和任務(wù)執(zhí)行階段的關(guān)鍵程度各自權(quán)值;ρ表示計(jì)算出的任務(wù)等級;步驟4、調(diào)度控制單元實(shí)時(shí)掃描等待隊(duì)列,并將消息依次送往步驟2執(zhí)行。步驟5、根據(jù)分配到的工作線程標(biāo)識和任務(wù)變更消息中的任務(wù)標(biāo)識編輯該任務(wù)的執(zhí)行消息并發(fā)送至工作線程池執(zhí)行,任務(wù)調(diào)度結(jié)束。工作線程池接收到調(diào)度控制單元送來的任務(wù)執(zhí)行消息后,經(jīng)解析獲取為該任務(wù)分配的執(zhí)行線程標(biāo)識,通過線程索引表完成任務(wù)的引導(dǎo),最終完成任務(wù)的執(zhí)行,線程池工作詳細(xì)步驟如下步驟1、創(chuàng)建工作線程池,根據(jù)預(yù)設(shè)的線程池容量創(chuàng)建相應(yīng)數(shù)量的工作線程,同時(shí)為每個(gè)工作線程開辟與之對應(yīng)的消息隊(duì)列,線程運(yùn)行過程中實(shí)時(shí)掃描該消息隊(duì)列獲取相關(guān)任務(wù)參數(shù)完成數(shù)據(jù)計(jì)算以及數(shù)據(jù)顯示等操作。步驟2、創(chuàng)建線程索引表,如錯誤!未找到引用源。所示,線程索引表以鏈表形式將任務(wù)標(biāo)識、線程標(biāo)識和線程消息隊(duì)列的對應(yīng)關(guān)系進(jìn)行保存,遍歷工作線程池將各工作線程標(biāo)識和相對應(yīng)的消息隊(duì)列加入線程索引表中,鏈表長度根據(jù)線程池容量進(jìn)行設(shè)置。步驟3、工作線程池將調(diào)度控制單元送來的任務(wù)執(zhí)行消息經(jīng)解析獲取要送往執(zhí)行的線程標(biāo)識,根據(jù)線程標(biāo)識獲取線程索引鏈表中該節(jié)點(diǎn)地址。步驟4、根據(jù)獲取的節(jié)點(diǎn)地址,將任務(wù)執(zhí)行消息送往該鏈表節(jié)點(diǎn)所指向的消息隊(duì)列等待線程執(zhí)行,同時(shí)修改該鏈表節(jié)點(diǎn)的任務(wù)標(biāo)識。步驟5、當(dāng)線程消息隊(duì)列中所有消息執(zhí)行完成后,將該節(jié)點(diǎn)中任務(wù)標(biāo)識清空恢復(fù)初始狀態(tài),任務(wù)執(zhí)行結(jié)束。第五步、系統(tǒng)運(yùn)行時(shí)線程控制模塊負(fù)責(zé)對工作線程進(jìn)行管理,線程監(jiān)視單元實(shí)時(shí)對工作線程進(jìn)行監(jiān)控當(dāng)發(fā)現(xiàn)異常線程時(shí)通知線程干預(yù)模塊終止該線程,同時(shí)將線程消息響應(yīng)隊(duì)列中未執(zhí)行的任務(wù)消息發(fā)還任務(wù)調(diào)度模塊進(jìn)行線程的重新分配,容量調(diào)節(jié)單元對系統(tǒng)性能進(jìn)行監(jiān)測并根據(jù)監(jiān)測結(jié)果調(diào)節(jié)線程池中工作線程數(shù)量,詳細(xì)步驟如下步驟1、計(jì)算某個(gè)時(shí)間段CPU工作時(shí)間計(jì)算CPU使用率對于單核CPU計(jì)算公式為(T-I)/T*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中CPU處于空閑狀態(tài)的時(shí)間;對于多核CPU計(jì)算公式為(T*N-I)/T*N*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中全部CPU核心的總空閑時(shí)間的和,N表示CPU到核心數(shù)量;容量調(diào)節(jié)單元實(shí)時(shí)對CPU使用率進(jìn)行監(jiān)測,如果監(jiān)測某一時(shí)間段CPU使用率一直大于50%則認(rèn)為系統(tǒng)負(fù)載過重需減小線程池容量執(zhí)行步驟3 ;如果監(jiān)測某一時(shí)間段CPU使用率一直小于30%則認(rèn)為系統(tǒng)負(fù)載過輕需增加線程池容量提升系統(tǒng)處理能力執(zhí)行步驟2 ; CPU使用率保持在30% 50%之間則認(rèn)為系統(tǒng)工作比較穩(wěn)定對線程池容量不進(jìn)行操作。步驟2、增加線程池容量,創(chuàng)建工作線程以及對應(yīng)的線程響應(yīng)隊(duì)列同時(shí)根據(jù)線程標(biāo)識在線程索引表中增加響應(yīng)節(jié)點(diǎn);步驟3、減少線程池容量,釋放線程池中空閑線程并將線程索引表中該線程所在節(jié)點(diǎn)刪除。本實(shí)施例所述的多任務(wù)進(jìn)程監(jiān)視系統(tǒng),包括多個(gè)分布式任務(wù)執(zhí)行終端、任務(wù)匯集處理服務(wù)器以及任務(wù)調(diào)度中心; 如圖2所示分布式任務(wù)執(zhí)行情況數(shù)據(jù)采集模型組成如下所述分布式任務(wù)執(zhí)行終端與任務(wù)匯集處理服務(wù)器之間通過XML格式描述文件傳輸任務(wù)執(zhí)行情況;所述任務(wù)執(zhí)行情況采集過程對各任務(wù)執(zhí)行終端中任務(wù)執(zhí)行進(jìn)程狀態(tài)進(jìn)行收集,并通過格式化的XML描述文件進(jìn)行保存;所述數(shù)據(jù)傳輸層用于將XML格式描述文件通過網(wǎng)絡(luò)傳輸?shù)饺蝿?wù)匯集處理服務(wù)器;所述任務(wù)匯集處理服務(wù)器用于接收XML格式描述文件,并進(jìn)行解析過濾掉冗余和異常數(shù)據(jù),最后將過濾后的任務(wù)執(zhí)行情況寫入數(shù)據(jù)庫;如圖3所示多線程任務(wù)調(diào)度中心體系結(jié)構(gòu)組成如下所述任務(wù)調(diào)度中心包括任務(wù)調(diào)度模塊、工作線程池以及線程控制模塊;所述任務(wù)調(diào)度模塊用于接收所述任務(wù)匯集處理服務(wù)器傳來的任務(wù)變更消息,其包括任務(wù)控制單元和消息等待緩沖區(qū);所述消息等待緩沖區(qū)用于存放消息;所述任務(wù)控制單元用于掃描消息并做出響應(yīng);所述工作線程池用于處理任務(wù),其包括線程索引表,線程控制單元、任務(wù)控制單元以及任務(wù)執(zhí)行單元;所述線程索引表包括任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列;所述線程控制單元用于對各工作線程的創(chuàng)建和釋放;所述任務(wù)控制單元用于對線程索引表中各線程所對應(yīng)的線程消息隊(duì)列進(jìn)行掃描并將獲取的消息送往任務(wù)執(zhí)行單元執(zhí)行; 所述任務(wù)執(zhí)行單元用于對送達(dá)的任務(wù)變更消息進(jìn)行響應(yīng)并將任務(wù)執(zhí)行情況數(shù)據(jù)進(jìn)行編碼最后送往顯示可視化進(jìn)程監(jiān)視終端顯示;所述線程控制模塊用于實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,其包括容量調(diào)節(jié)單元,線程監(jiān)視單元以及線程干預(yù)單元;所述容量調(diào)節(jié)單元對系統(tǒng)性能進(jìn)行監(jiān)測并根據(jù)監(jiān)測結(jié)果調(diào)節(jié)線程池中工作線程數(shù)量;所述線程監(jiān)視單元用于對工作線程池中工作線程進(jìn)行監(jiān)視,將長時(shí)間空閑和長時(shí)間中斷的線程進(jìn)行記錄并以日志形式進(jìn)行保存;所述線程干預(yù)單元用于對線程監(jiān)視單元所記錄的異常線程進(jìn)行釋放和重新分配。如圖4所示線程索引表結(jié)構(gòu)組成如下所述線程索引表包括任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列;所述任務(wù)標(biāo)識用于保存送往線程池執(zhí)行的任務(wù)唯一標(biāo)識;所述線程標(biāo)識用于保存執(zhí)行相應(yīng)任務(wù)的線程標(biāo)識,該標(biāo)識于任務(wù)標(biāo)識相互對應(yīng);所述線程消息隊(duì)列用于保存對應(yīng)任務(wù)標(biāo)識的執(zhí)行消息,線程運(yùn)行過程中遍歷該消息隊(duì)列并根據(jù)獲取到到任務(wù)執(zhí)行消息進(jìn)行相應(yīng)操作;所述下級節(jié)點(diǎn)地址在執(zhí)行鏈表遍歷操作時(shí)可獲取下級數(shù)據(jù)保存地址,如獲取到下級節(jié)點(diǎn)地址為空則表明該節(jié)點(diǎn)已經(jīng)是鏈表底部。本實(shí)施例通過對分布式終端各任務(wù)狀態(tài)的收集,經(jīng)多線程任務(wù)調(diào)度策略對計(jì)算資源進(jìn)行合理的分配,從而實(shí)現(xiàn)多任務(wù)進(jìn)程監(jiān)視的快速響應(yīng)。本發(fā)明提供了一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法和監(jiān)視系統(tǒng)的思路, 具體實(shí)現(xiàn)該技術(shù)方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出, 對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。本實(shí)施例中未明確的各組成部分均可用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。
權(quán)利要求
1.一種分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,其特征在于,包括以下步驟第一步,對分布式系統(tǒng)環(huán)境下的各任務(wù)執(zhí)行終端的任務(wù)執(zhí)行進(jìn)程的五種狀態(tài)進(jìn)行監(jiān)視,所述五種狀態(tài)包括就緒、等待、掛起、創(chuàng)建、消失五種;根據(jù)任務(wù)執(zhí)行進(jìn)程的狀態(tài)順序地將各任務(wù)執(zhí)行階段的任務(wù)執(zhí)行情況與之相應(yīng)的定義為五類任務(wù)準(zhǔn)備、任務(wù)等待、任務(wù)中斷、任務(wù)執(zhí)行、任務(wù)結(jié)束;將進(jìn)程監(jiān)視獲取到的任務(wù)執(zhí)行情況通過格式化的XML描述文件進(jìn)行保存;第二步、將所述XML格式描述文件傳輸?shù)饺蝿?wù)匯集處理服務(wù)器進(jìn)行數(shù)據(jù)的匯總檢驗(yàn), 過濾掉冗余和異常數(shù)據(jù),將過濾后的任務(wù)執(zhí)行情況寫入數(shù)據(jù)庫,同時(shí)發(fā)送任務(wù)變化消息通知任務(wù)調(diào)度中心;第三步,任務(wù)調(diào)度中心收到任務(wù)變化消息后將這些消息直接提交到任務(wù)調(diào)度模塊,任務(wù)調(diào)度模塊將收到的消息加入消息等待隊(duì)列,調(diào)度控制單元對消息等待隊(duì)列進(jìn)行實(shí)時(shí)掃描在發(fā)現(xiàn)消息后按照先進(jìn)先出的原則進(jìn)行響應(yīng);第四步,調(diào)度控制單元響應(yīng)到任務(wù)變化消息后,查找線程索引表獲取該任務(wù)的執(zhí)行線程并交由該線程執(zhí)行,如在線程索引表中未查詢到該任務(wù)對應(yīng)的執(zhí)行線程則根據(jù)任務(wù)等級添加到調(diào)度控制單元中消息等待隊(duì)列等待線程的分配,并將已經(jīng)分配線程執(zhí)行的任務(wù)送往工作線程池執(zhí)行;第五步,線程控制模塊在系統(tǒng)運(yùn)行過程中實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,并根據(jù)當(dāng)前系統(tǒng)負(fù)載狀態(tài)通過容量調(diào)節(jié)單元對線程池中線程數(shù)量進(jìn)行相應(yīng)的增減使計(jì)算資源達(dá)到最優(yōu)的負(fù)載平衡,同時(shí)對長時(shí)間未執(zhí)行的線程進(jìn)行刪除,同時(shí)對工作異常的線程進(jìn)行回收。
2.根據(jù)權(quán)利要求1所述的分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,其特征在于,調(diào)度控制單元執(zhí)行以下步驟實(shí)現(xiàn)任務(wù)調(diào)度步驟1、根據(jù)接收到的任務(wù)變更消息解析出該任務(wù)的任務(wù)標(biāo)識,根據(jù)任務(wù)標(biāo)識遍歷線程索引鏈表獲取該任務(wù)與之對應(yīng)的工作線程,轉(zhuǎn)到步驟5 ;如果未查詢到該任務(wù)的工作線程, 轉(zhuǎn)到步驟2 ;步驟2、遍歷線程索引表,通過對線程索引表中各任務(wù)標(biāo)識進(jìn)行縱向遍歷從而獲取未分配任務(wù)的空閑線程,轉(zhuǎn)到步驟5 ;如果仍未有空閑的工作線程,轉(zhuǎn)到步驟3 ;步驟3、將該消息加入調(diào)度控制單元中的消息等待隊(duì)列,并按照任務(wù)等級進(jìn)行排序,任務(wù)等級計(jì)算公式如下P = SlR^d2J,其中R表示任務(wù)優(yōu)先級,取值范圍1 9;J表示任務(wù)執(zhí)行階段的關(guān)鍵程度,取值范圍1 9 ;4,仏表示任務(wù)優(yōu)先級和任務(wù)執(zhí)行階段的關(guān)鍵程度各自權(quán)值;P表示計(jì)算出的任務(wù)等級;步驟4、調(diào)度控制單元實(shí)時(shí)掃描等待隊(duì)列,并返回步驟2 ;步驟5、根據(jù)分配到的工作線程標(biāo)識和任務(wù)變更消息中的任務(wù)標(biāo)識編輯該任務(wù)的執(zhí)行消息并發(fā)送至工作線程池執(zhí)行,任務(wù)調(diào)度結(jié)束。
3.根據(jù)權(quán)利要求2所述的分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,其特征在于,線程池執(zhí)行如下步驟步驟1、創(chuàng)建工作線程池,根據(jù)預(yù)設(shè)的線程池容量創(chuàng)建相應(yīng)數(shù)量的工作線程,同時(shí)為每個(gè)工作線程開辟與之對應(yīng)的消息隊(duì)列,線程運(yùn)行過程中實(shí)時(shí)掃描該消息隊(duì)列獲取任務(wù)參數(shù)完成數(shù)據(jù)計(jì)算以及數(shù)據(jù)顯示等操作;步驟2、創(chuàng)建線程索引表,線程索引表以鏈表形式將任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列的對應(yīng)關(guān)系進(jìn)行保存,遍歷工作線程池將各線程標(biāo)識和相對應(yīng)的消息隊(duì)列加入線程索引表中;步驟3、工作線程池將調(diào)度控制單元送來的任務(wù)執(zhí)行消息經(jīng)解析獲取要送往執(zhí)行的線程標(biāo)識,根據(jù)線程標(biāo)識獲取線程索引鏈表中該節(jié)點(diǎn)地址;步驟4、根據(jù)獲取的節(jié)點(diǎn)地址,將任務(wù)執(zhí)行消息送往該鏈表節(jié)點(diǎn)所指向的消息隊(duì)列等待線程執(zhí)行,同時(shí)修改該鏈表節(jié)點(diǎn)的任務(wù)標(biāo)識;步驟5、當(dāng)線程消息隊(duì)列中所有消息執(zhí)行完成后,將該節(jié)點(diǎn)中任務(wù)標(biāo)識清空恢復(fù)初始狀態(tài),任務(wù)執(zhí)行結(jié)束。
4.根據(jù)權(quán)利要求3所述的分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,其特征在于,所述容量調(diào)節(jié)單元執(zhí)行以下步驟實(shí)現(xiàn)容量調(diào)節(jié)步驟1、計(jì)算某個(gè)時(shí)間段CPU工作時(shí)間計(jì)算CPU使用率對于單核CPU計(jì)算公式為(T-I)/T*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中CPU處于空閑狀態(tài)的時(shí)間;對于多核CPU計(jì)算公式為(T*N-I)/T*N*100%,其中,T表示某個(gè)時(shí)間段,I表示在這個(gè)時(shí)間段中全部CPU核心的總空閑時(shí)間的和,N表示CPU到核心數(shù)量;容量調(diào)節(jié)單元實(shí)時(shí)對CPU使用率進(jìn)行監(jiān)測,如果監(jiān)測一時(shí)間段內(nèi)CPU使用率一直大于 50%,則判定系統(tǒng)負(fù)載過重需減小線程池容量,執(zhí)行步驟3 ;如果監(jiān)測一時(shí)間段內(nèi)CPU使用率一直小于30%,則判定系統(tǒng)負(fù)載過輕需增加線程池容量提升系統(tǒng)處理能力,執(zhí)行步驟2 ;如果監(jiān)測一時(shí)間段內(nèi)CPU使用率保持在30% 50%,則判定系統(tǒng)工作穩(wěn)定,對線程池容量不進(jìn)行操作;步驟2、增加線程池容量,創(chuàng)建工作線程以及對應(yīng)的線程響應(yīng)隊(duì)列同時(shí)根據(jù)線程標(biāo)識在線程索引表中增加響應(yīng)節(jié)點(diǎn);步驟3、減少線程池容量,釋放線程池中空閑線程并將線程索引表中該線程所在節(jié)點(diǎn)刪除。
5.一種實(shí)現(xiàn)權(quán)利要求1所述方法的多任務(wù)進(jìn)程監(jiān)視系統(tǒng),其特征在于,包括多個(gè)分布式任務(wù)執(zhí)行終端、任務(wù)匯集處理服務(wù)器以及任務(wù)調(diào)度中心;所述分布式任務(wù)執(zhí)行終端與任務(wù)匯集處理服務(wù)器之間通過XML格式描述文件傳輸任務(wù)執(zhí)行情況;所述任務(wù)調(diào)度中心包括任務(wù)調(diào)度模塊、工作線程池以及線程控制模塊; 所述任務(wù)調(diào)度模塊用于接收所述任務(wù)匯集處理服務(wù)器傳來的任務(wù)變更消息,其包括任務(wù)控制單元和消息等待緩沖區(qū);所述消息等待緩沖區(qū)用于存放消息;所述任務(wù)控制單元用于掃描消息并做出響應(yīng);所述工作線程池用于處理任務(wù),其包括線程索引表,線程控制單元、任務(wù)控制單元以及任務(wù)執(zhí)行單元;所述線程索引表包括任務(wù)標(biāo)識、線程標(biāo)識、下級節(jié)點(diǎn)地址以及線程消息隊(duì)列;所述線程控制單元用于對各工作線程的創(chuàng)建和釋放;所述任務(wù)控制單元用于對線程索引表中各線程所對應(yīng)的線程消息隊(duì)列進(jìn)行掃描并將獲取的消息送往任務(wù)執(zhí)行單元執(zhí)行;所述任務(wù)執(zhí)行單元用于對送達(dá)的任務(wù)變更消息進(jìn)行響應(yīng)并將任務(wù)執(zhí)行情況數(shù)據(jù)進(jìn)行編碼最后送往顯示可視化進(jìn)程監(jiān)視終端顯示;所述線程控制模塊用于實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視,其包括容量調(diào)節(jié)單元,線程監(jiān)視單元以及線程干預(yù)單元;所述容量調(diào)節(jié)單元對系統(tǒng)性能進(jìn)行監(jiān)測并根據(jù)監(jiān)測結(jié)果調(diào)節(jié)線程池中工作線程數(shù)量;所述線程監(jiān)視單元用于對工作線程池中工作線程進(jìn)行監(jiān)視,將長時(shí)間空閑和長時(shí)間中斷的線程進(jìn)行記錄并以日志形式進(jìn)行保存;所述線程干預(yù)單元用于對線程監(jiān)視單元所記錄的異常線程進(jìn)行釋放和重新分配。
全文摘要
本發(fā)明公開了分布式系統(tǒng)環(huán)境下的多任務(wù)進(jìn)程監(jiān)視方法,包括以下步驟對分布式系統(tǒng)環(huán)境下的各任務(wù)執(zhí)行終端的任務(wù)執(zhí)行進(jìn)程的五種狀態(tài)進(jìn)行監(jiān)視;將所述XML格式描述文件傳輸?shù)饺蝿?wù)匯集處理服務(wù)器過濾后的任務(wù)執(zhí)行情況寫入數(shù)據(jù)庫,同時(shí)發(fā)送任務(wù)變化消息通知任務(wù)調(diào)度中心;任務(wù)調(diào)度中心收到任務(wù)變化消息后將這些消息直接提交到任務(wù)調(diào)度模塊,任務(wù)調(diào)度模塊將收到的消息加入消息等待隊(duì)列;調(diào)度控制單元查找線程索引表獲取該任務(wù)的執(zhí)行線程并交由該線程執(zhí)行;線程控制模塊在系統(tǒng)運(yùn)行過程中實(shí)時(shí)對工作線程池中的多線程進(jìn)行監(jiān)視。本發(fā)明還公開了多任務(wù)進(jìn)程監(jiān)視系統(tǒng),包括多個(gè)分布式任務(wù)執(zhí)行終端、任務(wù)匯集處理服務(wù)器以及任務(wù)調(diào)度中心。
文檔編號G06F9/46GK102360310SQ20111030223
公開日2012年2月22日 申請日期2011年9月28日 優(yōu)先權(quán)日2011年9月28日
發(fā)明者吳振鋒, 彭向陽, 高翔 申請人:中國電子科技集團(tuán)公司第二十八研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
荣昌县| 西宁市| 清河县| 依安县| 孟津县| 孟津县| 泰来县| 金川县| 洛南县| 沙雅县| 肇庆市| 沙湾县| 惠安县| 武鸣县| 平罗县| 娱乐| 宁化县| 龙门县| 开远市| 湾仔区| 潼关县| 通州区| 海淀区| 酒泉市| 龙川县| 平乡县| 凯里市| 龙泉市| 邢台市| 沅江市| 永靖县| 藁城市| 深泽县| 慈溪市| 阜阳市| 宁安市| 凤翔县| 龙泉市| 民丰县| 京山县| 兴安盟|