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

選擇子os的一個(gè)執(zhí)行計(jì)劃的方法與使用該方法的虛擬機(jī)監(jiān)視器的制作方法

文檔序號:6615442閱讀:121來源:國知局
專利名稱:選擇子os的一個(gè)執(zhí)行計(jì)劃的方法與使用該方法的虛擬機(jī)監(jiān)視器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及提供虛擬機(jī)執(zhí)行環(huán)境的虛擬機(jī)系統(tǒng)。具體而言,本發(fā)明涉及基于子OS之間的通信狀態(tài)選擇子OS (子操作系統(tǒng))的一個(gè)執(zhí)行計(jì)劃 (execution schedule)的方法以及使用該方法的虛擬機(jī)監(jiān)視器,其中,子 OS是在虛擬機(jī)執(zhí)行環(huán)境下執(zhí)行的。
背景技術(shù)
近來,如日本特開No.2006-039763所公開,已經(jīng)在例如個(gè)人計(jì)算機(jī)等 計(jì)算機(jī)系統(tǒng)中進(jìn)行了使用虛擬機(jī)(VM)技術(shù)的研究和開發(fā)。實(shí)現(xiàn)虛擬機(jī) 系統(tǒng)(VM系統(tǒng))的商業(yè)應(yīng)用程序已經(jīng)得到廣泛使用。主框架已經(jīng)包括了 使用由硬件(HW)構(gòu)成的虛擬機(jī)支持單元(VM支持單元)的VM系統(tǒng)。
通常,個(gè)人計(jì)算機(jī)等計(jì)算機(jī)系統(tǒng)包含包括處理器(真實(shí)處理器)、多 種輸^/輸出(I/O)單元(真實(shí)I/O單元)和存儲器(真實(shí)存儲器)在內(nèi) 的HW(真實(shí)HW)。在這種計(jì)算機(jī)系統(tǒng)中,操作系統(tǒng)(OS)被執(zhí)行,且 多種應(yīng)用程序(應(yīng)用)在OS上運(yùn)行。虛擬機(jī)應(yīng)用(VM應(yīng)用)作為應(yīng)用 之一為人們所知。
VM應(yīng)用包括虛擬機(jī)監(jiān)視器(VMM) 。 VMM通過運(yùn)行VM應(yīng)用實(shí)現(xiàn)。 VMM也被稱為虛擬機(jī)管理器。VMM管理VM系統(tǒng),并構(gòu)成虛擬硬件單 元(虛擬HW單元)。虛擬HW單元包含虛擬硬件(虛擬HW),例如虛 擬處理器、虛擬I/O單元、虛擬存儲器單元(虛擬存儲器)等等。VMM 在邏輯上對虛擬HW進(jìn)行仿真,以便實(shí)現(xiàn)虛擬機(jī)執(zhí)行環(huán)境或用于虛擬機(jī)系 統(tǒng)的執(zhí)行環(huán)境(虛擬機(jī)系統(tǒng)環(huán)境)。環(huán)境與適合作為子OS的OS —起裝 載,且OS (子OS)被操作。
VMM將子OS的代碼(執(zhí)行代碼)展開到作為虛擬HW的存儲器單
元中,并以虛擬處理器仿真的形式對執(zhí)行代碼進(jìn)行執(zhí)行。當(dāng)VMM仿真虛 擬I/O單元時(shí),來自子OS的輸V輸出請求(I/O請求)被處理。如上所述,VMM可在通用計(jì)算機(jī)系統(tǒng)中建立虛擬機(jī)執(zhí)行環(huán)境(虛擬 機(jī)系統(tǒng)環(huán)境),以便在其中執(zhí)行多個(gè)子OS。如上所述,VMM被實(shí)現(xiàn)為在 OS (主OS)上運(yùn)行的一個(gè)應(yīng)用。VMM在計(jì)算機(jī)系統(tǒng)的真實(shí)HW上實(shí)現(xiàn)也是已知的。這種VMM被稱 為VMM單元,并在本質(zhì)上作為OS。 VMM單元對真實(shí)處理器、真實(shí)1/0 單元等真實(shí)HW進(jìn)行虛擬化,并作為功能向各個(gè)子OS提供虛擬化HW。 VMM單元在其上建立虛擬機(jī)執(zhí)行環(huán)境。VMM單元對虛擬處理器、虛擬 I/O單元等虛擬HW進(jìn)行仿真,或根據(jù)時(shí)間和區(qū)域向虛擬HW分配真實(shí)處 理器、真實(shí)I/O單元、真實(shí)存儲器單元等真實(shí)HW (HW資源)。VMM 單元因此建立起虛擬機(jī)執(zhí)行環(huán)境。子OS ^f皮裝載到虛擬機(jī)執(zhí)行環(huán)境之中, 并由虛擬處理器執(zhí)行。虛擬機(jī)執(zhí)行環(huán)境中子OS在其下被執(zhí)行的環(huán)境被稱為子OS執(zhí)行環(huán)境。 通常,在虛擬機(jī)系統(tǒng)中執(zhí)行多個(gè)子OS。用于在子OS之間進(jìn)行通信的通信 接口對于每個(gè)子OS在其中被執(zhí)行的執(zhí)行環(huán)境來說是有用的。VMM因此 提供這種通信接口。通信接口的典型功能如下 (1)子OS之間的中斷(interrupt)功能 (2 )子OS之間共享存儲器功能 (3 )子OS之間的消息傳送功能功能(1)為用于從一個(gè)子OS向另一個(gè)指定子OS發(fā)送中斷的機(jī)制。 接收子OS具有用于通過例如中斷因數(shù)信息來檢測哪一子OS發(fā)送該中斷 的裝置。功能(2)為用于在特定子OS之間共享存儲器空間的機(jī)制。發(fā)送子 OS將數(shù)據(jù)寫到存儲器空間(共享存儲器空間),接著,接收子OS讀取該 數(shù)據(jù)。數(shù)據(jù)傳送因此能夠執(zhí)行。為了數(shù)據(jù)傳送的同步,只要使用上述功能 (1)的機(jī)制。
為了實(shí)現(xiàn)功能(3 ),發(fā)送子OS必須指定有待發(fā)送的數(shù)據(jù)(發(fā)送數(shù)據(jù)) 和目標(biāo)子OS (接收子OS),并請求VMM傳送數(shù)據(jù)。VMM將指定數(shù)據(jù) 復(fù)制到目標(biāo)子OS的接收緩沖器,接著,設(shè)置到目標(biāo)子OS的接收中斷。如果功能(1)與(2) —起使用或單獨(dú)使用功能(3),可實(shí)現(xiàn)基本的 子OS通信。在現(xiàn)有技術(shù)中的虛擬機(jī)系統(tǒng)中,如果上述通信接口被用于初級機(jī)制,控制協(xié)議/網(wǎng)間協(xié)議(TCP/IP)等通信協(xié)議。因此,可以想到,多個(gè)子OS 通過上述機(jī)制彼此進(jìn)行通信,并相互協(xié)作地提供服務(wù)。例如,直接連接到 外部通信通道(外部網(wǎng)絡(luò))的子OS作為防火墻(FW),另一子OS經(jīng)由 虛擬網(wǎng)絡(luò)連接到此子OS。然而,當(dāng)子OS在彼此進(jìn)行通信的同時(shí)執(zhí)行處理時(shí),存在這樣的情況 通信在效率上沒有改善。這種情況將在下文中闡釋。首先假設(shè)四個(gè)子OS #A、 #B、 #C、存D在由VMM構(gòu)建的虛擬機(jī)執(zhí)行環(huán)境下運(yùn)行,且四OS中 的子OS #A與弁C在相互通信的同時(shí)執(zhí)行處理。具體而言,假設(shè)子OS #A 中的進(jìn)程弁a與子OS #C中的進(jìn)程弁c在相互之間發(fā)送/接收數(shù)據(jù)的同時(shí)執(zhí)行 處理。VMM支持用于在子OS之間進(jìn)行通信的上述三個(gè)功能(1)到(3 )。 子OS #A與弁C使用這些功能彼此通信。這里假設(shè)進(jìn)程^a與^請求它們各 自的子OS經(jīng)由TCP/IP接口發(fā)送/接收數(shù)據(jù)。在這種情況下,各個(gè)子OS 接收和處理請求,并經(jīng)由由VMM提供的通信接口向另一子OS發(fā)送消息。 通信接口例如為在子OS之間傳送消息的功能。假設(shè)在子OS #A與弁C之間重復(fù)下面四個(gè)處理。 (1)子OS #A (進(jìn)程紐)向子OS #C發(fā)送三個(gè)消息(網(wǎng)絡(luò)數(shù)據(jù)包) (處理al)。(2 )子OS #C (進(jìn)程弁c)接收來自子OS #A的三個(gè)消息并對它們進(jìn) 行處理(處理cl)。(3 )子OS #C (進(jìn)程弁c)由所處理的消息產(chǎn)生新的消息并將之發(fā)送到
子OS #A (處理c2 )。(4 )子OS #A (進(jìn)程弁a)接收來自子OS #C的新消息并對之進(jìn)行處 理(處理a2 )。上述四個(gè)處理重復(fù)時(shí)執(zhí)行的操作順序如圖4A所示。在圖4A中,處理 al與a2的組合用處理i表示,處理cl與c2的組合用處理c表示。在圖 4A中,水平軸表示過去的時(shí)間。在圖4A中,"t"表示由VMM向各子OS分配處理器(CPU)的時(shí) 間單位,并通常稱為時(shí)間片(time quantum)。為簡明起見,假設(shè)在圖4A 的實(shí)例中沒有一個(gè)子OS在時(shí)間片t中途被切換。具體而言,分別在從tn+1 、 tn+2、 tn+3、 tn+4開始的時(shí)間片t中將處理器分配給子OS #A、 #B、 #C、 #D。類似地,分別在從tn+5、 tn+6、 tn+7、 tn+8開始的時(shí)間片t中將處理 器分配給子OS #A、 #B、 #C、 #D。然而,實(shí)際上,通過中斷等事件,子 OS在時(shí)間片t中途被切換。在圖4A中,向下的箭頭表示發(fā)送消息,向上的箭頭表示接收消息。 箭頭的數(shù)量對應(yīng)于消息的數(shù)量。附著到各向上箭頭(接收消息)頭部的包 含'V"的字符串意味著其對應(yīng)的消息在該字符串表示的時(shí)間內(nèi),嫂送。包 含"t"的字符串下面被括住的符號意味著其對應(yīng)的消息由該符號表示的子 OS發(fā)送。在圖4A的實(shí)例中,如上所述,處理器在時(shí)刻tn+1被分派給子OS #A, 以便啟動(dòng)子OS弁A。接著,子OS幷A的進(jìn)程幷a開始執(zhí)行處理al。因此, 三個(gè)消息祐發(fā)送到子OS幷C。此后(時(shí)刻tx后),直到至少一個(gè)消息從子 OS #C返回之前,進(jìn)程弁a不能執(zhí)行處理(處理a2 )。即使消息從子OS #C 返回,如果子OS弁A不可運(yùn)行,直到子OS弁A變得可運(yùn)行之前,進(jìn)程弁a 不能執(zhí)^f亍處理(處理a2 )。然而,如果處理al與a2的處理時(shí)間總和小于 時(shí)間片T,可在時(shí)間片T的剩余時(shí)間內(nèi)執(zhí)行子OS弁A的進(jìn)程弁a以外的進(jìn)程。VMM將由子OS弁A的進(jìn)程弁a發(fā)送的消息發(fā)送到子OS #C 。然而,此 時(shí),子OS #C尚未啟動(dòng)運(yùn)4亍。在圖4A的實(shí)例中,在時(shí)刻tn+3后,子OS弁C 能啟動(dòng)運(yùn)行。因此,在處理al中祐發(fā)送到子OS弁C的消息不是馬上由子 OS弁C接收,而是在時(shí)刻tn+3時(shí)。如果處理cl與c2所需的時(shí)間短于時(shí)間片t,子OS弁C的進(jìn)程弁c執(zhí)4亍 處理cl與c2,并向子OS #A發(fā)送一個(gè)消息。此后(時(shí)刻ty之后),子 OS #C的進(jìn)程弁c的處理不能繼續(xù),但子OS #C中的另一進(jìn)程被執(zhí)行。當(dāng)從 tn+1開始過去4t時(shí),子OS #A能在時(shí)刻tn+5時(shí)重新運(yùn)行,以^f更接收來自 子OS弁C的消息并對之進(jìn)行處理(處理a2)。因此,在47的時(shí)間周期內(nèi) 執(zhí)行一系列的處理al、 cl、 c2、 a2。從圖4A顯然可以看出,這種情況對 于進(jìn)程弁a、 ^c來說效率非常低下。因此,可以想到,優(yōu)先將處理器分派到受到未決(pending)中斷的子 OS。如上所述,子OS之間的通信作為發(fā)送目標(biāo)中的中斷實(shí)現(xiàn)。使用這種 分派技術(shù),當(dāng)通信消息被發(fā)送時(shí),處理器被分派到目標(biāo)子OS。然而,每當(dāng) 消息^LiL送時(shí),子OS被切換。因此,切換子OS的額外成本將大大增加。 在上面介紹的如果多個(gè)消息未被發(fā)送則進(jìn)程^c不執(zhí)行下一處理的情況下, 系統(tǒng)性能可能下降,如將在下面介紹的那樣。如果控制僅在進(jìn)程弁a的第一個(gè)消息發(fā)送中被傳遞,進(jìn)程^c不能完成處 理cl,因?yàn)榱硗鈨蓚€(gè)消息未被發(fā)送。換句話說,進(jìn)程弁c不得不在子OS #A 被重新計(jì)劃為向進(jìn)程弁c發(fā)送另外的(兩個(gè))消息之前一直等待。作為由于 中斷而切換子OS的結(jié)果,系統(tǒng)性能可能根據(jù)環(huán)境而劣化??梢韵氲?,作為另一種技術(shù),將時(shí)間片t設(shè)置為較小的值。該值越小, 執(zhí)行每個(gè)子OS的機(jī)M多。在這種情況下,消息被發(fā)送,接著,消息被 發(fā)送到的目標(biāo)子OS在短時(shí)間內(nèi)變得可運(yùn)行。因此,消息接收處理得以早 地執(zhí)行。然而,如果時(shí)間片7減小,用于切換子OS的成本增加,整個(gè)系 統(tǒng)的效率降低。通常,時(shí)間片t被設(shè)置為最優(yōu)值,使得目標(biāo)系統(tǒng)的響應(yīng)時(shí)間令人滿意, 且用于選擇子OS的成本低(該成本對系統(tǒng)沒有不良影響)。為了獲得令 人滿意的響應(yīng)時(shí)間,時(shí)間片t應(yīng)衫L設(shè)置為小的值,并且,為了得到低的成本,其應(yīng)被設(shè)置為大的值。因此,如果最初被設(shè)置為最優(yōu)值的時(shí)間片t被減小,存在整個(gè)系統(tǒng)的效率下降的擔(dān)心。
發(fā)明內(nèi)容本發(fā)明的一個(gè)目標(biāo)在于當(dāng)子OS執(zhí)行處理時(shí)改進(jìn)在子OS之間執(zhí)行的通信的效率。根據(jù)本發(fā)明一實(shí)施例,提供了一種在虛擬機(jī)系統(tǒng)中切換多個(gè)子OS的 執(zhí)行計(jì)劃的方法,其中,子OS在由虛擬機(jī)監(jiān)視器提供的虛擬機(jī)執(zhí)行環(huán)境 下分時(shí)執(zhí)行,在虛擬機(jī)系統(tǒng)中,任何兩個(gè)子OS在經(jīng)由由虛擬機(jī)監(jiān)視器提 供的通信接口彼此相互通信的同時(shí)執(zhí)行處理。該方法包含通過虛擬機(jī)監(jiān) 視器指定經(jīng)由通信接口彼此相互通信的子OS組;由虛擬機(jī)監(jiān)視器將包含 在所指定的子OS組中的各子OS的執(zhí)行計(jì)劃的時(shí)間片設(shè)置得較短。


