專(zhuān)利名稱(chēng):為被先占的虛擬處理器分配應(yīng)得處理器周期的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施方式一般涉及計(jì)算機(jī)。特別地,本發(fā)明的實(shí)施方式一般涉及在計(jì)算機(jī)系統(tǒng)的共享處理器分區(qū)中分配虛擬處理器。
背景技術(shù):
通常引用1948年EDVAC計(jì)算機(jī)系統(tǒng)的發(fā)展作為計(jì)算機(jī)時(shí)代的開(kāi)端。自那時(shí)起,計(jì)算機(jī)系統(tǒng)已經(jīng)發(fā)展成為極其精密的設(shè)備,而且計(jì)算機(jī)系統(tǒng)可出現(xiàn)在很多不同的設(shè)置中。計(jì)算機(jī)系統(tǒng)通常包括諸如半導(dǎo)體和電路板的硬件以及也稱(chēng)為計(jì)算機(jī)程序的軟件的組合。隨著半導(dǎo)體工藝和計(jì)算機(jī)架構(gòu)的進(jìn)步推動(dòng)計(jì)算機(jī)硬件的性能變得更高,更加精密而且復(fù)雜的計(jì)算機(jī)軟件已經(jīng)發(fā)展到利用硬件的較高性能,得到比幾年之前更為強(qiáng)大的現(xiàn)今的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)技術(shù)中一個(gè)顯著的進(jìn)步就是并行處理的發(fā)展,也就是多個(gè)任務(wù)的并行執(zhí)行。
已經(jīng)開(kāi)發(fā)出多種計(jì)算機(jī)軟件和硬件技術(shù),以有利于增加的并行處理。從硬件的角度來(lái)看,計(jì)算機(jī)越來(lái)越依賴(lài)于多個(gè)微處理器以提供增加的工作負(fù)載能力。此外,已經(jīng)開(kāi)發(fā)出一些支持并行執(zhí)行多個(gè)線程能力的微處理器,來(lái)有效地提供許多相同的性能增益,這些性能增益可以通過(guò)使用多個(gè)微處理器而獲得。從軟件的角度來(lái)看,已經(jīng)開(kāi)發(fā)出多線程操作系統(tǒng)和內(nèi)核,其允許計(jì)算機(jī)程序并發(fā)地在多個(gè)線程中執(zhí)行,使得基本上可以同時(shí)執(zhí)行多個(gè)任務(wù)。
另外,一些計(jì)算機(jī)實(shí)現(xiàn)了邏輯分區(qū)的概念,其中允許單個(gè)物理計(jì)算機(jī)基本上像多個(gè)獨(dú)立的虛擬計(jì)算機(jī)那樣進(jìn)行操作,獨(dú)立的虛擬計(jì)算機(jī)稱(chēng)為邏輯分區(qū),物理計(jì)算機(jī)中的多種資源(例如,處理器、存儲(chǔ)器以及輸入/輸出設(shè)備)在多個(gè)邏輯分區(qū)之間進(jìn)行分配。每個(gè)邏輯分區(qū)執(zhí)行單獨(dú)的操作系統(tǒng),而且從用戶(hù)以及在邏輯分區(qū)之上執(zhí)行的軟件應(yīng)用的角度來(lái)看,每個(gè)邏輯分區(qū)作為完全獨(dú)立的計(jì)算機(jī)進(jìn)行操作。多個(gè)操作系統(tǒng)中的每一個(gè)運(yùn)行于單獨(dú)的分區(qū),分區(qū)在分區(qū)管理器或管理程序(hypervisor)的控制下進(jìn)行操作。
不僅將很多個(gè)體資源,例如處理器分配給分區(qū),而且也分配部分的資源。從而,發(fā)展出共享處理器分區(qū)的概念。共享處理器分區(qū)是在處理器共享池中與其它共享處理器分區(qū)共享物理處理器的分區(qū)。共享處理器分區(qū)的配置參數(shù)中的一個(gè)就是分區(qū)的應(yīng)得能力。分區(qū)的應(yīng)得能力,限定在一個(gè)時(shí)間段中物理處理器的分區(qū)份額。管理程序需要保證共享處理器分區(qū)的應(yīng)得能力不超過(guò)共享處理器池的能力,共享處理器池是一組用于運(yùn)行共享處理器分區(qū)的處理器。管理程序還必須保證每個(gè)分區(qū)在一個(gè)時(shí)間段上接收到與其應(yīng)得能力相對(duì)應(yīng)的物理處理器周期,使得每個(gè)分區(qū)接收其公平的一份資源,并且沒(méi)有分區(qū)會(huì)因缺少資源而影響性能。這個(gè)時(shí)間段稱(chēng)為管理程序分派窗口。每個(gè)分區(qū)被所謂地分配一個(gè)“虛擬處理器”,其代表共享處理器池中物理處理器(可以隨時(shí)間變化)之一的若干個(gè)CPU(中央處理單元)周期。
從性能的角度來(lái)看,只要虛擬處理器有任務(wù)要處理,就希望分區(qū)的虛擬處理器在盡可能少的分派中接收到其分配的周期。最可能的情況是,虛擬處理器在單個(gè)分派的分派窗口中接收到其所有周期。較少的分派具有切換開(kāi)銷(xiāo)較少的性能優(yōu)勢(shì),這種開(kāi)銷(xiāo)包括保存以及恢復(fù)虛擬處理器的狀態(tài)。較少的分派還允許有效地利用處理器高速緩沖存儲(chǔ)器。
在某些配置下,較少分派的性能目標(biāo)與保證虛擬處理器應(yīng)得周期的功能目標(biāo)相沖突,所以,如果管理程序試圖在分區(qū)的一個(gè)分派的分派窗口中給出全部應(yīng)得能力,則有些虛擬處理器會(huì)接收不到其全部應(yīng)得能力。
為了說(shuō)明這點(diǎn),考慮在圖2A中所示具有四個(gè)物理處理器(P0、P1、P2和P3)以及五個(gè)虛擬處理器(V0、V1、V2、V3和V4)的配置,其中向五個(gè)分區(qū)中的每一個(gè)分配一個(gè)虛擬處理器。在這個(gè)示例中,每個(gè)分派窗口(分派窗口0、分派窗口1、分派窗口2、分派窗口3、分派窗口4、分派窗口5、分派窗口6以及分派窗口7)代表10msec(毫秒),使得表200中的每個(gè)時(shí)隙代表將給定物理處理器的CPU周期分配給具體虛擬處理器2msec。此外,在這個(gè)示例中,五個(gè)虛擬處理器(V0、V1、V2、V3和V4)中的每個(gè)具有0.8個(gè)物理處理器的應(yīng)得能力,這意味著8個(gè)分派窗口上的應(yīng)得能力是8*(10msec)*.8=64msec。表200中的空時(shí)隙代表相關(guān)聯(lián)的物理處理器空閑的時(shí)間,這是因?yàn)槊總€(gè)虛擬處理器每次只能夠利用一個(gè)物理處理器。將虛擬處理器(V0、V1、V2、V3和V4)分配到表200中時(shí)隙的模式代表管理程序試圖在虛擬處理器一個(gè)分派的分派窗口中給出全部應(yīng)得能力。
圖2A中示例所示的結(jié)果是虛擬處理器V0、V1和V2都至少接收到其64msec的應(yīng)得能力(V0和V1接收64msec的物理CPU周期,而虛擬處理器V2接收到68msec的物理CPU周期)。遺憾的是,虛擬處理器V3只接收到38msec的物理CPU周期,虛擬處理器V4只接收到40msec的物理CPU周期。因此,由于管理程序試圖在虛擬處理器一個(gè)分派的每個(gè)分派窗口中給出全部應(yīng)得能力,虛擬處理器V3和V4沒(méi)有接收到其64msec的物理CPU周期的應(yīng)得能力。
當(dāng)前試圖解決這個(gè)問(wèn)題的一種技術(shù)是使用很短的分派窗口(例如,1msec)。這樣短的分派窗口允許管理程序在可用的物理處理器上對(duì)分區(qū)進(jìn)行循環(huán)。雖然這種技術(shù)保證分區(qū)將會(huì)在分派窗口上接收到它們的應(yīng)得能力,但也產(chǎn)生較大的切換開(kāi)銷(xiāo),而且導(dǎo)致管理程序難以維持處理器的緊密性,導(dǎo)致性能的下降。
因此,沒(méi)有更好的方法在較少分派的性能目標(biāo)與保證虛擬處理器應(yīng)得CPU周期個(gè)數(shù)的功能目標(biāo)之間進(jìn)行平衡,邏輯分區(qū)系統(tǒng)將繼續(xù)努力克服性能問(wèn)題。
發(fā)明內(nèi)容
提供一種方法、裝置、系統(tǒng)和信號(hào)承載介質(zhì),在一個(gè)實(shí)施方式中,如果虛擬處理器被先占并不能在分派窗口期間接收到物理處理器周期的應(yīng)得能力,則計(jì)算分區(qū)的先占信用度。先占信用度是分區(qū)不能接收到的那部分應(yīng)得能力。只要分區(qū)具有剩余的先占信用度,就在隨后的分派窗口中將先占信用度的一部分分配給虛擬處理器,并減少先占信用度。這樣,在一個(gè)實(shí)施方式中,可保證共享處理器分區(qū)接收到其處理器周期的應(yīng)得分配。
在下文中,結(jié)合附圖描述本發(fā)明的多種實(shí)施方式圖1描述用于實(shí)現(xiàn)本發(fā)明一個(gè)實(shí)施方式的示例系統(tǒng)的框圖。
圖2A描述依照一種試圖在虛擬處理器一個(gè)分派的分派窗口中給出全部應(yīng)得能力的技術(shù),將虛擬處理器分派給物理處理器的框圖。
圖2B描述依照本發(fā)明一個(gè)實(shí)施方式將虛擬處理器分派給物理處理器的框圖。
圖3描述依照本發(fā)明一個(gè)實(shí)施方式的邏輯分區(qū)控制塊的框圖。
圖4描述依照本發(fā)明一個(gè)實(shí)施方式將物理處理器分配給虛擬處理器的示例處理的流程圖。
圖5描述依照本發(fā)明一個(gè)實(shí)施方式,在整個(gè)時(shí)間段上將物理處理器分配給虛擬處理器的示例處理的流程圖。
圖6描述依照本發(fā)明一個(gè)實(shí)施方式將分區(qū)的先占信用度清零的示例處理的流程圖。
但是,需要注意,附圖只說(shuō)明本發(fā)明的示例實(shí)施方式,由于本發(fā)明可能允許其它同樣有效的實(shí)施方式,因此不能認(rèn)為是對(duì)其范圍的限制。
具體實(shí)施例方式
參考附圖,其中在所有的幾個(gè)附圖中相同的標(biāo)號(hào)表示相同的部分,圖1描述依照本發(fā)明一個(gè)實(shí)施方式的與網(wǎng)絡(luò)130相連的計(jì)算機(jī)系統(tǒng)100的高級(jí)框圖表示。計(jì)算機(jī)系統(tǒng)100的主要部件包括一個(gè)或多個(gè)處理器101、主存儲(chǔ)器102、終端接口111、存儲(chǔ)器接口112、I/O(輸入/輸出)設(shè)備接口113和通信/網(wǎng)絡(luò)接口114,所有這些部件相連以通過(guò)存儲(chǔ)器總線103、I/O總線104以及I/O總線接口單元105進(jìn)行部件間通信。
計(jì)算機(jī)系統(tǒng)100包含一個(gè)或多個(gè)通用可編程中央處理單元(CPU)101A、101B、101C和101D,在這里,一般稱(chēng)為處理器101。在一個(gè)實(shí)施方式中,計(jì)算機(jī)系統(tǒng)100包含代表相對(duì)大型系統(tǒng)的多個(gè)處理器;但是,在另一個(gè)實(shí)施方式中,計(jì)算機(jī)系統(tǒng)100可選地可以是單個(gè)CPU系統(tǒng)。每個(gè)處理器101執(zhí)行存儲(chǔ)在主存儲(chǔ)器102中的指令,而且可以包括一層或多層板上高速緩沖存儲(chǔ)器。
主存儲(chǔ)器102是用于存儲(chǔ)數(shù)據(jù)和程序的隨機(jī)存取半導(dǎo)體存儲(chǔ)器。主存儲(chǔ)器102在概念上是單個(gè)單片式實(shí)體,但是在其它實(shí)施方式中,主存儲(chǔ)器102是更復(fù)雜的布置,例如高速緩沖存儲(chǔ)器的層次和其它存儲(chǔ)設(shè)備。例如,存儲(chǔ)器可存在于多層的高速緩沖存儲(chǔ)器,而且這些高速緩沖存儲(chǔ)器可進(jìn)一步根據(jù)功能進(jìn)行劃分,使得一個(gè)高速緩沖存儲(chǔ)器保存指令而另一個(gè)高速緩沖存儲(chǔ)器保存處理器使用的非指令數(shù)據(jù)。存儲(chǔ)器還可以是分布式的,并且與不同的CPU或CPU組相關(guān)聯(lián),如在多種所謂非均勻存儲(chǔ)器訪問(wèn)(NUMA)計(jì)算機(jī)架構(gòu)中的任何一種所已知的。
所示存儲(chǔ)器102包含在計(jì)算機(jī)100中實(shí)現(xiàn)邏輯分區(qū)計(jì)算環(huán)境所使用的資源以及主要軟件部件,存儲(chǔ)器102包括由分區(qū)管理器或管理程序136管理的多個(gè)邏輯分區(qū)134。雖然所示分區(qū)134和管理程序136包含在計(jì)算機(jī)系統(tǒng)100的存儲(chǔ)器102中,但是在其它實(shí)施方式中,其中一些或者全部可以位于不同的計(jì)算機(jī)系統(tǒng),而且可以例如通過(guò)網(wǎng)絡(luò)130進(jìn)行遠(yuǎn)程訪問(wèn)。此外,計(jì)算機(jī)系統(tǒng)100可使用虛擬尋址機(jī)制,其允許計(jì)算機(jī)系統(tǒng)100的程序表現(xiàn)為就像其只能訪問(wèn)大型、單個(gè)存儲(chǔ)器實(shí)體,而不能訪問(wèn)多個(gè)、較小型的存儲(chǔ)器實(shí)體一樣。從而,雖然所示分區(qū)134和管理程序136駐留于存儲(chǔ)器102中,但是這些元素不必同時(shí)完全包含在同一個(gè)存儲(chǔ)設(shè)備中。
每個(gè)邏輯分區(qū)134使用操作系統(tǒng)142,操作系統(tǒng)142以與非分區(qū)計(jì)算機(jī)操作系統(tǒng)相同的方式控制邏輯分區(qū)134的主要操作。例如,可使用從國(guó)際商業(yè)機(jī)器公司可得的i5OS操作系統(tǒng)實(shí)現(xiàn)每個(gè)操作系統(tǒng)142,但是在其它實(shí)施方式中,操作系統(tǒng)142可以是Linux、AIX、UNIX、MicrosoftWindows,或者任何適當(dāng)?shù)牟僮飨到y(tǒng)。同時(shí),操作系統(tǒng)142中的一些或全部可以彼此相同或不同。如現(xiàn)有技術(shù)中眾所周知的,可支持任意數(shù)量的邏輯分區(qū)134,并且由于向計(jì)算機(jī)100中添加分區(qū)或者從計(jì)算機(jī)100中刪除分區(qū),任何時(shí)候駐留在計(jì)算機(jī)100中的邏輯分區(qū)134的數(shù)量可以動(dòng)態(tài)變化。
每個(gè)邏輯分區(qū)134執(zhí)行于單獨(dú)或獨(dú)立的存儲(chǔ)器空間中,從而從執(zhí)行于每個(gè)這種邏輯分區(qū)中的每個(gè)應(yīng)用144的角度來(lái)看,每個(gè)邏輯分區(qū)表現(xiàn)得與獨(dú)立的非分區(qū)計(jì)算機(jī)相同。這樣,用戶(hù)應(yīng)用通常不需要任何特殊配置以用于分區(qū)環(huán)境中。給定作為單個(gè)虛擬計(jì)算機(jī)的邏輯分區(qū)134的性質(zhì),就可以希望支持分區(qū)間通信以允許邏輯分區(qū)彼此通信,就好像邏輯分區(qū)位于單獨(dú)物理機(jī)器上一樣。這樣,在某些實(shí)現(xiàn)方式中,可以希望支持與管理程序136相關(guān)聯(lián)的虛擬局域網(wǎng)(LAN)適配器(未示出),以允許邏輯分區(qū)134通過(guò)諸如以太網(wǎng)協(xié)議的網(wǎng)絡(luò)協(xié)議彼此通信。在另一個(gè)實(shí)施方式中,虛擬網(wǎng)絡(luò)適配器可橋接到物理適配器,例如網(wǎng)絡(luò)接口適配器114。依照本發(fā)明各實(shí)施方式,也支持其它支持分區(qū)之間通信的方式。
雖然所示管理程序136位于存儲(chǔ)器102中,但是在其它實(shí)施方式中,管理程序102的全部或其一部分可以實(shí)現(xiàn)于固件或硬件中。管理程序136可執(zhí)行低層分區(qū)管理功能,例如頁(yè)面表管理,也可執(zhí)行更高層的分區(qū)管理功能,例如創(chuàng)建和刪除分區(qū)、并行I/O維護(hù)、向多個(gè)分區(qū)134分配處理器、存儲(chǔ)器以及其它硬件或軟件資源。
在一個(gè)實(shí)施方式中,管理程序136包括能夠在處理器101上執(zhí)行的指令,或者能夠由執(zhí)行于處理器101的指令進(jìn)行解釋的聲明,以執(zhí)行下面參考圖4、圖5和圖6進(jìn)一步描述的功能。在另一個(gè)實(shí)施方式中,管理程序136可實(shí)現(xiàn)于微代碼或固件中。在另一個(gè)實(shí)施方式中,管理程序136可通過(guò)邏輯門(mén)和/或其它適當(dāng)?shù)挠布夹g(shù)實(shí)現(xiàn)于硬件中。
管理程序136靜態(tài)地和/或動(dòng)態(tài)地向每個(gè)邏輯分區(qū)134分配計(jì)算機(jī)100中可用資源的一部分。例如,可以向每個(gè)邏輯分區(qū)134分配一個(gè)或多個(gè)處理器101和/或一個(gè)或多個(gè)硬件線程,以及可用存儲(chǔ)器空間的一部分。邏輯分區(qū)134可以共享具體軟件和/或硬件資源,例如處理器101,使得給定資源可由多于一個(gè)的邏輯分區(qū)使用。在可選方案中,可以每次只將軟件和硬件資源分配給僅一個(gè)邏輯分區(qū)134。附加資源,例如大容量存儲(chǔ)器、備份存儲(chǔ)器、用戶(hù)輸入、網(wǎng)絡(luò)連接和I/O適配器通常被分配給邏輯分區(qū)134中的一個(gè)或多個(gè)。資源可以以多種方式進(jìn)行分配,例如,按照逐個(gè)總線進(jìn)行分配或者逐個(gè)資源進(jìn)行,且多個(gè)邏輯分區(qū)共享同一總線上的資源。甚至每次可將一些資源分配給多個(gè)邏輯分區(qū)。在這里所標(biāo)識(shí)的資源只是示例,任何能夠被分配的適當(dāng)資源都可使用。
管理程序136包括邏輯分區(qū)控制塊146,管理程序使用邏輯分區(qū)控制塊在分區(qū)134之間分配資源。邏輯分區(qū)控制塊146在下面參考圖3進(jìn)行進(jìn)一步描述。
存儲(chǔ)器總線103提供數(shù)據(jù)通信通道,用于在處理器101、主存儲(chǔ)器102和I/O總線接口單元105之間傳送數(shù)據(jù)。I/O總線接口單元105進(jìn)一步與系統(tǒng)I/O總線104相連,用于向多個(gè)I/O單元傳送數(shù)據(jù)以及從多個(gè)I/O單元中傳送數(shù)據(jù)。I/O總線接口單元105通過(guò)系統(tǒng)I/O總線104與多個(gè)I/O接口單元111、112、113和114進(jìn)行通信,這些I/O接口單元也稱(chēng)為I/O處理器(IOP)或I/O適配器(IOA)。例如,系統(tǒng)I/O總線104可以是工業(yè)標(biāo)準(zhǔn)PCI總線,或者任何其它適當(dāng)?shù)目偩€技術(shù)。
I/O接口單元支持與多個(gè)存儲(chǔ)器和I/O設(shè)備的通信。例如,終端接口單元111支持一個(gè)或多個(gè)用戶(hù)終端121、122、123和124的連接。存儲(chǔ)器接口單元112支持一個(gè)或多個(gè)直接存取存儲(chǔ)設(shè)備(DASD)125、126和127(雖然可選地可以是其它設(shè)備,但是通常是旋轉(zhuǎn)式磁盤(pán)驅(qū)動(dòng)器存儲(chǔ)設(shè)備,包括磁盤(pán)驅(qū)動(dòng)器陣列,將其配置為對(duì)于主機(jī)來(lái)說(shuō)是單個(gè)大型存儲(chǔ)設(shè)備)的連接。主存儲(chǔ)器102的內(nèi)容可存儲(chǔ)在直接存取存儲(chǔ)設(shè)備125、126和127中,并可從中取回。
I/O和其它設(shè)備接口113提供對(duì)任何多種其它輸入/輸出設(shè)備或其它類(lèi)型設(shè)備的接口。兩個(gè)這種設(shè)備,打印機(jī)128和傳真機(jī)129示于圖1的示例性實(shí)施方式中,但是在其它實(shí)施方式中,可能存在很多可能是不同類(lèi)型的其它這種設(shè)備。網(wǎng)絡(luò)接口114提供一個(gè)或多個(gè)從計(jì)算機(jī)系統(tǒng)100到其它數(shù)字設(shè)備和計(jì)算機(jī)系統(tǒng)的通信通道;例如,這種通道可包括一個(gè)或多個(gè)網(wǎng)絡(luò)130。
雖然圖1中所示的存儲(chǔ)器總線103作為相對(duì)簡(jiǎn)單的單一總線結(jié)構(gòu),在處理器101、主存儲(chǔ)器102和I/O總線接口105之間提供直接通信通道,但是實(shí)際上,存儲(chǔ)器總線103可包括多個(gè)不同的總線或通信通道,它們可以排列為任何多種形式,例如在分層的、星形或網(wǎng)狀結(jié)構(gòu)中的點(diǎn)對(duì)點(diǎn)鏈路、多個(gè)層次總線、并行和冗余通道等等。此外,雖然將I/O總線接口105和I/O總線104示出為各自的單個(gè)單元,但是計(jì)算機(jī)系統(tǒng)100實(shí)際上可包含多個(gè)I/O總線接口單元105和/或多個(gè)I/O總線104。雖然示出多個(gè)I/O接口單元,其將系統(tǒng)I/O總線104與通向多個(gè)I/O設(shè)備的多個(gè)通信通道分開(kāi),但是在其它實(shí)施方式中,I/O設(shè)備其中的一些或全部直接與一個(gè)或多個(gè)系統(tǒng)I/O總線相連。
圖1中所述計(jì)算機(jī)系統(tǒng)100具有多個(gè)連接的終端121、122、123和124,例如,可以代表多用戶(hù)“大型”計(jì)算機(jī)系統(tǒng)。通常,在這種情況下,雖然本發(fā)明并未限于任何特定尺寸的系統(tǒng),但是附加設(shè)備的實(shí)際數(shù)量多于圖1中所示出的。計(jì)算機(jī)系統(tǒng)100可以可選地為單用戶(hù)系統(tǒng),通常只包含單個(gè)用戶(hù)顯示器和鍵盤(pán)輸入,或者可以是服務(wù)器或者幾乎或根本不具有直接用戶(hù)接口的類(lèi)似設(shè)備,但是其接收來(lái)自其他計(jì)算機(jī)系統(tǒng)(客戶(hù)端)的請(qǐng)求。在其它實(shí)施方式中,計(jì)算機(jī)系統(tǒng)100可實(shí)現(xiàn)為個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、膝上型計(jì)算機(jī)或筆記本電腦、PDA(個(gè)人數(shù)字助理)、輸入板式計(jì)算機(jī)、袖珍式計(jì)算機(jī)、電話、尋呼機(jī)、汽車(chē)、電話會(huì)議系統(tǒng)、電器,或者任何其它適當(dāng)類(lèi)型的電子設(shè)備。
網(wǎng)絡(luò)130可以是任何適當(dāng)?shù)木W(wǎng)絡(luò)或者網(wǎng)絡(luò)組合,并且可支持適用于去往/來(lái)自計(jì)算機(jī)系統(tǒng)100的數(shù)據(jù)和/或編碼通信的任何適當(dāng)協(xié)議。在多種實(shí)施方式中,網(wǎng)絡(luò)130可代表存儲(chǔ)設(shè)備或存儲(chǔ)設(shè)備組合,其既可以直接也可以間接地與計(jì)算機(jī)系統(tǒng)100相連。在一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可支持Infiniband(無(wú)限波段)技術(shù)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可支持無(wú)線通信。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可支持硬連線通信,例如電話線路或線纜。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可支持以太網(wǎng)IEEE(電子和電氣工程師協(xié)會(huì))802.3x規(guī)范。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可能是互聯(lián)網(wǎng),并且可支持IP(因特網(wǎng)協(xié)議)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是熱點(diǎn)服務(wù)提供商網(wǎng)絡(luò)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是內(nèi)聯(lián)網(wǎng)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是GPRS(通用分組無(wú)線服務(wù))網(wǎng)絡(luò)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是FRS(家庭無(wú)線服務(wù))網(wǎng)絡(luò)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是任何適當(dāng)?shù)姆涓C數(shù)據(jù)網(wǎng)絡(luò)或基于小區(qū)的無(wú)線網(wǎng)絡(luò)技術(shù)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是IEEE802.11B無(wú)線網(wǎng)絡(luò)。在另一個(gè)實(shí)施方式中,網(wǎng)絡(luò)130可以是任何適當(dāng)?shù)木W(wǎng)絡(luò)或網(wǎng)絡(luò)組合。雖然示出一個(gè)網(wǎng)絡(luò)130,但是在其它實(shí)施方式中,可以存在任意數(shù)量(包括零)的(相同或不同的類(lèi)型)網(wǎng)絡(luò)。
應(yīng)當(dāng)了解,圖1旨在從高層描述計(jì)算機(jī)系統(tǒng)100的代表性主要部件,單獨(dú)部件可具有比圖1所示更高的復(fù)雜性,可以存在不同于或者附加于圖1中所示部件的那些部件,而且這些部件的數(shù)量、類(lèi)型和配置可以改變。在這里公開(kāi)了這種額外復(fù)雜性或附加變形的多個(gè)特定示例;應(yīng)當(dāng)了解,這些只是示例的方式,而且不一定只有這些變形。
圖1所示的、實(shí)現(xiàn)本發(fā)明多個(gè)實(shí)施方式的各種軟件部件可用多種方式實(shí)現(xiàn),這些方式包括使用各種計(jì)算機(jī)軟件應(yīng)用、例程、部件、程序、對(duì)象、模塊、數(shù)據(jù)結(jié)構(gòu)等等,這些在這里稱(chēng)為“計(jì)算機(jī)程序”,或者簡(jiǎn)單地稱(chēng)為“程序”。計(jì)算機(jī)程序通常包括一個(gè)或多個(gè)在不同時(shí)刻駐留在于計(jì)算機(jī)系統(tǒng)100的不同存儲(chǔ)器和存儲(chǔ)設(shè)備中的指令,而且當(dāng)由計(jì)算機(jī)系統(tǒng)100中的一個(gè)或多個(gè)處理器101讀取和執(zhí)行該指令時(shí),其使得計(jì)算機(jī)系統(tǒng)100進(jìn)行必要的步驟,以執(zhí)行包括本發(fā)明一個(gè)實(shí)施方式各方面的步驟或元素。
而且,雖然已經(jīng)以及在下文中將要在全功能計(jì)算機(jī)系統(tǒng)的上下文中描述本發(fā)明各實(shí)施方式,但是本發(fā)明各實(shí)施方式能夠被分布為多種形式的程序產(chǎn)品,而且不論用于實(shí)際上實(shí)現(xiàn)該分布的信號(hào)承載介質(zhì)的特定類(lèi)型如何,都同樣應(yīng)用本發(fā)明??赏ㄟ^(guò)多種信號(hào)承載介質(zhì)向計(jì)算機(jī)系統(tǒng)100傳送定義這個(gè)實(shí)施方式功能的程序,該信號(hào)承載介質(zhì)包括但不限于(1)永久存儲(chǔ)在不可重寫(xiě)的存儲(chǔ)介質(zhì)中的信息,例如,附加于或位于計(jì)算機(jī)系統(tǒng)內(nèi)的只讀存儲(chǔ)設(shè)備,例如,CD-ROM、DVD-R或DVD+R;(2)存儲(chǔ)在可重寫(xiě)存儲(chǔ)介質(zhì)中的可變信息,例如硬盤(pán)驅(qū)動(dòng)器(例如,DASD 125、126或127)、CD-RW、DVD-RW、DVD+RW、DVD-RAM或磁盤(pán);或者(3)由通信介質(zhì)進(jìn)行傳送的信息,例如通過(guò)計(jì)算機(jī)或電話網(wǎng)絡(luò),例如網(wǎng)絡(luò)130,包括無(wú)線通信。
這種信號(hào)承載介質(zhì)在攜帶指導(dǎo)本發(fā)明功能的機(jī)器可讀指令時(shí),代表本發(fā)明各實(shí)施方式。
本發(fā)明各實(shí)施方式也可以作為與客戶(hù)公司、非營(yíng)利性組織、政府機(jī)構(gòu)、內(nèi)部組織結(jié)構(gòu)等相關(guān)的服務(wù)的一部分進(jìn)行發(fā)布。這些實(shí)施方式的各方面可包括配置計(jì)算機(jī)系統(tǒng)以執(zhí)行在這里描述的某些或所有方法,并且可包括部署實(shí)現(xiàn)在這里描述的某些或所有方法的軟件系統(tǒng)和web服務(wù)。這些實(shí)施方式的各方面還可包括分析客戶(hù)公司、響應(yīng)于分析生成建議、生成軟件以實(shí)現(xiàn)部分建議、將軟件整合到現(xiàn)有過(guò)程和基礎(chǔ)設(shè)施中、測(cè)量在這里描述的方法和系統(tǒng)的使用、向用戶(hù)分配費(fèi)用,以及對(duì)用戶(hù)使用這些方法和系統(tǒng)進(jìn)行計(jì)費(fèi)。另外,在下文中描述的各種程序可基于在本發(fā)明具體實(shí)施方式
中其所實(shí)現(xiàn)的應(yīng)用進(jìn)行識(shí)別。但是,隨后的任何特定程序術(shù)語(yǔ)僅出于簡(jiǎn)便目的,從而本發(fā)明各實(shí)施方式不應(yīng)當(dāng)限于僅在由這種術(shù)語(yǔ)標(biāo)識(shí)和/或暗示的任何具體應(yīng)用中使用。
圖1中所示的示例性環(huán)境并不旨在限制本發(fā)明。實(shí)際上,在不偏離本發(fā)明范圍的前提下,可使用其它可選擇的硬件和/或軟件環(huán)境。
圖2A描述將虛擬處理器分派給物理處理器的框圖,其所依照的技術(shù)試圖在虛擬處理器一個(gè)分派的分派窗口中給出全部應(yīng)得能力。從性能的角度來(lái)看,只要虛擬處理器有任務(wù)要處理,就希望分區(qū)的虛擬處理器在盡可能少的分派中接收到其分配的周期。最可能的情況是,虛擬處理器在單個(gè)分派的分派窗口中接收到其所有周期。較少的分派具有切換開(kāi)銷(xiāo)較少的性能優(yōu)勢(shì),該開(kāi)銷(xiāo)包括保存以及恢復(fù)虛擬處理器的狀態(tài)。較少的分派還允許有效地利用處理器高速緩沖存儲(chǔ)器。
在某些配置下,較少分派的性能目標(biāo)與保證虛擬處理器的應(yīng)得周期的功能目標(biāo)相沖突,所以,如果管理程序試圖在分區(qū)的一個(gè)分派的分派窗口中給出全部應(yīng)得能力,則一些虛擬處理器不能接收到其全部應(yīng)得能力。
為了說(shuō)明這點(diǎn),考慮在表200中所示具有四個(gè)物理處理器(P0、P1、P2和P3)以及五個(gè)虛擬處理器(V0、V1、V2、V3和V4)的配置,其中向五個(gè)分區(qū)中的每個(gè)分配一個(gè)虛擬處理器。在圖2A所示的示例中,分派窗口(分派窗口0、分派窗口1、分派窗口2、分派窗口3、每個(gè)分派窗口4、分派窗口5、分派窗口6以及分派窗口7)代表10msec(毫秒),使得表200中的每個(gè)時(shí)隙代表將給定物理處理器CPU周期分配給具體虛擬處理器2msec。此外,在五個(gè)示例虛擬處理器(V0、V1、V2、V3和V4)中的每個(gè)具有物理處理器的0.8的應(yīng)得能力,這意味著8個(gè)分派窗口上的應(yīng)得能力是8*(10msec)*.8=64msec。表200中的空時(shí)隙代表相關(guān)聯(lián)的物理處理器空閑的時(shí)間,這是因?yàn)槊總€(gè)虛擬處理器每次只能夠利用一個(gè)物理處理器。將虛擬處理器(V0、V1、V2、V3和V4)分配到表200中時(shí)隙的模式代表管理程序試圖在虛擬處理器一個(gè)分派的分派窗口中給出全部應(yīng)得能力。
圖2A中示例所示的結(jié)果是虛擬處理器V0、V1和V2都至少接收到其64msec的應(yīng)得能力。虛擬處理器V0從物理處理器P0接收到8msec,從物理處理器P1接收到56msec。虛擬處理器V1從物理處理器P1接收到8msec,從物理處理器P2接收到56msec。虛擬處理器V2從物理處理器P1接收到4msec,從物理處理器P2接收到8msec,并且從物理處理器P3接收到56msec。
遺憾的是,虛擬處理器V3只接收到38msec的物理CPU周期(30msec來(lái)自物理處理器P0,8msec來(lái)自物理處理器P3),虛擬處理器V4只接收到40msec的物理CPU周期(40msec來(lái)自物理處理器P0)。因此,由于管理程序試圖在虛擬處理器一個(gè)分派的每個(gè)分派窗口中給出全部應(yīng)得能力,虛擬處理器V3和V4沒(méi)有接收到其64msec的物理CPU周期的應(yīng)得能力。
圖2B描述依照本發(fā)明一個(gè)實(shí)施方式將虛擬處理器分派給物理處理器的框圖250。圖2B所示的配置具有四個(gè)物理處理器(P0、P1、P2和P3),對(duì)應(yīng)于處理器101,但是在另一個(gè)實(shí)施方式中,可以存在任意數(shù)量的物理處理器。圖2B也包括五個(gè)虛擬處理器(V0、V1、V2、V3和V4),其中向五個(gè)示例分區(qū)的每個(gè)分配一個(gè)虛擬處理器,例如分區(qū)134中的任何一個(gè),但是在其它實(shí)施方式中,可以存在任意數(shù)量的分區(qū),一個(gè)分區(qū)可以具有任意數(shù)量的相關(guān)聯(lián)的虛擬處理器。
每個(gè)分派窗口(分派窗口0、分派窗口1、分派窗口2、分派窗口3、分派窗口4、分派窗口5、分派窗口6以及分派窗口7)代表10msec(毫秒),使得表250中的每個(gè)時(shí)隙代表將給定物理處理器的CPU周期分配給具體虛擬處理器2msec。在其它實(shí)施方式中,可以使用任何適當(dāng)?shù)姆峙纱翱凇?br>
在這個(gè)示例中,五個(gè)虛擬處理器(V0、V1、V2、V3和V4)中的每個(gè)具有物理處理器的0.8的應(yīng)得能力,這意味著在八個(gè)分派窗口上的應(yīng)得能力是8*(10msec)*.8=64msec。在另一個(gè)實(shí)施方式中,可以使用任何應(yīng)得能力,而且應(yīng)得能力可用CPU時(shí)間、CPU周期、物理處理器百分比或分?jǐn)?shù),或者任何其它適當(dāng)?shù)膯挝粊?lái)表示。表250中的空時(shí)隙代表相關(guān)聯(lián)的物理處理器101空閑的時(shí)間,這是因?yàn)槊總€(gè)虛擬處理器一次只能夠利用一個(gè)物理處理器。將虛擬處理器(V0、V1、V2、V3和V4)分配到表250中時(shí)隙的示例模式代表使用先占技術(shù)的管理程序136,這將在下面參考圖4、圖5和圖6進(jìn)一步描述。
使用本發(fā)明一個(gè)實(shí)施方式的技術(shù),管理程序136在被先占的虛擬處理器中進(jìn)行切換,并檢測(cè)到分區(qū)134將不能在當(dāng)前分派窗口中的全部周期中使用,所以管理程序136給分區(qū)134一個(gè)先占信用度。先占信用度是分區(qū)134在當(dāng)前分派窗口中不能使用的處理器周期的數(shù)量。當(dāng)分派窗口變化時(shí),分區(qū)l34保持其先占信用度周期,不同于在圖2A的示例中,當(dāng)分派窗口變化時(shí),會(huì)丟失分區(qū)的處理器周期。然后管理程序136允許分區(qū)134在隨后的分派窗口組中使用先占信用度處理器周期,以彌補(bǔ)在當(dāng)前分派窗口中所失去的機(jī)會(huì)。當(dāng)一個(gè)分區(qū)134使用其先占信用度周期時(shí),另一個(gè)分區(qū)134或另一組分區(qū)134可能未接收到分派窗口中其應(yīng)得的周期。接著,這使那些分區(qū)134被給予先占信用度周期,這些分區(qū)可在隨后系列的分派窗口中使用先占信用度周期。由于共享池中分區(qū)的應(yīng)得能力不能超過(guò)該池的能力,所以累積的先占信用度不能無(wú)限增長(zhǎng)。
在穩(wěn)態(tài)實(shí)施方式中,由所有分區(qū)134運(yùn)行CPU限制的工作負(fù)荷,先占信用度通過(guò)一組分區(qū)134循環(huán),共享處理器池的能力將完全被使用,并且虛擬處理器將接收到長(zhǎng)的分派,這獲得了改善的性能。本發(fā)明一個(gè)實(shí)施方式的代價(jià)就是分區(qū)134不必在每個(gè)分派窗口中接收到其應(yīng)得周期。分區(qū)134可以在特定分派窗口中接收到少于其應(yīng)得周期,然后可在隨后的分派窗口中使用累積的先占信用度周期,以彌補(bǔ)在先前分派窗口中損失的處理器周期。管理程序136不必保證在每個(gè)分派窗口期間向分區(qū)134分配其應(yīng)得的能力,而是只要分派窗口足夠短,分區(qū)l34的工作負(fù)荷就不會(huì)受到影響。
本發(fā)明一個(gè)實(shí)施方式的先占信用度技術(shù)在圖2B的表250中表示。表250中用星號(hào)(“*”)表示的時(shí)隙代表先占信用度周期的使用。例如,在分派窗口0期間,虛擬處理器V4未接收到其應(yīng)得物理處理器周期的全部分配(在示例中是8msec)。相反,虛擬處理器V4在分派窗口0中只接收到2msec的物理處理器周期。因此,響應(yīng)于在分配窗口0的結(jié)尾被先占,虛擬處理器V4接收到6msec的先占信用度(全部應(yīng)得部分中未在分派窗口0中接收到的部分),該先占信用度在分派窗口1、分派窗口2和分派窗口3中使用,以接收附加的物理處理器周期分配,如星號(hào)所指示。
以相似的方式,虛擬處理器V3在分派窗口1的結(jié)尾被先占,所以虛擬處理器V3接收先占信用度,該先占信用度在分派窗口2、分派窗口3和分派窗口4中使用,以接收附加的物理處理器周期分配,如星號(hào)所指示。
以相似的方式,虛擬處理器V2在分派窗口2的結(jié)尾被先占,所以虛擬處理器V2接收先占信用度,該先占信用度在分派窗口3、分派窗口4和分派窗口5中使用,以接收附加的物理處理器周期分配,如星號(hào)所指示。
以相似的方式,虛擬處理器V1在分派窗口3的結(jié)尾被先占,所以虛擬處理器v1接收先占信用度,該先占信用度在分派窗口4、分派窗口5和分派窗口6中使用,以接收附加的物理處理器周期分配,如星號(hào)所指示。以相似的方式,虛擬處理器V0在分派窗口4的結(jié)尾被先占,所以虛擬處理器V0也接收先占信用度,該先占信用度在分派窗口5、分派窗口6和分派窗口7中使用。下面進(jìn)一步參考圖3對(duì)先占信用度進(jìn)行描述。
圖3描述依照本發(fā)明一個(gè)實(shí)施方式的邏輯分區(qū)控制塊146的框圖。邏輯分區(qū)控制塊146包括虛擬處理器控制塊302和先占信用度325。雖然只表示了一個(gè)虛擬處理器控制塊302,但是在其它實(shí)施方式中,可以存在任意數(shù)量的虛擬處理器控制塊,例如一個(gè)虛擬處理器控制塊代表每個(gè)虛擬處理器,或者用于每個(gè)分區(qū)134的一個(gè)虛擬處理器控制塊。虛擬處理器控制塊302包括記錄305、310和315,但是在其它實(shí)施方式中,可以存在帶有任何適當(dāng)數(shù)據(jù)的任意數(shù)量的記錄。每個(gè)記錄305、310和315包括分區(qū)標(biāo)識(shí)符字段320和虛擬處理器標(biāo)識(shí)符字段330,但是在其它實(shí)施方式中,可以存在更多或更少的字段。
分區(qū)標(biāo)識(shí)符字段320標(biāo)識(shí)與記錄相關(guān)聯(lián)的分區(qū)134中的一個(gè)分區(qū)。虛擬處理器標(biāo)識(shí)符字段330標(biāo)識(shí)與記錄相關(guān)聯(lián)的虛擬處理器。從而,記錄305、310和315中每一個(gè)代表分配給由分區(qū)標(biāo)識(shí)符320標(biāo)識(shí)的分區(qū)134的虛擬處理器330,管理程序136可以在分派窗口中將物理處理器101分配給虛擬處理器330一段時(shí)間,以執(zhí)行與分區(qū)134相關(guān)聯(lián)的任務(wù)。因此,如在這里所用的,虛擬處理器是分配給分區(qū)134中的一個(gè)分區(qū)的物理處理器的一段時(shí)間或者物理處理器的數(shù)個(gè)周期,并且虛擬處理器用諸如虛擬處理器控制塊302中的記錄的數(shù)據(jù)結(jié)構(gòu)來(lái)代表。虛擬處理器控制塊302由管理程序136使用,如下面參考圖4、圖5和圖6進(jìn)一步描述的。先占信用度325標(biāo)識(shí),在與邏輯分區(qū)控制塊146相關(guān)聯(lián)的分區(qū)已經(jīng)使用分派窗口中的應(yīng)得處理器周期之前,該分區(qū)通過(guò)相關(guān)聯(lián)的虛擬處理器被先占所產(chǎn)生的先占信用度的數(shù)量。
圖4描述依照本發(fā)明一個(gè)實(shí)施方式將物理處理器分配給虛擬處理器的示例處理流程圖??刂崎_(kāi)始于塊400。然后控制繼續(xù)至塊405,其中管理程序136確定將物理處理器分配給虛擬處理器的需要。例如,管理程序136可基于向管理程序請(qǐng)求虛擬處理器周期以使操作系統(tǒng)142或應(yīng)用144執(zhí)行功能的分區(qū)134,來(lái)確定這個(gè)需要。
然后,控制繼續(xù)至塊410,其中管理程序136確定虛擬處理器的執(zhí)行是否被另一個(gè)虛擬處理器先占。如果塊410中的確定為真,則虛擬處理器已經(jīng)被另一個(gè)虛擬處理器先占,所以控制繼續(xù)至塊415,其中管理程序136確定分區(qū)是否能夠在當(dāng)前分派窗口中接收到其應(yīng)得處理器周期的全部分配能力。如果塊415中的確定為真,則控制繼續(xù)至塊420,其中管理程序136將全部時(shí)間段分配給虛擬處理器,如下面參考圖5進(jìn)一步描述的??刂苿t繼續(xù)至塊499,其中圖4的邏輯進(jìn)行返回。
如果塊415中的確定為假,則分區(qū)不能夠在當(dāng)前分派窗口中獲得其處理器周期的全部應(yīng)得分配,所以控制繼續(xù)至塊425,其中管理程序136為分區(qū)將先占信用度325計(jì)算為分區(qū)不能在當(dāng)前分派窗口中使用的那部分處理器周期的應(yīng)得分配。在一個(gè)實(shí)施方式中,管理程序136將先占信用度325計(jì)算為分區(qū)應(yīng)得的全部分配減去(當(dāng)前時(shí)間減去分派窗口的結(jié)束時(shí)間)。
然后,控制繼續(xù)至塊430,其中管理程序136將所計(jì)算的先占信用度325保存在與該分區(qū)相關(guān)聯(lián)的邏輯分區(qū)控制塊146中。然后控制繼續(xù)至塊499,其中圖4的邏輯進(jìn)行返回。
如果在塊410的確定為假,則虛擬處理器尚未被先占,所以控制繼續(xù)至塊435,其中管理程序136在分派窗口中將全部應(yīng)得處理器周期分配給虛擬處理器。然后,控制繼續(xù)至塊499,其中圖4的邏輯進(jìn)行返回。
圖5描述依照本發(fā)明一個(gè)實(shí)施方式將物理處理器分配給虛擬處理器的示例處理流程圖。控制開(kāi)始于塊500。然后,控制繼續(xù)至塊505,其中管理程序136將物理處理器101的CPU周期的全部分派窗口時(shí)間段分配給虛擬處理器。然后,控制繼續(xù)至塊510,其中管理程序136確定分區(qū)是否具有任何剩余的先占信用度325。如果在塊510中的確定為真,則分區(qū)具有剩余的先占信用度325,所以控制繼續(xù)至塊515,其中管理程序?qū)?duì)分區(qū)的分配計(jì)算為先占信用度325減去(分派窗口結(jié)束的時(shí)間減去當(dāng)前時(shí)間),其中該分配不大于先占信用度。然后,控制繼續(xù)至塊520,其中管理程序136將所計(jì)算的物理處理器CPU周期分配時(shí)間段分配給虛擬處理器。然后,控制繼續(xù)至塊525,其中管理程序136將分區(qū)的先占信用度325設(shè)定為當(dāng)前先占信用度325減去所計(jì)算的分配時(shí)間段。然后,控制繼續(xù)至塊599,其中圖5的邏輯進(jìn)行返回。
如果在塊510中的確定為假,則分區(qū)不具有任何剩余的先占信用度325,所以控制繼續(xù)至塊530,其中管理程序136在全部分派窗口時(shí)間段上將物理處理器分配給虛擬處理器。然后,控制繼續(xù)至塊599,其中圖5的邏輯進(jìn)行返回。
圖6描述依照本發(fā)明一個(gè)實(shí)施方式用于將分區(qū)的先占信用度325清零的示例處理流程圖??刂崎_(kāi)始于塊600。然后,控制繼續(xù)至塊605,其中虛擬處理器通知管理程序136虛擬處理器不再具有該分區(qū)的剩余任務(wù)??刂苿t繼續(xù)至塊610,其中管理程序?qū)⑴c該分區(qū)相關(guān)聯(lián)的先占信用度325清零。然后,控制繼續(xù)至塊699,其中圖6的邏輯進(jìn)行返回。
在先前本發(fā)明示例性實(shí)施方式的詳細(xì)描述中,參考附圖(其中相同的標(biāo)號(hào)表示相同的元件),其組成本發(fā)明的一部分,并且是以對(duì)實(shí)現(xiàn)本發(fā)明的具體示例性實(shí)施方式進(jìn)行示意說(shuō)明的方式來(lái)表示的。對(duì)這些實(shí)施方式的描述足夠詳細(xì),以使本領(lǐng)域中熟練的技術(shù)人員可以實(shí)現(xiàn)本發(fā)明,但是可使用其它實(shí)施方式,而且在不偏離本發(fā)明范圍的前提下,可進(jìn)行邏輯、機(jī)械、電子以及其它的變更。在本說(shuō)明書(shū)中所用詞語(yǔ)“實(shí)施方式”的不同例子并不必然表示相同的實(shí)施方式,但是也可以表示相同的實(shí)施方式。因此,先前的詳細(xì)描述并不作為限制,而且本發(fā)明的范圍僅由所附權(quán)利要求書(shū)進(jìn)行限定。
在先前的描述中,描述了多個(gè)具體細(xì)節(jié),以提供對(duì)本發(fā)明的全面理解。但是,可以在沒(méi)有這些具體細(xì)節(jié)的前提下實(shí)現(xiàn)本發(fā)明。在其它的例子中,并未詳細(xì)示出已知的電路、結(jié)構(gòu)和技術(shù),以便不會(huì)使本發(fā)明晦澀難懂。
權(quán)利要求
1.一種方法,包括確定虛擬處理器是否被先占并不能在分區(qū)的分派窗口期間接收到物理處理器周期的應(yīng)得能力;以及如果該確定為真,則在至少一個(gè)隨后的分派窗口期間,將該虛擬處理器不能接收到的那部分應(yīng)得能力分配給該虛擬處理器。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括如果確定為假,則在隨后的分派窗口期間,將該應(yīng)得能力分配給該虛擬處理器。
3.根據(jù)權(quán)利要求1所述的方法,其中該分配進(jìn)一步包括基于該分區(qū)不能在該分派窗口期間接收到的物理處理器周期的應(yīng)得能力,計(jì)算該分區(qū)的先占信用度。
4.根據(jù)權(quán)利要求3所述的方法,其中該計(jì)算進(jìn)一步包括計(jì)算該先占信用度與到該分派窗口結(jié)束所剩余時(shí)間的差值。
5.根據(jù)權(quán)利要求3所述的方法,其中該分配進(jìn)一步包括判斷該分區(qū)是否還具有任何剩余的該先占信用度;以及如果判斷為真,則計(jì)算該先占信用度的一部分,對(duì)于隨后的分派窗口,將該部分分配給該虛擬處理器,以及從該先占信用度中減去該部分。
6.根據(jù)權(quán)利要求5所述的方法,進(jìn)一步包括如果判斷為假,則對(duì)于隨后的分派窗口,將該物理處理器周期的應(yīng)得能力分配給該虛擬處理器。
7.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括響應(yīng)于該虛擬處理器沒(méi)有與該分區(qū)相關(guān)聯(lián)的剩余任務(wù),將該先占信用度清零。
8.一種用指令進(jìn)行編碼的信號(hào)承載介質(zhì),當(dāng)執(zhí)行該指令時(shí),執(zhí)行權(quán)利要求1-6中任何一個(gè)權(quán)利要求所述的步驟。
9.一種計(jì)算機(jī)系統(tǒng),包括物理處理器;以及用指令進(jìn)行編碼的存儲(chǔ)設(shè)備,其中在執(zhí)行于該物理處理器上時(shí),該指令包括確定虛擬處理器是否被先占并不能在分區(qū)的分派窗口期間接收到物理處理器周期的應(yīng)得能力;如果確定為真,則在至少一個(gè)隨后的分派窗口期間,將該虛擬處理器不能接收到的那部分應(yīng)得能力分配給該虛擬處理器,以及如果確定為假,則在隨后的分派窗口期間,將該應(yīng)得能力分配給該虛擬處理器。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中該分配進(jìn)一步包括基于該分區(qū)不能在該分派窗口期間接收到的物理處理器周期的應(yīng)得能力部分,計(jì)算該分區(qū)的先占信用度。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中該計(jì)算進(jìn)一步包括計(jì)算該先占信用度與到該分派窗口結(jié)束所剩余時(shí)間的差值。
12.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中該分配進(jìn)一步包括判斷該分區(qū)是否還具有任何剩余的該先占信用度;以及如果判斷為真,則計(jì)算該先占信用度的一部分,對(duì)于隨后的分派窗口,將該先占信用度的該部分分配給該虛擬處理器,以及從該先占信用度中減去該部分。
13.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中該分配進(jìn)一步包括如果判斷為假,則對(duì)于隨后的分派窗口,將該物理處理器周期的應(yīng)得能力分配給該虛擬處理器。
14.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中該指令進(jìn)一步包括響應(yīng)于該虛擬處理器沒(méi)有剩余的與該分區(qū)相關(guān)聯(lián)的任務(wù),將該先占信用度清零。
15.一種用于配置計(jì)算機(jī)的方法,包括將該計(jì)算機(jī)配置為確定虛擬處理器是否被先占并不能在分區(qū)的分派窗口期間接收到物理處理器周期的應(yīng)得能力;以及將該計(jì)算機(jī)配置為,如果虛擬處理器被先占,則在至少一個(gè)隨后的分派窗口期間,將該虛擬處理器不能接收到的那部分應(yīng)得能力分配給該虛擬處理器。
16.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括將該計(jì)算機(jī)配置為,如果虛擬處理器未被先占,則在隨后的分派窗口期間,將該應(yīng)得能力分配給該虛擬處理器。
17.根據(jù)權(quán)利要求15所述的方法,其中配置該計(jì)算機(jī)以便分配進(jìn)一步包括將該計(jì)算機(jī)配置為,基于該分區(qū)不能在該分派窗口期間接收到的物理處理器周期的應(yīng)得能力部分,計(jì)算該分區(qū)的先占信用度。
18.根據(jù)權(quán)利要求16所述的方法,其中配置該計(jì)算機(jī)以便計(jì)算進(jìn)一步包括將該計(jì)算機(jī)配置為計(jì)算該先占信用度與到該分派窗口結(jié)束所剩余時(shí)間的差值。
19.根據(jù)權(quán)利要求16所述的方法,其中該配置計(jì)算機(jī)進(jìn)行分配進(jìn)一步包括將該計(jì)算機(jī)配置為判斷該分區(qū)是否還具有任何剩余的該先占信用度;以及將該計(jì)算機(jī)配置為,如果該分區(qū)還具有任何剩余的該先占信用度,則計(jì)算該先占信用度的一部分,對(duì)于隨后的分派窗口,將該先占信用度的該部分分配給該虛擬處理器,以及從該先占信用度中減去該部分。
20.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括將該計(jì)算機(jī)配置為,如果該分區(qū)不具有任何剩余的該先占信用度,則對(duì)于隨后的分派窗口,將該物理處理器周期的應(yīng)得能力分配給該虛擬處理器。
全文摘要
一種方法、裝置、系統(tǒng)和信號(hào)承載介質(zhì),在一個(gè)實(shí)施方式中,如果虛擬處理器被先占并且分區(qū)不能在分派窗口期間接收到物理處理器周期的應(yīng)得能力,則計(jì)算分區(qū)的先占信用度。先占信用度是分區(qū)不能接收到的那部分應(yīng)得能力。只要分區(qū)具有剩余的先占信用度,就在隨后的分派窗口中,將先占信用度的一部分分配給虛擬處理器,并且減少先占信用度。這樣,在一個(gè)實(shí)施方式中,可保證共享處理器分區(qū)接收到其處理器周期的應(yīng)得分配。
文檔編號(hào)G06F9/455GK1841331SQ20061005822
公開(kāi)日2006年10月4日 申請(qǐng)日期2006年2月24日 優(yōu)先權(quán)日2005年3月30日
發(fā)明者威廉姆·約瑟夫·阿姆斯特朗, 內(nèi)爾施·內(nèi)阿 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司