專利名稱:應(yīng)用程序的負(fù)載控管方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于一種負(fù)載控管方法,特別有關(guān)于一種應(yīng)用程序的負(fù)載控管方法。
背景技術(shù):
由于大部分的計(jì)算機(jī)只包含一顆中央處理器,在單核心(Core)的情況下多行程 只是簡(jiǎn)單迅速地切換各行程,讓每個(gè)行程都能夠執(zhí)行,在多核心或多處理器的情況下,所有 行程透過許多協(xié)同技術(shù)在各處理器或核心上轉(zhuǎn)換。越多行程同時(shí)執(zhí)行,每個(gè)行程能分配到 的時(shí)間比率就越小。 很多操作系統(tǒng)在遇到此問題時(shí)會(huì)出現(xiàn)諸如音效斷續(xù)或鼠標(biāo)跳格的情況(稱做崩 潰(Thrashing), 一種操作系統(tǒng)只能不停執(zhí)行自己的管理程序并耗盡系統(tǒng)資源的狀態(tài),其它 使用者或硬件的程序皆無法執(zhí)行)。行程管理通常實(shí)踐了分時(shí)的概念,大部分的操作系統(tǒng)可 以利用指定不同的特權(quán)等級(jí)(priority),為每個(gè)行程改變所占的分時(shí)比例。特權(quán)越高的行 程,執(zhí)行優(yōu)先級(jí)越高,單位時(shí)間內(nèi)占的比例也越高。交互式操作系統(tǒng)也提供某種程度的回饋 機(jī)制,讓直接與使用者互動(dòng)的行程擁有較高的特權(quán)值。 但是,現(xiàn)有技術(shù)的行程運(yùn)作主要都是讓正在運(yùn)行的行程完成后,才由下一個(gè)行程 接續(xù)。這樣的作法雖然確保了行程可以被完成,但是其它的行程只能持續(xù)的等待。這樣一 來,短周期的行程就得耗費(fèi)更多的時(shí)間才能被完成。
發(fā)明內(nèi)容
鑒于以上的問題,本發(fā)明的主要目的在于提供一種應(yīng)用程序的負(fù)載控管方法,對(duì) 計(jì)算器所運(yùn)行的多筆應(yīng)用程序進(jìn)行負(fù)載控管。 為達(dá)上述目的,本發(fā)明所公開的應(yīng)用程序的負(fù)載控管方法包括以下步驟加載監(jiān) 控程序,用以監(jiān)控該些應(yīng)用程序?qū)μ幚韱卧呢?fù)載值;在每經(jīng)過預(yù)設(shè)時(shí)間后,將應(yīng)用程序當(dāng) 前的負(fù)載值與預(yù)設(shè)閥值進(jìn)行對(duì)比;若應(yīng)用程序的負(fù)載值于第一期間內(nèi)持續(xù)高于預(yù)設(shè)閥值, 則降低處理單元對(duì)應(yīng)用程序的處理等級(jí);若已被降低處理等級(jí)的應(yīng)用程序于第二期間內(nèi)所 屬的負(fù)載值持續(xù)低于預(yù)設(shè)閥值,則提升處理單元對(duì)應(yīng)用程序的處理等級(jí);重復(fù)對(duì)已降低處 理等級(jí)的應(yīng)用程序進(jìn)行監(jiān)控與調(diào)高的步驟,直至該應(yīng)用程序被調(diào)回原始的處理等級(jí)為止。
本發(fā)明提供一種可以根據(jù)時(shí)間與負(fù)載進(jìn)行行程管理的方法,使得每一個(gè)應(yīng)用程序 得以被運(yùn)行,確保每一個(gè)應(yīng)用程序可以被完成。 有關(guān)本發(fā)明的特征與實(shí)作,茲配合圖示作最佳實(shí)施例詳細(xì)說明如下。
圖1為本發(fā)明的架構(gòu)示意圖;
圖2為行程狀態(tài)示意圖; 圖3為本發(fā)明的運(yùn)作流程示意圖。
其中,附圖標(biāo)記
110計(jì)算器120處理單元130內(nèi)存140儲(chǔ)存單元210應(yīng)用程序220監(jiān)控程序
具體實(shí)施例方式
本發(fā)明所述的計(jì)算器所運(yùn)行的操作系統(tǒng)并不限定于微軟公司的窗口操作系統(tǒng)或
是Li皿x操作系統(tǒng)等。請(qǐng)參考圖l所示,其為本發(fā)明的架構(gòu)示意圖。在本發(fā)明的計(jì)算器110
包括處理單元120、內(nèi)存130與儲(chǔ)存單元140。在儲(chǔ)存單元140中記錄多筆應(yīng)用程序210與
一監(jiān)控程序220。監(jiān)控程序220用以監(jiān)測(cè)該些應(yīng)用程序210在運(yùn)行時(shí)對(duì)處理單元120的負(fù)
載量。每一個(gè)應(yīng)用程序210在操作系統(tǒng)中運(yùn)行時(shí)可以被視為獨(dú)立的行程(process)。行程
在執(zhí)行時(shí),狀態(tài)(state)會(huì)改變,請(qǐng)參考圖2所示,其為行程狀態(tài)示意圖。在行程的運(yùn)作中
包括有以下的狀態(tài) 產(chǎn)生(new):產(chǎn)生新行程;執(zhí)行(running):正在執(zhí)行的行程; 等待(wating):行程等待特定事件觸發(fā),例如等待使用者輸入完成;
就緒(ready):對(duì)各行程排班,用以等待處理單元120進(jìn)行處理;以及
結(jié)束(terminated):執(zhí)行完成的行程。 操作系統(tǒng)為能調(diào)配行程的運(yùn)行,所以每個(gè)行程在操作系統(tǒng)中都會(huì)對(duì)應(yīng)一個(gè)行程狀 態(tài)控制表(Process Control Block, PCB),請(qǐng)參考下表1所示。
指標(biāo)
行程狀態(tài)
行程號(hào)碼
程序計(jì)數(shù)器
緩存器
內(nèi)存限制 表1.行程控制表 由于每一個(gè)行程所需要的資源均有所不同,舉例來說,3D繪圖軟件需要大量的內(nèi) 存130與高負(fù)載的處理能力。而音樂播放軟件在進(jìn)行播放時(shí),則可以指派較低的處理能力。 但習(xí)知技術(shù)僅能一次完成一筆行程。所以當(dāng)前在運(yùn)行的行程需要耗費(fèi)長(zhǎng)時(shí)間,則會(huì)影響到 后續(xù)短時(shí)間完成的行程。因此為避免這種情況發(fā)生,因此本發(fā)明提出了一種負(fù)載控管的方 法,并請(qǐng)參考圖3所示,其系為本發(fā)明的運(yùn)作流程示意圖。 步驟S310 :加載行程控制表,其記錄每一應(yīng)用程序在不同處理等級(jí)時(shí)所運(yùn)作的時(shí) 間; 步驟S320 :在行程控制表中設(shè)定應(yīng)用程序的處理等級(jí)的初始值;
4
步驟S330 :加載監(jiān)控程序,用以監(jiān)控該些應(yīng)用程序?qū)μ幚韱卧呢?fù)載值; 步驟S340 :在每經(jīng)過預(yù)設(shè)時(shí)間后,將應(yīng)用程序當(dāng)前的負(fù)載值與預(yù)設(shè)閥值進(jìn)行對(duì)
比; 步驟S350 :若負(fù)載值于第一期間內(nèi)持續(xù)高于預(yù)設(shè)閥值,則降低處理單元對(duì)應(yīng)用程 序的處理等級(jí); 步驟S360 :若已被降低處理等級(jí)的應(yīng)用程序于第二期間內(nèi)所屬的負(fù)載值持續(xù)低 于預(yù)設(shè)閥值,則提升處理單元對(duì)應(yīng)用程序的處理等級(jí);以及 步驟S370 :顯示一提示信息,用以提示被修改后的應(yīng)用程序的處理等級(jí)。 首先,在運(yùn)行應(yīng)用程序前會(huì)加載該應(yīng)用程序相應(yīng)的行程控制表。在行程控制表中
記錄該筆應(yīng)用程序210在不同處理等級(jí)所需耗費(fèi)的時(shí)間。其中,處理等級(jí)系為處理單元120
在運(yùn)行應(yīng)用程序210的負(fù)載值。舉例來說,在運(yùn)行3D繪圖軟件時(shí),處理單元120的負(fù)載可
能為處理單元120的整體運(yùn)算能力的30% 70%。而音樂播放程序在進(jìn)行播放時(shí),可能僅
占用處理單元120的5%運(yùn)算能力。因此,在行程控制表中會(huì)記錄過往該應(yīng)用程序210在不
同運(yùn)算負(fù)載下完成工作的耗費(fèi)時(shí)間。 接著,在加載監(jiān)控程序220時(shí)亦同時(shí)會(huì)對(duì)應(yīng)用程序指派處理等級(jí)的默認(rèn)值。若是 應(yīng)用程序210是第一次加載,則處理單元120可以根據(jù)在隊(duì)列中的應(yīng)用程序210的多寡,在 決定給新的應(yīng)用程序210默認(rèn)值。舉例來說,當(dāng)應(yīng)用程序210較多的時(shí)候,處理單元120可 以指派10%的負(fù)載給該應(yīng)用程序210作為負(fù)載的默認(rèn)值;反之,當(dāng)應(yīng)用程序210較少的時(shí) 候,處理單元120可以指派50%的負(fù)載給該應(yīng)用程序210作為負(fù)載的默認(rèn)值。
在開始運(yùn)行應(yīng)用程序210后,處理單元120在每經(jīng)過一次預(yù)設(shè)時(shí)間時(shí),監(jiān)控程序 220會(huì)擷取每一個(gè)應(yīng)用程序210的負(fù)載值。若負(fù)載值于第一期間內(nèi)持續(xù)高于預(yù)設(shè)閥值,則降 低處理單元對(duì)應(yīng)用程序的處理等級(jí)。若已被降低處理等級(jí)的應(yīng)用程序210于第二期間內(nèi)所 屬的負(fù)載值持續(xù)低于預(yù)設(shè)閥值,則提升處理單元對(duì)應(yīng)用程序的處理等級(jí)。其中,第一期間與 第二期間可以是相同的時(shí)間長(zhǎng)度,也可以不同。 在本發(fā)明中監(jiān)控負(fù)載值的方式系將應(yīng)用程序210的負(fù)載值與預(yù)設(shè)閥值進(jìn)行對(duì)比, 并且以在每一預(yù)設(shè)時(shí)間時(shí)所記錄的對(duì)比結(jié)果是否超過設(shè)定值作為依據(jù)。在此將第一期間中 所對(duì)比的結(jié)果次數(shù)定義為異常次數(shù),在第二期間中所對(duì)比的結(jié)果次數(shù)定義為恢復(fù)次數(shù)。如 果負(fù)載值高出預(yù)設(shè)閥值,則累加異常次數(shù)。當(dāng)異常次數(shù)超出設(shè)定值,就降低處理單元120對(duì) 應(yīng)用程序210的處理等級(jí)。 如果當(dāng)前負(fù)載值在第二期間內(nèi)低于預(yù)設(shè)閥值,則將異常次數(shù)清零。若是當(dāng)前應(yīng)用 程序210處于被降級(jí)狀態(tài)并在第二期間內(nèi)低于預(yù)設(shè)閥值,則累加恢復(fù)次數(shù)。如果恢復(fù)次數(shù) 超出設(shè)定值,則提升其處理等級(jí),直至降低等級(jí)之前的狀態(tài)。 假設(shè)處理單元120的處理等級(jí)劃分為1 10級(jí),第1級(jí)為負(fù)載10%、第2級(jí)為負(fù) 載20%、第3級(jí)為負(fù)載30%、第4級(jí)為負(fù)載40%、第5級(jí)為負(fù)載50%、第6級(jí)為負(fù)載60%、 第7級(jí)為負(fù)載70%、第8級(jí)為負(fù)載80%、第9級(jí)為負(fù)載90%、第10級(jí)為負(fù)載100%,且預(yù)設(shè) 閥值為"30%"。若進(jìn)程A的初始值設(shè)定為第2級(jí)。監(jiān)控程序220在經(jīng)過預(yù)設(shè)時(shí)間(假設(shè)為 IO分鐘)中,在預(yù)設(shè)時(shí)間中的每經(jīng)過第一時(shí)間(假設(shè)為l分鐘)獲取進(jìn)程A均維持在40X。 因此,監(jiān)控程序220可以獲得異常次數(shù)為10次。若是設(shè)定值為5,則異常次數(shù)是大于設(shè)定 值。所以監(jiān)控程序220需要調(diào)低處理單元120對(duì)于進(jìn)程A的負(fù)載。若是進(jìn)程A已經(jīng)被調(diào)低處理等級(jí),且在預(yù)設(shè)時(shí)間內(nèi)每經(jīng)過第二時(shí)間(假設(shè)2分鐘)負(fù)載為10%。監(jiān)控程序220可 以得到恢復(fù)次數(shù)5,因此恢復(fù)次數(shù)大于/等于,監(jiān)控程序220會(huì)提高處理單元120對(duì)于進(jìn)程 A的處理等級(jí)。 本發(fā)明提供一種可以根據(jù)時(shí)間與負(fù)載進(jìn)行行程管理的方法,使得每一個(gè)應(yīng)用程序 210得以被運(yùn)行,確保每一個(gè)應(yīng)用程序210可以被完成。
權(quán)利要求
一種應(yīng)用程序的負(fù)載控管方法,對(duì)一計(jì)算器所運(yùn)行的多筆應(yīng)用程序進(jìn)行負(fù)載控管,其特征在于,該負(fù)載控管方法包括以下步驟加載一監(jiān)控程序,用以監(jiān)控該些應(yīng)用程序?qū)σ惶幚韱卧囊回?fù)載值;在每經(jīng)過一預(yù)設(shè)時(shí)間后,將該應(yīng)用程序當(dāng)前的該負(fù)載值與一預(yù)設(shè)閥值進(jìn)行對(duì)比;若該負(fù)載值于一第一期間內(nèi)持續(xù)高于該預(yù)設(shè)閥值,則降低該處理單元對(duì)該應(yīng)用程序的一處理等級(jí);以及若已被降低該處理等級(jí)的該應(yīng)用程序于一第二期間內(nèi)所屬的該負(fù)載值持續(xù)低于該預(yù)設(shè)閥值,則提升該處理單元對(duì)該應(yīng)用程序的該處理等級(jí)。
2. 如權(quán)利要求1所述的應(yīng)用程序的負(fù)載控管方法,其特征在于,在加載該監(jiān)控程序的步驟前還包括加載一行程控制表,其記錄每一該應(yīng)用程序在不同該處理等級(jí)時(shí)所運(yùn)作的時(shí)間;以及在該行程控制表中設(shè)定該應(yīng)用程序的該處理等級(jí)的初始值。
3. 如權(quán)利要求1所述的應(yīng)用程序的負(fù)載控管方法,其特征在于,在調(diào)整該應(yīng)用程序的步驟后還包括顯示一提示信息。
全文摘要
本發(fā)明公開了一種應(yīng)用程序的負(fù)載控管方法,對(duì)計(jì)算器所運(yùn)行的多筆應(yīng)用程序進(jìn)行負(fù)載控管。該負(fù)載控管方法包括以下步驟加載監(jiān)控程序,用以監(jiān)控該些應(yīng)用程序?qū)μ幚韱卧呢?fù)載值;在每經(jīng)過預(yù)設(shè)時(shí)間后,將應(yīng)用程序的當(dāng)前負(fù)載值與其相應(yīng)的預(yù)設(shè)閥值進(jìn)行對(duì)比,若應(yīng)用程序的負(fù)載在第一期間內(nèi)持續(xù)的在預(yù)設(shè)閥值之上,則降低處理單元對(duì)應(yīng)用程序的處理等級(jí);如果一個(gè)已經(jīng)被降級(jí)的應(yīng)用程序的負(fù)載在第二期間內(nèi)持續(xù)的在預(yù)設(shè)閥值之下,則提升其處理等級(jí)直至其初始等級(jí)。
文檔編號(hào)G06F9/50GK101777009SQ200910253320
公開日2010年7月14日 申請(qǐng)日期2009年11月30日 優(yōu)先權(quán)日2009年11月30日
發(fā)明者陳玄同, 陳龍 申請(qǐng)人:英業(yè)達(dá)股份有限公司