附圖并入說明書并構(gòu)成說明書的一部分,其示出了本發(fā)明的實(shí)施例, 并與上面給出的一般介紹以及下面給出的對實(shí)施例的詳細(xì)介紹一起用于闡 釋本發(fā)明的原理。圖l為一框圖,其示出了實(shí)現(xiàn)根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)系統(tǒng)的計(jì) 算機(jī)系統(tǒng);圖2為一框圖,其示出了圖1所示的機(jī)器系統(tǒng)中的虛擬機(jī)監(jiān)視器 (VMM)的構(gòu)造;圖3為一框圖,其示出了根據(jù)該實(shí)施例的虛擬機(jī)系統(tǒng)的狀態(tài)實(shí)例,其 中,兩個(gè)子OS在彼此通信的同時(shí)執(zhí)行處理;圖4A與4B為時(shí)序圖,其各自示出了圖3所示系統(tǒng)狀態(tài)中重新計(jì)劃之 前和之后的處理序列;圖5為圖4A所示處理序列中的通信狀態(tài)表;圖6為一流程圖,其示出了用于根據(jù)本發(fā)明該實(shí)施例的虛擬機(jī)系統(tǒng)中 的時(shí)間片控制處理的過程; 圖7為子OS表的實(shí)例;圖8A與8B為時(shí)序圖,其各自示出了當(dāng)三個(gè)子OS在彼此通信的同時(shí)
執(zhí)行處理時(shí)在重新計(jì)劃之前和之后的處理序列; 圖9為圖8A所示處理序列中的通信狀態(tài)表;圖10為子OS表的實(shí)例,其用于基于圖9所示通信狀態(tài)表執(zhí)行的時(shí)間 片控制處理;圖11為圖8B所示處理序列中的通信狀態(tài)表;圖12為一框圖,其示出了根據(jù)本發(fā)明該實(shí)施例的變型的虛擬機(jī)監(jiān)視器 (VMM)的構(gòu)造;圖13為n值定義表的實(shí)例;圖14A與14B為流程圖,其示出了在根據(jù)本發(fā)明該實(shí)施例的該變型中 用于時(shí)間片控制處理的過程;以及 圖15為平均通信時(shí)間表的實(shí)例。
具體實(shí)施方式
現(xiàn)在將參照附圖介紹本發(fā)明一實(shí)施例。圖1為一框圖,其示出了實(shí)現(xiàn) 根據(jù)本發(fā)明一實(shí)施例的虛擬機(jī)系統(tǒng)(VM系統(tǒng))的計(jì)算機(jī)系統(tǒng)1的構(gòu)造。 計(jì)算機(jī)系統(tǒng)1包含構(gòu)成真實(shí)機(jī)器的硬件(HW) 10。人們知道,HW 10包 含真實(shí)處理器ll、 1/0單元(輸^/輸出單元)12、存儲器(未示出)。被 稱為主OS的OS 20在HW 10上運(yùn)行。在OS (主OS ) 20上執(zhí)行包含虛 擬機(jī)應(yīng)用(VM應(yīng)用)30在內(nèi)的多種應(yīng)用。VM應(yīng)用30包含虛擬機(jī)監(jiān)視器(VMM) 31。在執(zhí)行VM應(yīng)用30時(shí), 實(shí)現(xiàn)VMM 31。 VMM 31管理VM系統(tǒng)并建立VM系統(tǒng)的環(huán)境(虛擬機(jī)執(zhí) 行環(huán)境)。在圖1中,構(gòu)建四個(gè)虛擬機(jī)執(zhí)行環(huán)境(VM執(zhí)行環(huán)境)32A、 32B、 32C、 32D。VM執(zhí)行環(huán)境32i (i=A、 B、 C、 D )包含虛擬HW環(huán)境(虛擬HW單 元)33i和子OS執(zhí)行環(huán)境34i。虛擬HW環(huán)境33i包含虛擬HW,例如虛 擬處理器(VP) 331i、虛擬I/0單元332i、虛擬存儲器單元(未示出)等 等。VMM 31在邏輯上仿真虛擬HW,以便實(shí)現(xiàn)上述VM執(zhí)行環(huán)境32i。 VMM 31將運(yùn)行在VM執(zhí)行環(huán)境32i中的子OS執(zhí)行環(huán)境34i中的OS作為
子OS 35i (#i)裝載到子OS執(zhí)行環(huán)境34i中。4皮裝載到子OS執(zhí)行環(huán)境34i 中的子OS 35i (#i)在子OS執(zhí)行環(huán)境34i中被執(zhí)行。VMM 31在包含在虛擬HW環(huán)境33i中的虛擬存儲器單元中展開子 OS 35i (#i)的代碼(執(zhí)行代碼),并以虛擬處理器331i的仿真的形式對 執(zhí)行代碼進(jìn)行執(zhí)行。因此,VMM 31繼續(xù)進(jìn)行子OS 35i的運(yùn)行。來自子 OS 35i的I/O請求在VMM 31仿真虛擬I/O單元332i時(shí)被處理。圖2為一框圖,其示出了圖1所示VMM31的構(gòu)造。VMM31包含計(jì) 劃器3U、分派器312、通信服務(wù)單元313、通信狀態(tài)表314以及子OS表 315。計(jì)劃器311確定子OS35i (#i)的計(jì)劃。多種類型可^1考慮為由計(jì)劃 器311實(shí)施的計(jì)劃策略。假i殳在本實(shí)施例中計(jì)劃器311實(shí)現(xiàn)簡單的循環(huán)計(jì) 劃?;旧希?jì)劃器311指示分派器312以被稱為時(shí)間片(T)的時(shí)間單位 執(zhí)行子OS 35i (#0 。然而,在本實(shí)施例中,計(jì)劃器311也指示分派器根 據(jù)情況改變時(shí)間片的值。分派器312實(shí)際上才艮據(jù)計(jì)劃器311的指示將處理器(真實(shí)處理器11) 分派到子OS35i (#1)。當(dāng)計(jì)劃器311所指示時(shí)間片的時(shí)間過去時(shí),分派 器312將處理器(真實(shí)處理器11)從子OS 35i (#1)移除并將處理器分配 給另一子OS。重復(fù)進(jìn)行這種處理。通信服務(wù)單元313作為用于處理子OS之間的通信請求(其從子OS 35i (#i)被發(fā)送到VMM 31)的通信接口。通信請求以管理程序調(diào)用(系統(tǒng) 調(diào)用)的形式凈iL良布到VMM 31。在這種調(diào)用中,目標(biāo)子OS和消息數(shù)據(jù) 被指定。通信服務(wù)單元313將被指定的消息發(fā)送到被指定的子OS,并設(shè)置 接收中斷。當(dāng)處理器被分派給目標(biāo)子OS時(shí),將接收中斷通知到目標(biāo)子OS。 目標(biāo)子OS可將由通信服務(wù)單元313發(fā)送的消息數(shù)據(jù)作為接收數(shù)據(jù)進(jìn)行參 照。通信狀態(tài)表314用于保持關(guān)于由通信服務(wù)單元313所處理消息的發(fā)送 的信息。具體而言,通信狀態(tài)表314用于保持關(guān)于消息發(fā)送的信息,其中, 子OS 35i被定義為發(fā)送源,子OS 35j( j *i )被定義為發(fā)送目標(biāo)。子OS 35A、 35B、 35C、 35D、 35i、 35j將在下文中分別被表示為子OS #A、 #B、 #C、
#D、 #i和^j。子OS表315用于將彼此發(fā)送消息的子OS對保持為相互通 信子OS對,其中,該消息在一個(gè)計(jì)劃時(shí)間周期(下文中介紹)內(nèi)被接收。圖3示出了由圖l所示計(jì)算機(jī)系統(tǒng)l實(shí)現(xiàn)的VM系統(tǒng)(虛擬機(jī)系統(tǒng)) 的狀態(tài)實(shí)例。在該實(shí)例中,子OS弁A、 #B、 #C、弁D由VMM31所構(gòu)建的 VM執(zhí)行環(huán)境32A、 32B、 32C、 32D (見圖1)運(yùn)行。在圖3所示的系統(tǒng) 狀態(tài)中,子OS #A中的進(jìn)程浮a和子OS #C中的進(jìn)程弁c在彼此相互通信的 同時(shí)執(zhí)行處理。具體而言,四個(gè)處理(al、 cl、 c2、 a2)在子OS弁A中的 進(jìn)程弁a和子OS #C中的進(jìn)程弁c之間重復(fù)進(jìn)行。圖4A與4B各自示出了當(dāng)重復(fù)四個(gè)處理時(shí)在重新計(jì)劃之前和之后的處 理序列。在圖4A與4B中,向下的箭頭表示發(fā)送消息,向上的箭頭表示接 收消息。箭頭的數(shù)量對應(yīng)于消息的數(shù)量。附著到各向上箭頭(接收消息) 頭部的含有"T"的字符串意味著其對應(yīng)的消息在由該字符串表示的時(shí)間內(nèi) (例如2t對應(yīng)于2t的時(shí)間段)被發(fā)送。字符串下方被括住的符號意味著 其對應(yīng)的消息從該符號表示的子OS發(fā)送(如果被括住的符號為A,消息 從子OS弁A發(fā)送)。圖5示出了圖2的通信狀態(tài)表314的實(shí)例,其中,被計(jì)劃的子OS為 子OS弁A、 #B、 #C、 #D。對于作為發(fā)送目標(biāo)的子OS弁i (i=A、 B、 C、 D) 和作為發(fā)送源的子OS弁j (j=A、 B、 C、 D; j承i)的所有組合,表314具 有條目射j,其保持關(guān)于消息發(fā)送的信息(下文被稱為通信狀態(tài)信息)。通信狀態(tài)表314的條目#ij中所保持的通信狀態(tài)信息包括消息數(shù)量和平 均發(fā)送時(shí)間。消息數(shù)量是在一個(gè)計(jì)劃時(shí)間周期中從子OS #i發(fā)布到子OS #j 的消息的數(shù)量,或在短于一個(gè)計(jì)劃時(shí)間周期的時(shí)間段中從子OS #1發(fā)送且 由子OS #j接收的消息的數(shù)量。平均發(fā)送時(shí)間是直到子OS #j接收來自子 OS #i的消息為止所需要的平均時(shí)間,或?yàn)閺淖覱S #i到子OS #j的消息發(fā) 送所需要的平均時(shí)間。在圖5的實(shí)例中,平均發(fā)送時(shí)間被括住。在本實(shí)施例中,假i殳一個(gè)計(jì)劃時(shí)間周期表示為t x當(dāng)前凈皮計(jì)劃的子OS的數(shù)量。當(dāng)如本實(shí)施例中那樣在時(shí)間片t的時(shí) 間中執(zhí)行簡單的循環(huán)計(jì)劃時(shí), 一個(gè)計(jì)劃時(shí)間周期等于從將處理器分派到各
子OS到其下一個(gè)分派所需要的時(shí)間。在圖4中,例如,從tn+l到tn+5 的時(shí)間段對應(yīng)于一個(gè)計(jì)劃時(shí)間周期,即4t。
通信狀態(tài)信息由通信服務(wù)單元313創(chuàng)建,其中,子OS弁i為發(fā)送源, 子OS #j為發(fā)送目標(biāo)。通信狀態(tài)表314的條目#ij的信息被更新為所創(chuàng)建的 通信狀態(tài)信息。計(jì)劃器311可在每個(gè)計(jì)劃時(shí)間周期結(jié)束時(shí)參照在表314中 更新的通信狀態(tài)信息。
圖5的通信狀態(tài)表314示出了由圖4A所示的處理序列表示的消息發(fā) 送的狀態(tài)(通信狀態(tài))。例如,作為關(guān)于在最近一個(gè)計(jì)劃時(shí)間周期中在子 OS #A與子OS #C之間的消息發(fā)送的通信狀態(tài)信息,"3 ( 2t ) " #皮保持 在表314的條目中,該條目對應(yīng)于成對的發(fā)送源子OS #A和發(fā)送目標(biāo)子 OS #C。值"3"表示在短于所述一個(gè)計(jì)劃時(shí)間周期的時(shí)間內(nèi)由子OS #A 發(fā)送且由子OS #C接收的消息的數(shù)量。被括住的號碼"2T,,表示從子OS #A 到子OS #C的消息發(fā)送所需要的平均發(fā)送時(shí)間。
在本實(shí)施例中,每個(gè)計(jì)劃時(shí)間周期,計(jì)劃器311執(zhí)行下面的用于控制 時(shí)間片的處理(時(shí)間片控制處理)。計(jì)劃器311參照通信狀態(tài)表314以便 基于子OS之間的通信狀態(tài)檢索彼此密切(closely)相互通信的子OS對。 如果計(jì)劃器311檢測到目標(biāo)子OS對,通過降低將處理器分配到各子OS 的粒度(degree)來防止消息發(fā)送的延遲。每個(gè)計(jì)劃時(shí)間周期,計(jì)劃器311 執(zhí)行時(shí)間片控制處理。時(shí)間片控制處理可每兩個(gè)或兩個(gè)以上的計(jì)劃時(shí)間周 期執(zhí)行一次。
將參照圖6所示流程圖介紹由計(jì)劃器311執(zhí)行時(shí)間片控制處理的過程。 首先,計(jì)劃器311檢測彼此密切相互通信的所有子OS對(相互通信子OS) (步驟Sll)。彼此密切相互通信是從各子OS發(fā)送消息、使得該消息能 在一個(gè)計(jì)劃時(shí)間周期中被接收到。具體而言,計(jì)劃器311參照圖5所示的 通信狀態(tài)表314以檢索所有這樣的子OS對#1與幷j:其發(fā)送消息,使得這 些子OS能在一個(gè)計(jì)劃時(shí)間周期內(nèi)接收到消息。具體而言,子OS #i、 #j 包括子OS弁i,其發(fā)送消息,使得子OS弁j能在一個(gè)計(jì)劃時(shí)間周期內(nèi)接收 到該消息;子OS弁j,其發(fā)送消息,J吏得子OS弁i能在與所述一個(gè)計(jì)劃時(shí)間
周期的同一時(shí)間周期內(nèi)接收到該消息。在本實(shí)施例中,參照對于通信狀態(tài)表314所示各子OS組合的消息數(shù) 量,消息數(shù)量不為零(非零)的子OS組合(子OS對)被檢測為目標(biāo)子 OS組合(相互通信子OS對)。創(chuàng)建所有檢測得到的子OS對的列表(列 表"L")。在圖5所示的通信狀態(tài)表314中,僅包含作為元素的子OS對 存A與弁C的列表"L"被創(chuàng)建。計(jì)劃器311將所創(chuàng)建的列表"L"與子OS表315進(jìn)行比較。如果列表 "L"包含沒有輸入表315的子OS對,計(jì)劃器311將該子OS對輸入到表 315中(步驟S12)。如果存在不包括在列表"L"中但被輸入到子OS表315中的子OS對, 或者,如果子OS表35包括列表"L"中未顯示的子OS對被輸入的條目, 將該條目(條目信息)從子OS表315中刪除(步驟S13 )。步驟S13中 刪除的條目(條目信息)為這樣的條目(條目信息)該條目中,以前彼 此相互通信且目前不彼此通信的子OS對^皮輸入。圖7示出了在步驟S12和S13被執(zhí)行后獲得的子OS表315的實(shí)例。 在該實(shí)例中,子OS對弁A與弁C作為相互通信子OS對(#i與弁j)凈皮輸入到 子OS表315的第一條目中。然后,參照子OS表315,計(jì)劃器311創(chuàng)建緊密相關(guān)子OS組(步驟 S14)。緊密相關(guān)子OS組是在子OS表315中輸入的子OS對的集合(組)。 該集合(組)不僅包括子OS對,還包括與該子OS對中的一個(gè)相互通信 的另一子OS。因此,子OS表315的每個(gè)條目不僅包括用于輸入子OS對 的列,還包括用于輸入組——在前一列中輸入的子OS屬于該組——的ID (組ID)的列。在圖7所示的子OS表315中,僅子OS弁A、弁C組成緊密相關(guān)子OS 組。然而,如果通信狀態(tài)表314是圖9所示的,子OS #A、 #C、弁D組成 緊密相關(guān)子OS組。緊密相關(guān)子OS組是彼此頻繁發(fā)il/接收消息的子OS 的集合。在步驟S14中,計(jì)劃器311向每個(gè)緊密相關(guān)子OS組提供作為組ID的
其唯一 ID (例如號碼),并將ID輸入到子OS表的組ID列中。計(jì)劃器 311執(zhí)行步驟S14,接著,前進(jìn)到步驟S15。在步驟S15中,計(jì)劃器311將 屬于每個(gè)緊密相關(guān)子OS組的子OS起初以時(shí)間片t的單位被計(jì)劃的時(shí)間 周期分割為t/n的時(shí)間周期,以4更對子OS重新進(jìn)行計(jì)劃,其中,n被)沐為 分割常數(shù)。在本實(shí)施例中,假設(shè)分割常數(shù)"n,,為預(yù)定恒定值,即二。然而, 可如下面介紹的那樣動(dòng)態(tài)改變分割常數(shù)"n"。在步驟S15中,計(jì)劃器311 創(chuàng)建(確定)用于以t/n的時(shí)間單位順次執(zhí)行4皮重新計(jì)劃的子OS的新計(jì) 劃(表示新計(jì)劃的計(jì)劃表)。接著,計(jì)劃器311向分派器312發(fā)送所創(chuàng)建的新計(jì)劃(計(jì)劃表)的信 息,并指示分派器312基于新計(jì)劃進(jìn)行重新計(jì)劃(步驟S16)。根據(jù)新計(jì) 劃,分派器312實(shí)際上進(jìn)行重新計(jì)劃,以便向子OS弁A、弁C分派處理器。當(dāng)子OS #A、弁C如同上面介紹的本實(shí)施例中那樣彼此發(fā)送/接收消息 時(shí),作為時(shí)間片控制處理的結(jié)果,這些子OS變?yōu)閷儆谕痪o密相關(guān)子OS 組。因此,重新計(jì)劃處理器以t/2的時(shí)間單位向子OS弁A、弁C的分派。作 為重新計(jì)劃的結(jié)果,屬于緊密相關(guān)子OS組的子OS #A、 #C如圖4B所示 地執(zhí)^f于。至于不屬于緊密相關(guān)子OS組的子OS弁B、 #D,仍然計(jì)劃處理器 以t的時(shí)間單位每計(jì)劃時(shí)間周期(=4t)到這些子OS的分派。在本實(shí)施例 中,注意,對于屬于緊密相關(guān)子OS組的子OS的重新計(jì)劃不影響對于其 他子OS的計(jì)劃。在圖4B所示的實(shí)例中,從子OS弁A到子OS弁C的消息發(fā)送的平均發(fā) 送時(shí)間以及從子OS存C到子OS弁A的消息發(fā)送的平均發(fā)送時(shí)間分別為大 約0.5t和1,5t。上面介紹的四個(gè)處理al、 cl、 c2、 a2的序列的周期(平均 處理周期)從圖4A所示的4t減小到圖4B所示的2t。在本實(shí)施例中,當(dāng)子OS在彼此相互通信的同時(shí)彼此關(guān)聯(lián)地執(zhí)行處理 時(shí),僅用于執(zhí)行該子OS的計(jì)劃的時(shí)間片被縮短??s短時(shí)間片可防止性能 由于慣常引起的通信延遲而降低,而對其他子OS沒有影響。特別地,VM 系統(tǒng)的子OS之間的通信通?;诖鎯ζ鬟M(jìn)行,其減小了額外成本。存在 這種通信在延遲時(shí)間(等待時(shí)間)上與真實(shí)網(wǎng)絡(luò)系統(tǒng)的通信相比減小得多
的可能。因此,在本實(shí)施例中,VM系統(tǒng)的子OS之間高速通信的性能能 夠更為增強(qiáng),因此,整個(gè)VM系統(tǒng)的性能能夠更為增強(qiáng)。在圖4A與4B的實(shí)例中,不考慮進(jìn)程弁a、弁c以外的任何將由子OS弁A、 存C執(zhí)行的進(jìn)程。實(shí)際上,不保證總是產(chǎn)生圖4B所示的結(jié)果。然而,在圖 4A所示的實(shí)例中,無論子OS #A、 #(:具有什么負(fù)載,沒有多于圖4A所 示的生產(chǎn)量(throughout)。在本實(shí)施例中,根據(jù)圖4B所示的子OS的負(fù) 載,處理可高效率地執(zhí)行。通過本實(shí)施例的重新計(jì)劃改進(jìn)處理效率的另一實(shí)例將關(guān)于子OS #A (其進(jìn)程#3 )、子OS #C (其進(jìn)程弁c )、子OS #D (其進(jìn)程弁d )在彼此相 互通信的同時(shí)執(zhí)行處理的情況進(jìn)行介紹。圖8A與8B各自示出了當(dāng)三個(gè)子 OS#A、 #C、存D在彼此相互通信的同時(shí)執(zhí)行處理時(shí)在重新計(jì)劃之前和之后 執(zhí)行的處理序列。假設(shè)在這種情況下分割常數(shù)"n"為二。在圖8A與8B的實(shí)例中,每個(gè)計(jì)劃時(shí)間周期執(zhí)行下面六個(gè)處理(1) 子OS #A (進(jìn)程弁a)向子OS #C發(fā)送三個(gè)消息(網(wǎng)絡(luò)數(shù)據(jù)包) 中的兩個(gè),并向子OS弁D發(fā)送另一個(gè)(處理a,l);(2) 子OS #C (進(jìn)程#<0從子OS弁A接收兩個(gè)消息并對它們進(jìn)行處 理(處理c'l);(3) 子OS幷C (進(jìn)程^c)由被處理的消息創(chuàng)建新的消息,并將新消息 發(fā)送到子OS #A (處理c'2 );(4) 子OS #D (進(jìn)程#<1)從子OS #A接收消息并對之進(jìn)行處理(處 理d'l);(5) 子OS #D (進(jìn)程弁d)由所處理的消息創(chuàng)建新的消息,并將新消 息發(fā)送到子OS #A (處理d'2);以及(6) 子OS弁A (進(jìn)程弁a)從子OS #C和弁D接收消息并對之進(jìn)行處理 (處理a'2)。處理(發(fā)送處理)a'l和c'2需要以此順序(a'l—c'2)進(jìn)4亍處理,處 理(發(fā)送處理)a'l和d'2需要以此順序(a'l— d,2 )進(jìn)行處理。圖9示出了在圖8A所示的處理序列中的通信狀態(tài)表314的實(shí)例。圖 10示出了基于圖9所示通信狀態(tài)表314的狀態(tài)通過執(zhí)行時(shí)間片控制處理所 獲得的子OS表315的實(shí)例。圖8B示出了當(dāng)處理器根據(jù)基于圖IO所示的 子OS表315所創(chuàng)建的新計(jì)劃凈皮分派到子OS #A、 #C、 #D時(shí)所獲得的處理 序列(即在重新計(jì)劃后獲得的處理序列)。在圖10所示的子OS表315的實(shí)例中,緊密相關(guān)子OS組包含子OS #A、 #C、 #D。重新計(jì)劃處理器以7/2的時(shí)間單位到子OS弁A、 #C、 D的分配。 這種重新計(jì)劃降低了處理器到三個(gè)子OS #A、 #C、弁D的分配的粒度。上 面的六個(gè)處理(a'l, c'l, c'2, d'l, d'2, a'2)的處理順序由圖8A所示的 狀態(tài)被改進(jìn)為圖8B所示的狀態(tài)。對于不屬于緊密相關(guān)子OS組的子OS #B, 仍然計(jì)劃處理器以時(shí)間單位t每個(gè)計(jì)劃時(shí)間周期(=4t)對子OS弁B的分 配。圖8A中的平均處理周期為4t,圖8B中的為2t。由此看出,圖8A中 的平均處理周期從4T減小到2t。圖11示出了圖8B的狀態(tài)中的通信狀態(tài) 表314的實(shí)例。[變型在上面的實(shí)施例中,假設(shè)分割常數(shù)"n"為預(yù)定恒定值(n=2)。分割 常數(shù)"n,,為用于確定處理器到子OS的分配的時(shí)間單位的值(參數(shù))。在 上面的實(shí)施例中,處理器以tx (1/n)的時(shí)間單位或以t/n的時(shí)間單位4皮 分配。然而,消息通信所需要的時(shí)間受到分配時(shí)間t/n的影響。因此,分 割常數(shù)"n"必須適當(dāng)設(shè)置?,F(xiàn)在將介紹對上述實(shí)施例的變型,其中,包括適當(dāng)確定分割常數(shù)"n,, 的值的處理(n值確定處理)在內(nèi)的時(shí)間片控制處理由計(jì)劃器311執(zhí)行。 圖12為一框圖,其示出了根據(jù)這種變型的虛擬機(jī)監(jiān)視器(VMM) 31的構(gòu) 造。為了方便,在圖12中,與圖2中相同的元件用同樣的參考標(biāo)號表示。 圖12所示的VMM 31與圖2中的VMM31的不同之處在于其包含n值定 義表316和平均通信時(shí)間表317。與圖2所示的計(jì)劃器311不同,圖12所 示VMM 31的計(jì)劃器311包含平均通信時(shí)間計(jì)算單元311a與比較單元 311b。單元311a與311b以^^ 316與317將在后文中介紹。
下面介紹包括n值確定處理在內(nèi)的時(shí)間片控制處理的概要。(a) 計(jì)劃器311對于緊密相關(guān)OS組使用不同的分割常數(shù)"n",并 在必要時(shí)改變"t"。如果緊密相關(guān)子OS組Gi的分割常數(shù)"n"祐束示為 ni,計(jì)劃器311對屬于緊密相關(guān)子OS組Gi的子OS重新計(jì)劃,1吏得用于 子OS的進(jìn)程分配的時(shí)間周期變?yōu)門/ni。(b) 假設(shè)分割常數(shù)"n"被預(yù)定。在此變型中,分割常數(shù)"n"被設(shè) 置為do、山、d2、 (13四個(gè)值中的任意一個(gè)。d0、 dp d2、 d3的具體值由n 值定義表316定義。圖13示出了 n值定義表316的實(shí)例。在圖13所示的表中,do、 <^、 d2、 (13分別對應(yīng)于1、 2、 3、 4,它們是分割常數(shù)"n,,的值(n值)。如果 n值定義表316的內(nèi)容坤皮改變,或者,如果do、 ^、 d2、 &的定義被改變, 可定義分割常數(shù)"n"的不同值。假設(shè)在該變型中d。、 dp d2、 (13表示的值以d。、 dp d2、 &的順序增 大(或者,時(shí)間片被進(jìn)一步分割)。另外,假設(shè)d0 (其為分割常數(shù)"n" 的最小值)為一。另外,假設(shè)該變型中定義的最大分割常數(shù)"n,,用dmax 表示。在該變型中,dmax為d3。(c) 在包括應(yīng)用于本變型的n值確定處理在內(nèi)的時(shí)間片控制處理中, 直到時(shí)間片控制處理4皮調(diào)用了 A次,在從浮皮di定義的ni的值被確定時(shí)開始 的時(shí)間段中,事實(shí)上不執(zhí)行任何確定處理。在該變型中,直到時(shí)間片控制 處理^皮調(diào)用了 A次,從其在n值確定處理中被確定時(shí)開始,不改變ni的值。 盡管處理量由于ni的值的頻繁改變而增加,能防止由于處理量增加引起的 額外成本的增加。在該變型中,如同上面的實(shí)施例中那樣,計(jì)劃器311每個(gè)計(jì)劃時(shí)間周 期執(zhí)行時(shí)間片控制處理。具體而言,計(jì)劃器311基于子OS之間的通信狀 態(tài)檢索通信狀態(tài)表314以得到彼此密切相互通信的子OS對(其彼此發(fā)送 消息,使得它們能在一個(gè)計(jì)劃時(shí)間周期內(nèi)接收到消息)。如果子OS對^L 檢測到,計(jì)劃器311通過降低處理器到子OS的分配粒度來防止消息發(fā)送 中的延遲。然而,計(jì)劃器311對于每個(gè)緊密相關(guān)OS組動(dòng)態(tài)改變分割常數(shù)
"n"的值,并控制對于各組的處理器分配粒度。時(shí)間片控制處理可每兩個(gè) 或兩個(gè)以上的計(jì)劃時(shí)間周期執(zhí)行一 次。下面將參照圖14A與14B所示的流程圖介紹用于包括n值確定處理在 內(nèi)的時(shí)間片控制處理的過程。首先,計(jì)劃器311在其重復(fù)時(shí)間片控制處理 之前預(yù)先將變量WAIT一CNT初始化為零。變量WAIT_CNT用于控制時(shí) 間片控制處理被執(zhí)行的時(shí)刻。當(dāng)時(shí)間片控制處理4皮調(diào)用時(shí),計(jì)劃器311參 照變量WAIT_CNT以確定變量WAIT_CNT是否為零(步驟S21)。如果 變量WAIT—CNT不為零,計(jì)劃器311將變量WAIT—CNT減小1 (步驟 S22),并完成時(shí)間片控制處理。當(dāng)變量WAIT—CNT為零時(shí)(步驟S21),計(jì)劃器311如下所述地控 制處理器到各緊密相關(guān)OS的分配粒度。首先,計(jì)劃器311執(zhí)行與上面的 實(shí)施例的步驟Sll到S14對應(yīng)的步驟S23到S26。換句話說,計(jì)劃器311 檢測相互通信子OS對并創(chuàng)建相互通信子OS對的列表"L,,(步驟S32 )。 在表315中,計(jì)劃器311也輸入新檢測到且不包含在子OS表315中的相 互通信子OS對(步驟S24)。于是,計(jì)劃器311從子OS表315中刪除不 包含在列表"L"中的子OS對在其中被輸入的條目(步驟S25),并創(chuàng)建 緊密相關(guān)子OS組(步驟S26)。計(jì)劃器311執(zhí)行步驟S23到S26,接著,進(jìn)行到步驟S27。在步驟S27 中,計(jì)劃器311將對于新檢測到的緊密相關(guān)子OS組的條目(條目信息) 添加到平均通信時(shí)間表317。在步驟S27中,計(jì)劃器311也從平均通信時(shí) 間表317中刪除對于已被檢測到且被輸入到表317中的緊密相關(guān)子OS組 的以及對于此次未檢測到的緊密相關(guān)子OS組的條目(條目信息)。圖15示出了平均通信時(shí)間表317的實(shí)例。平均通信時(shí)間表317包括對 于它們各自的緊密相關(guān)子OS組的條目。表317的條目用于輸入對于由緊 密相關(guān)子OS組的dQ到d3定義的分割常數(shù)"n"的值的平均通信時(shí)間的測 量值。平均通信時(shí)間將在下文中介紹。在步驟S27中,當(dāng)對于新檢測到的緊密相關(guān)子OS組的條目(條目信 息)被添加到平均通信時(shí)間表317中時(shí),條目信息已被初始化。這里,用
所添加的條目表示的、由do到d3定義的分割常數(shù)"n"的值的平均通信時(shí) 間的信息被設(shè)置為具有無效值的未定義狀態(tài)(該狀態(tài)用符號"-"表示)。當(dāng)計(jì)劃器311執(zhí)行步驟S27時(shí),其如下執(zhí)行n值確定處理(步驟S28 到S36 )。首先,計(jì)劃器311判斷對于在子OS表315中輸入的所有緊密 相關(guān)子OS組是否執(zhí)行了 n值確定處理(步驟S28 )。如果存在未執(zhí)行n 值確定處理的緊密相關(guān)子OS組(未處理的緊密相關(guān)子OS組),計(jì)劃器 311在子OS表315中從未處理的緊密相關(guān)子OS組中選擇一個(gè)作為緊密相 關(guān)子OS組Gi (步驟S29)。計(jì)劃器311更新對應(yīng)于所選擇的緊密相關(guān)子OS組Gi的平均通信時(shí)間 表317的條目信息,或者,其更新緊密相關(guān)子OS組Gi的平均通信時(shí)間(步 驟S30)。平均通信時(shí)間是由計(jì)劃器311中的平均通信時(shí)間計(jì)算單元311a 計(jì)算得到的。平均通信時(shí)間與發(fā)送目標(biāo)的子OS在一個(gè)計(jì)劃時(shí)間周期內(nèi)接 收的消息有關(guān),該消息被包括在從屬于緊密相關(guān)子OS組Gi的子OS發(fā)送 的消息中,同時(shí),使用由dk(k一、 1、 2、 3)定義的分割常數(shù)"n"的值。 換句話說,平均通信時(shí)間是從由發(fā)送目標(biāo)的子OS在一個(gè)計(jì)劃時(shí)間周期內(nèi) 接收的消息被發(fā)送以及直到它們被接收的平均時(shí)間周期(通信時(shí)間周期)。 通過平均通信時(shí)間計(jì)算單元311a,從平均通信時(shí)間的計(jì)算主體排除超出一 個(gè)計(jì)劃時(shí)間周期接收的消息。為了計(jì)算緊密相關(guān)子OS組Gi的平均通信時(shí)間,平均通信時(shí)間計(jì)算單 元311a將在上一個(gè)計(jì)劃周期內(nèi)在屬于組Gi的子OS之間傳送的消息的總 通信時(shí)間周期(J)消息通信時(shí)間)除以消息總數(shù)(N)。具體而言,通過 下面的>^式計(jì)算組Gi的平均通信時(shí)間 (D消息通信時(shí)間)/N (1)公式(1)中的消息是在一個(gè)計(jì)劃時(shí)間周期內(nèi)由發(fā)送目標(biāo)的子OS接收 的消息,其被包括在由屬于緊密相關(guān)子OS組Gi的所有子OS發(fā)送的消息 中。如上所述,在該變型中,計(jì)算平均通信時(shí)間的目標(biāo)時(shí)間周期為上一個(gè) 計(jì)劃時(shí)間周期。然而,目標(biāo)時(shí)間周期可,皮定義為多個(gè)計(jì)劃時(shí)間周期。平均200710300437.7說明書第18/21頁得。下面將參照圖8A所示的時(shí)序圖介紹由平均通信時(shí)間計(jì)算單元311a計(jì) 算平均通信時(shí)間的方法的實(shí)例。參照圖8A,子OS弁A、 #C、 ^D組成一個(gè) 緊密相關(guān)子OS組。這里假設(shè)緊密相關(guān)子OS組的組ID為1,組為Gi,即 "Gi-Gl (i=l)"。由于時(shí)間片為t, "n=l,,或"dk=d0 (k=0)"。通 信狀態(tài)表314的內(nèi)容如圖9所示。在圖8A中,消息總數(shù)(N)為五。如下所述,緊密相關(guān)子OS組Gi的平均通信時(shí)間由平均通信時(shí)間計(jì)算 單元311a進(jìn)行計(jì)算(E消息通4言時(shí)間)/N= ( 2 x 2t+1 x 3t+1 x 2t+1 x T ) /5 =2t在步驟S30中,計(jì)劃器311將由平均通信時(shí)間計(jì)算單元311a計(jì)算得到 的平均通信時(shí)間定義為T。在本實(shí)例中,T=2t。在步驟S30中,計(jì)劃器311 在當(dāng)前應(yīng)用列"dk=d() ( k=0 )"中設(shè)置計(jì)算得到的平均通信時(shí)間T (=2t), 其被包括在與緊密相關(guān)子OS組Gi ( Gl)對應(yīng)的平均通信時(shí)間表317的條 目中包括的列do到A中。換句話說,計(jì)劃器311將列"dk=d。 (k=0)" 的舊的設(shè)置信息更新到平均通信時(shí)間T (=2t)。更新后的平均通信時(shí)間T 與緊密相關(guān)子OS組Gi (Gl)以及"dk=dG (k=0)"有關(guān)。更新的平均通 信時(shí)間T被束示為Ti,k,其中,Ti,k; (i=l, k=0)=2T。當(dāng)緊密相關(guān)子OS組Gi的當(dāng)前分割常數(shù)"n"的值(即"n廣的值) 為dk時(shí),計(jì)劃器311中的比較單元311b將該值與最小值(1)進(jìn)行比較, 并判斷dk是否為最小值(1),即do ( k=0 )(步驟S31)。如果緊密相關(guān) 子OS組Gi的當(dāng)前分割常數(shù)"n" (=iii)的值dk不是最小值(1),比較 單元311b將此次計(jì)算得到的平均通信時(shí)間Ti,k (在dk時(shí))與值"0"進(jìn)行 比較,并判斷平均通信時(shí)間Ti,k是否為零(步驟S32)。如果平均通信時(shí) 間Ti,k (或當(dāng)前平均通信時(shí)間Ti,k)不為零,比較單元311b將平均通信時(shí) 間Ti,k與時(shí)的平均通信時(shí)間Ti,w進(jìn)行比較,并判斷Ti,k是否小于Ti,w (步驟S33)。平均通信時(shí)間Ti,w在剛好在當(dāng)前應(yīng)用的列dk之前的
的列中^皮i殳置,其被包括在與緊密相關(guān)子OS組Gi (組ID-i)對應(yīng)的平均 通信時(shí)間表317的條目中所包括的列do到A中。換句話說,Ti,^為以比 前一次長一個(gè)等級的時(shí)間片^:置的最后的平均通信時(shí)間。如果Ti,k小于Ti,k-"計(jì)劃器311將新的分割常數(shù)"n" (-ni)的值設(shè) 置到&+1,其比當(dāng)前值dk長一個(gè)等級(步驟S34)。換句話說,計(jì)劃器311 使得CPU分配時(shí)間單元比當(dāng)前時(shí)間單位短一個(gè)等級。如果dk+1未被定義 或者當(dāng)前值dk為n值定義表316定義的"n"的最大值dmax,計(jì)劃器311 不能設(shè)置長于最大值dmax的值。在這種情況下,計(jì)劃器311將新的分割 常數(shù)"n,, (=ni)的值定義為當(dāng)前值dk,或dmax。計(jì)劃器311執(zhí)行步驟 S34,并返回到步驟S28。如果緊密相關(guān)子OS組Gi的當(dāng)前分割常數(shù)"n" (=ni)的值dk為最 小值(l),或者如果當(dāng)前值dk為dQ (k=0)(步驟S31),計(jì)劃器311將 分割常數(shù)"n" (=ni)的值設(shè)置到值dk+1 ,其長于當(dāng)前值dk —個(gè)等級,除 非平均通信時(shí)間Ti,k (k=0)為零(步驟S34)。由于在此變型中k等于零 (k=0),分割常數(shù)"n" (=ni)的值do從d。產(chǎn)l)被改變?yōu)閐(=2)。于是,假設(shè)緊密相關(guān)子OS組Gi的當(dāng)前分割常數(shù)"n" (=ni)的值dk 不為最小值(1)。另外,假設(shè)此次獲得的平均通信時(shí)間Ti,k (在dk時(shí))不 為零,但平均通信時(shí)間Ti,k等于或長于dw時(shí)的平均通信時(shí)間Ti,w (步驟 S31到S33)。在這種情況下,計(jì)劃器311將新的分割常數(shù)"n"(=叫)的 值定義為值dk^,其比當(dāng)前值dk小一個(gè)等級(步驟S36)。換句話說,計(jì) 劃器311 4吏CPU分配時(shí)間單位比當(dāng)前時(shí)間單位長一個(gè)等級。計(jì)劃器311 執(zhí)行步驟S36并接著返回到步驟S28。在圖14A與14B所示的流程圖中,平均通信時(shí)間Ti,k為零的情況也被 考慮(步驟S32和S35 )。然而,在步驟S23和S24中,Ti,k為零的緊密相 關(guān)子OS組未蜂皮輸入到子OS表315中。在本變型中,不存在平均通信時(shí) 間Ti,k為零的緊密相關(guān)子OS組。圖14A與14B所示的流程圖包括當(dāng)Ti,k 為零時(shí)執(zhí)行的處理以便描述共用過程。如果緊密相關(guān)子OS組Gi的當(dāng)前分 割常數(shù)"n" ( =ni)的值dk不為最小值(1)但此次(dk)獲得的平均通
信時(shí)間Ti,k為零(步驟S31與S32 ),計(jì)劃器311將新分割常數(shù)"n" (=ni) 的值定義為值dw,其比當(dāng)前值dk小一個(gè)等級(步驟S36)。如果緊密相 關(guān)子OS組Gi的當(dāng)前分割常數(shù)"n"(=叫)的值dk為最小值(1)且此次 獲得的平均通信時(shí)間Ti,k為零(步驟S31與S35),計(jì)劃器311不執(zhí)4亍分 割常數(shù)"n"(=叫)的處理,而是返回到步驟S28。對于所有的緊密相關(guān)子OS組,計(jì)劃器311執(zhí)行上面的處理(n值確 定處理),其開始于步驟S28。如果計(jì)劃器311對于所有緊密相關(guān)子OS 組完成了 n值確定處理(步驟S28),其將初始值A(chǔ)設(shè)置到變量WAIT一CNT (步驟S37)。計(jì)劃器311將在n值確定處理中為緊密相關(guān)子OS組Gi的每一個(gè)確定 (設(shè)置)的ni的值應(yīng)用到組Gi,以創(chuàng)建用于以T/ni的時(shí)間單位順次執(zhí)行屬 于組Gi的子OS的新計(jì)劃(步驟S38)。計(jì)劃器311將新計(jì)劃的信息發(fā)送 到分派器312,并指示分派器312基于新計(jì)劃進(jìn)行重新計(jì)劃(步驟S39)。 此后,在圖14A與14B的流程圖所示的處理^f皮調(diào)用A次時(shí),變量 WAIT—CNT被簡單地逐個(gè)減小(步驟S21和S22)。因此,屬于緊密相關(guān) 子OS組Gi的子OS通過ni的同樣的值進(jìn)^f亍計(jì)劃。在圖8A的實(shí)例中,作為n值確定處理(步驟S28到S36)的結(jié)果, 包含子OS #A、 #C、 #D的緊密相關(guān)子OS組Gi (Gi-Gl)的(n尸iu ) 的值從do變?yōu)?U。換句話說,ih的值從l變?yōu)?。結(jié)果,緊密相關(guān)子OS 組G1的新的時(shí)間分配單位從t變?yōu)閠/2。因此,子OS弁A、 #C、弁D以新 的時(shí)間分配單位重新計(jì)劃,如圖8B所示。在圖8B的實(shí)例中,消息總數(shù)N 為10。如上所述,圖9示出了在圖8B所示狀態(tài)中的通信狀態(tài)表314的實(shí)例。 如果平均通信時(shí)間計(jì)算單元311a基于通信狀態(tài)表314為緊密相關(guān)子OS組 Gl計(jì)算平均通信時(shí)間,平均通信時(shí)間如下計(jì)算 (2)消息通信時(shí)間)/N=(4 x t/2+1 x 2t+1 x t+1 x t+1 x 2t+2 x t/2 ) /10=0.9t 由上面的計(jì)算可見,平均通4言時(shí)間從2t減小到0.9t。當(dāng)才艮據(jù)圖14A 與14B所示流程圖的處理被接下來執(zhí)行時(shí),"0.9t"被記錄在圖15所示平 均通信時(shí)間表317的緊密相關(guān)子OS組Gl所對應(yīng)的條目的列dl中。于是, ni的值從di (=2 )變?yōu)閐2 (=3 ),分配時(shí)間單位被進(jìn)一步細(xì)分。計(jì)劃器311 減小ni的值,在該時(shí)間段中,可獲得效果(即dk中的新平均通信時(shí)間Ti,k 短于d^處的平均通信時(shí)間Ti,w的時(shí)間段)。如果沒有獲得效果,計(jì)劃器 311將ni的值從dk返回到其上一值dk4。結(jié)果,ni的最優(yōu)值被設(shè)置到緊密 相關(guān)子OS組的每一個(gè)。上面沒有說明,在步驟S27中從平均通信時(shí)間表317中刪除的緊密相 關(guān)子OS組的每個(gè)子OS以時(shí)間單位t重新計(jì)劃,同時(shí),分割常數(shù)"n,,的 值坤皮返回到d0 (=1)。在上面的實(shí)施例及其變型中,假設(shè)VMM 31被實(shí)現(xiàn)為在OS 20上運(yùn)行 的一個(gè)應(yīng)用(VM應(yīng)用30)。然而,本發(fā)明可應(yīng)用于VMM (虛擬機(jī)監(jiān)4見 器)在計(jì)算機(jī)系統(tǒng)的真實(shí)HW上作為VMM單元實(shí)現(xiàn)的情況。本領(lǐng)域技術(shù)人員將會容易地想到其他的優(yōu)點(diǎn)和變型。因此,本發(fā)明在 其更寬廣的實(shí)施形態(tài)上不限于這里示出和介紹的具體細(xì)節(jié)和典型實(shí)施例。 因此,在不脫離所附權(quán)利要求書及其等價(jià)內(nèi)容所限定的一^明構(gòu)思的精 神或范圍的情況下,可進(jìn)行多種修改。
權(quán)利要求
1.一種在虛擬機(jī)系統(tǒng)中切換多個(gè)子OS的執(zhí)行計(jì)劃的方法,在該系統(tǒng)中,所述子OS在由虛擬機(jī)監(jiān)視器提供的虛擬機(jī)執(zhí)行環(huán)境下分時(shí)執(zhí)行,所述子OS中的任意兩個(gè)在經(jīng)由由所述虛擬機(jī)監(jiān)視器提供的通信接口彼此相互通信的同時(shí)執(zhí)行處理,所述方法的特征在于包含通過所述虛擬機(jī)監(jiān)視器指定經(jīng)由所述通信接口彼此相互通信的子OS組;以及通過所述虛擬機(jī)監(jiān)視器將包含在所指定的子OS組中的各個(gè)子OS的執(zhí)行計(jì)劃的時(shí)間片設(shè)置得較短。
2. 根據(jù)權(quán)利要求l的方法,其特征在于在所述多個(gè)子OS中,其相 互通信在一個(gè)計(jì)劃時(shí)間周期內(nèi)完成的子OS對的集合凈皮指定為所指定的子 OS組。
3. 根據(jù)權(quán)利要求l的方法,其特征在于當(dāng)存在與各個(gè)子OS對中的 一個(gè)子OS進(jìn)行相互通信并在一個(gè)計(jì)劃時(shí)間周期內(nèi)完成相互通信的另一子 OS時(shí),判斷為所迷另一子OS屬于所指定的子OS組。
4. 才M^權(quán)利要求1的方法,其特征在于還包含 通過所述虛擬機(jī)監(jiān)視器控制所述指定與所述i殳置的重復(fù),所述重復(fù)以預(yù)定的計(jì)劃時(shí)間周期執(zhí)^f?。幻慨?dāng)所述子OS組被指定時(shí),通過所述虛擬機(jī)監(jiān)視器計(jì)算第一平均通 信時(shí)間,所述笫一平均通信時(shí)間為所指定的子OS組的子OS之間的相互 通信需要的當(dāng)前平均通信時(shí)間;以及通過所述虛擬機(jī)監(jiān)^L器將所述第 一平均通信時(shí)間與第二平均通信時(shí)間 進(jìn)行比較,所述笫二平均通信時(shí)間在時(shí)間片被設(shè)置為比本次長一個(gè)等級時(shí) 計(jì)算得出,其中,當(dāng)所述第一平均通信時(shí)間短于所述第二平均通信時(shí)間時(shí)將所述 時(shí)間片設(shè)置為比本次短一個(gè)等級,當(dāng)所述第一平均通信時(shí)間不短于所述第 二平均通信時(shí)間時(shí),將所述時(shí)間片設(shè)置為比本次長一個(gè)等級。
5. —種虛擬機(jī)監(jiān)視器,其建立虛擬機(jī)執(zhí)行環(huán)境,在所述虛擬機(jī)執(zhí)行環(huán) 境下,多個(gè)子OS分時(shí)執(zhí)行,所述虛擬機(jī)監(jiān)視器的特征在于包含通信接口,其被配置為通過所述子OS的請求在所述多個(gè)子OS的任 意兩個(gè)之間進(jìn)行相互通信;通信狀態(tài)表,其保持通過所述通信接口在所述子OS之間執(zhí)行的相互 通4言的狀態(tài);計(jì)劃器,其被配置為根據(jù)所述通信狀態(tài)表指定使用所述通信接口彼此 相互通信的子OS組,并創(chuàng)建新的計(jì)劃,在該計(jì)劃中,包含在所指定的子 OS組中的各子OS的執(zhí)行計(jì)劃的時(shí)間片被設(shè)置得短;以及分派器,其被配置為使得包含在所指定的子OS組中的子OS按照所 述新計(jì)劃被執(zhí)行。
6. 根據(jù)權(quán)利要求5的虛擬機(jī)監(jiān)視器,其特征在于所述計(jì)劃器將其相 互通信在一個(gè)計(jì)劃時(shí)間周期內(nèi)完成的子OS對的集合指定為所述子OS組, 所述子OS對的集合包含在所述多個(gè)子OS中。
7. 根據(jù)權(quán)利要求6的虛擬機(jī)監(jiān)視器,其特征在于當(dāng)存在與各個(gè)子 OS對中的一個(gè)子OS進(jìn)行相互通信并在所述一個(gè)計(jì)劃周期內(nèi)完成相互通信 的另一子OS時(shí),所述計(jì)劃器判斷為所述另一子OS屬于所指定的子OS 組。
8. 根據(jù)權(quán)利要求6的虛擬機(jī)監(jiān)視器,其特征在于 對于經(jīng)由所述通信接口彼此相互通信的各子OS對,所述通信狀態(tài)表保持通信狀態(tài)信息,該信息包括在比所述一個(gè)計(jì)劃時(shí)間周期短的時(shí)間內(nèi)接 收的消息的數(shù)量;且所述計(jì)劃器在預(yù)定的計(jì)劃時(shí)間周期參照所述通信狀態(tài)表,并將與表示 所述消息的數(shù)量不為零的通信狀態(tài)信息對應(yīng)的所有子OS對指定為包含在 所述子OS組中的子OS對。
9. 根據(jù)權(quán)利要求5的虛擬機(jī)監(jiān)視器,其特征在于 保持在所述通信狀態(tài)表中的通信狀態(tài)信息包括平均發(fā)送時(shí)間值以及消息的數(shù)量,所述平均發(fā)送時(shí)間為從消息發(fā)送到其接收需要的平均時(shí)間; 所述計(jì)劃器包含平均通信時(shí)間計(jì)算單元與比較單元,所述平均通信時(shí)間計(jì)算單元被配置為每當(dāng)所述子OS組被指定時(shí)根據(jù)包含在所指定的子OS 組中的所有子OS對、基于保持在所述通信狀態(tài)表中的通信狀態(tài)信息中的 平均發(fā)送時(shí)間來計(jì)算第一平均通信時(shí)間,該時(shí)間為所指定的子OS組的所 有子OS之間相互通信需要的當(dāng)前平均通信時(shí)間,所述比較單元4皮配置為將所述第一平均通信時(shí)間與當(dāng)時(shí)間片凈皮設(shè)置得比本次長一個(gè)等級時(shí)計(jì)算得到的第二平均通信時(shí)間進(jìn)行比較;且當(dāng)所述第 一平均通信時(shí)間短于所述第二平均通信時(shí)間時(shí),所述計(jì)劃器 將所述時(shí)間片設(shè)置得比本次短一個(gè)等級,當(dāng)所述第一平均通信時(shí)間不短于 所述第二平均通信時(shí)間時(shí),將所述時(shí)間片設(shè)置得比本次長一個(gè)等級。
全文摘要
本發(fā)明涉及選擇子OS的一個(gè)執(zhí)行計(jì)劃的方法以及使用該方法的虛擬機(jī)監(jiān)視器。在虛擬機(jī)系統(tǒng)中,多個(gè)子OS在由虛擬機(jī)監(jiān)視器(VMM)(31)提供的虛擬機(jī)執(zhí)行環(huán)境下分時(shí)執(zhí)行。VMM(31)指定經(jīng)由由VMM(31)提供的通信接口彼此相互通信的子OS組(S11-S14)。接著,VMM(31)將包含在所述多個(gè)子OS且包含在所指定的子OS組中的各子OS的執(zhí)行計(jì)劃的時(shí)間片設(shè)置得較短(S15)。
文檔編號G06F9/48GK101211277SQ20071030043
公開日2008年7月2日 申請日期2007年12月27日 優(yōu)先權(quán)日2006年12月27日
發(fā)明者水野聰 申請人:株式會社東芝;東芝解決方案株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
石家庄市| 泰安市| 新营市| 遂川县| 尖扎县| 蕉岭县| 嘉善县| 福州市| 汝州市| 禹城市| 彭泽县| 和林格尔县| 阳谷县| 和林格尔县| 子洲县| 绥德县| 海丰县| 博客| 嘉鱼县| 淅川县| 自贡市| 剑川县| 东乡族自治县| 天台县| 邯郸县| 五指山市| 西藏| 萨迦县| 澄江县| 九龙坡区| 诏安县| 二手房| 双鸭山市| 武功县| 本溪| 淳安县| 庆安县| 财经| 罗源县| 射洪县| 静安区|