專利名稱:用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域涉及數(shù)據(jù)處理,或者更具體地,涉及用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的方法、系統(tǒng)和產(chǎn)品。
背景技術(shù):
線程是多線程計(jì)算機(jī)上的軟件執(zhí)行單位。也就是,線程是計(jì)算機(jī)系統(tǒng)的可執(zhí)行工作實(shí)體。線程可以看作為可執(zhí)行計(jì)算機(jī)程序指令的單獨(dú)流。在這樣的計(jì)算機(jī)上,軟件程序是以稱為“進(jìn)程”的執(zhí)行單位來執(zhí)行的,這些進(jìn)程包括對(duì)于軟件程序的執(zhí)行所需要的所有處理器寄存器、代碼段和偏移寄存器、數(shù)據(jù)段和偏移寄存器、堆棧段和偏移寄存器、標(biāo)志寄存器、指令指針寄存器、程序計(jì)數(shù)器等。為求效率,“進(jìn)程”進(jìn)一步組織為多個(gè)線程,其中進(jìn)程的每個(gè)線程各自擁有對(duì)于執(zhí)行所需要的所有屬性,例外的是線程在進(jìn)程的所有其它線程之間共享存儲(chǔ)器,由此減少?gòu)木€程到線程的操作系統(tǒng)切換(“上下文切換”)的開銷。
在本說明書中討論兩種多線程模式即同時(shí)多線程(“simultaneousmulti-threadingSMT”)和單線程(“single-threadedST”)多線程。ST多線程是時(shí)間復(fù)用的多線程,也就是,通過使用時(shí)間片或時(shí)間量子的多線程。在ST模式中,各個(gè)線程和虛擬處理器被分配給按時(shí)間段分?jǐn)?apportion)的處理器計(jì)算容量的一部分,每個(gè)時(shí)間段稱作為“時(shí)間片”或“時(shí)間量子”。
一些處理器同時(shí)接受來自多于一個(gè)線程的計(jì)算機(jī)程序指令,該特征稱作為“同時(shí)多線程”或“SMT”。SMT背后的理念是在多線程工作負(fù)荷的多個(gè)線程之間共享芯片上的處理器硬件。SMT是讓多個(gè)獨(dú)立的線程在單個(gè)處理周期中發(fā)出指令到單個(gè)物理處理器的技術(shù)。傳統(tǒng)的處理器架構(gòu)每次僅從一個(gè)線程發(fā)出指令到處理器。實(shí)現(xiàn)如這里所述的SMT的處理器例子是IBM的Power5TM處理器。
SMT是在多個(gè)物理處理器上實(shí)現(xiàn)的,其中每個(gè)物理處理器能同時(shí)從多于一個(gè)的執(zhí)行線程接受指令。同樣在SMT模式中,虛擬處理器和運(yùn)行在虛擬處理器上的線程都可以通過時(shí)間片來分?jǐn)?。SMT模式中虛擬處理器上的執(zhí)行線程可以看作為運(yùn)行于邏輯處理器上。因此,SMT模式中物理處理器上運(yùn)行的虛擬處理器可以看作為支持多于一個(gè)邏輯處理器。無(wú)論線程運(yùn)行于ST模式還是SMT模式,在邏輯處理器上運(yùn)行的線程并不知道處理器的邏輯或虛擬性質(zhì)而且將它看作為傳統(tǒng)的處理器。
多處理是在ST模式或SMT模式中逐個(gè)分區(qū)地支持多個(gè)邏輯分區(qū)的計(jì)算機(jī)中實(shí)現(xiàn)的。每個(gè)分區(qū)在傳統(tǒng)上實(shí)現(xiàn)包括獨(dú)立內(nèi)核的完整獨(dú)立操作系統(tǒng)。甚至內(nèi)核的單個(gè)實(shí)例或圖像也消耗存儲(chǔ)器資源,而且這樣的圖像的每個(gè)附加備份消耗多個(gè)存儲(chǔ)器資源。當(dāng)分區(qū)數(shù)目大而且因此內(nèi)核圖像數(shù)目也大時(shí),存儲(chǔ)器消耗可以變成系統(tǒng)管理中的限制性因素。
發(fā)明內(nèi)容
公開了用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,由此減少存儲(chǔ)器和其它系統(tǒng)資源的消耗。根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品通常包括在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)使用的類型的內(nèi)核;在分區(qū)管理器中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu);以及由內(nèi)核依賴于通用數(shù)據(jù)結(jié)構(gòu)向邏輯分區(qū)提供內(nèi)核服務(wù)。
通過以下對(duì)如附圖中所圖示的本發(fā)明示例性實(shí)施例的更具體說明,本發(fā)明的前述和其它目的、特征和優(yōu)點(diǎn)將變得明顯,在附圖中,相同的參考標(biāo)記通常代表本發(fā)明示例性實(shí)施例的相同部分。
圖1示出了包括根據(jù)本發(fā)明的實(shí)施例的在多個(gè)邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核時(shí)有用的示例性計(jì)算機(jī)的自動(dòng)計(jì)算機(jī)器系統(tǒng)的框圖;圖2示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性系統(tǒng)的功能框圖;圖3A示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性線程狀態(tài)的狀態(tài)圖;圖3B示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在共享內(nèi)核的計(jì)算機(jī)系統(tǒng)中調(diào)度虛擬處理器的示例性虛擬處理器狀態(tài)的狀態(tài)圖;圖4示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的另一個(gè)示例性系統(tǒng)的功能框圖;圖5示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性方法的流程圖;圖6示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的另一個(gè)示例性方法的流程圖;圖7A示出了對(duì)于內(nèi)核全局可用的數(shù)據(jù)結(jié)構(gòu)的示意圖,該數(shù)據(jù)結(jié)構(gòu)用于指明計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源;圖7B示出了指明分配給邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)的示意圖;圖8示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的另一個(gè)示例性方法的流程圖;以及圖9示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的另一個(gè)示例性方法的流程圖。
具體實(shí)施例方式
參考從圖1開始的附圖來說明根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性方法、系統(tǒng)和產(chǎn)品。根據(jù)本發(fā)明在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核是在自動(dòng)計(jì)算機(jī)器系統(tǒng)(也就是,一個(gè)或多個(gè)計(jì)算機(jī))上實(shí)現(xiàn)的。圖1示出了包括根據(jù)本發(fā)明的實(shí)施例的在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核時(shí)有用的示例性計(jì)算機(jī)152的自動(dòng)計(jì)算機(jī)器系統(tǒng)的框圖。圖1的計(jì)算機(jī)152包括若干個(gè)物理處理器156以及通過系統(tǒng)總線160連接到物理處理器和計(jì)算機(jī)的其它組件的隨機(jī)存取存儲(chǔ)器(“RAM”)168。
存儲(chǔ)于RAM 168中的是邏輯分區(qū)408、應(yīng)用程序412、操作系統(tǒng)154、邏輯處理器106、分區(qū)管理器422、內(nèi)核416和虛擬處理器122。邏輯分區(qū)(“LPAR”)408是數(shù)據(jù)結(jié)構(gòu)和服務(wù)集,該數(shù)據(jù)結(jié)構(gòu)和服務(wù)集使計(jì)算機(jī)資源能夠分布在單個(gè)計(jì)算機(jī)之內(nèi),以使計(jì)算機(jī)運(yùn)作,就好像它是兩個(gè)或更多獨(dú)立計(jì)算機(jī)一樣。每個(gè)邏輯分區(qū)分配有它需要來操作的所有資源,就好像它是包括處理器時(shí)間、存儲(chǔ)器、操作系統(tǒng)等的獨(dú)立計(jì)算機(jī)一樣。邏輯分區(qū)和可通過邏輯分區(qū)用于應(yīng)用的資源有時(shí)統(tǒng)稱為“虛擬機(jī)”。為便于說明,圖1的系統(tǒng)僅包括一個(gè)邏輯分區(qū),但是根據(jù)本發(fā)明的實(shí)施例的在多個(gè)邏輯分區(qū)之間共享內(nèi)核的系統(tǒng)可以支持任意數(shù)目的邏輯分區(qū)。
應(yīng)用程序412是用戶級(jí)計(jì)算機(jī)程序代碼模塊,應(yīng)用程序是必須按照通過操作系統(tǒng)到內(nèi)核的調(diào)用來獲得對(duì)計(jì)算機(jī)資源的訪問的非特許代碼。
操作系統(tǒng)154是系統(tǒng)軟件層,該系統(tǒng)軟件層調(diào)度線程而且提供用于使系統(tǒng)資源可為線程所用的功能,包括存儲(chǔ)器存取、對(duì)輸入/示出資源的訪問等。操作系統(tǒng)還控制對(duì)于計(jì)算機(jī)資源訪問的分配和授權(quán)。操作系統(tǒng)進(jìn)行低級(jí)基本任務(wù),諸如識(shí)別來自鍵盤的輸入、發(fā)送輸出到顯示器屏幕、保持對(duì)磁盤驅(qū)動(dòng)器上文件和目錄的跟蹤和控制諸如盤驅(qū)動(dòng)器和打印機(jī)的外圍設(shè)備。操作系統(tǒng)還負(fù)責(zé)安全,確保未授權(quán)用戶不得訪問系統(tǒng)而且線程僅僅訪問它們被授權(quán)訪問的資源。許多操作系統(tǒng)功能由內(nèi)核(在此例中為共享內(nèi)核)實(shí)現(xiàn)。根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的操作系統(tǒng)是多線程操作系統(tǒng),其例子包括UNIXTM、LinuxTM、Microsoft XPTM、AIXTM、IBM的i5os和本領(lǐng)域技術(shù)人員將想到的許多其它例子。
邏輯處理器106是用于調(diào)度線程用以執(zhí)行的操作系統(tǒng)結(jié)構(gòu)。也就是,操作系統(tǒng)154調(diào)度線程用以在邏輯處理器106上執(zhí)行,而不是調(diào)度線程用以在物理處理器或虛擬處理器上執(zhí)行。在邏輯處理器上調(diào)度線程提供了方便的結(jié)構(gòu)和處理,其中從線程的觀點(diǎn)來看,該線程表現(xiàn)為使完整邏輯分區(qū)的所有資源在它的支配下。虛擬處理器是物理處理器的分?jǐn)傂〔糠?fraction)。然而,邏輯處理器在邏輯上是一個(gè)完整處理器,盡管事實(shí)上它僅僅與機(jī)器上的所有其它執(zhí)行一樣物理上運(yùn)行在小部分時(shí)間片中。因此,在LPAR中的邏輯處理器上運(yùn)行的線程從它的觀點(diǎn)來看表現(xiàn)為具有完整獨(dú)立計(jì)算機(jī)的所有資源。也就是,邏輯處理器是如下對(duì)象即在該對(duì)象上在分區(qū)中運(yùn)行的操作系統(tǒng)中的調(diào)遣器調(diào)遣線程;而虛擬處理器是由分區(qū)管理器調(diào)遣的。在操作于ST模式中的LPAR中,邏輯處理器與虛擬處理器之間的對(duì)應(yīng)是一對(duì)一的,每個(gè)虛擬處理器對(duì)應(yīng)一個(gè)邏輯處理器。在操作于SMT模式中的LPAR中,邏輯處理器與虛擬處理器之間的對(duì)應(yīng)是N對(duì)一的,其中N是虛擬處理器上支持的邏輯處理器的數(shù)目,也就是,每個(gè)虛擬處理器對(duì)應(yīng)N個(gè)邏輯處理器。
虛擬處理器122是由數(shù)據(jù)結(jié)構(gòu)和計(jì)算機(jī)程序指令組成的子系統(tǒng),該子系統(tǒng)實(shí)現(xiàn)處理器時(shí)間向邏輯分區(qū)的分配。物理處理器的共享池支持部分物理處理器(在時(shí)間片中)向邏輯分區(qū)的分配。在時(shí)間片中共享的這部分物理處理器稱作為‘虛擬處理器’。在共享處理池中保持的物理處理器在邏輯分區(qū)之間分享。在本說明書中的例子中,物理處理器是根據(jù)處理單位來共享,處理單位表示一個(gè)物理處理器的處理容量。將線程分配為在虛擬處理器上運(yùn)行通常是通過將該線程分配為在虛擬處理器的邏輯處理器上運(yùn)行來進(jìn)行的。在ST模式中,每個(gè)虛擬處理器具有一個(gè)邏輯處理器。然而,在SMT模式中,每個(gè)虛擬處理器具有兩個(gè)邏輯處理器。
圖1的分區(qū)管理器422是在邏輯分區(qū)之下運(yùn)行的系統(tǒng)軟件層。也就是,分區(qū)管理器422在邏輯分區(qū)與底層計(jì)算機(jī)硬件(包括物理處理器的物理計(jì)算機(jī)組件)之間運(yùn)行。分區(qū)管理器支持和實(shí)現(xiàn)在多個(gè)邏輯分區(qū)中建立和運(yùn)行多個(gè)操作系統(tǒng)和應(yīng)用。特別地,分區(qū)管理器支持用戶或系統(tǒng)管理員建立分區(qū)、虛擬處理器和邏輯處理器。正如支持多個(gè)邏輯分區(qū)的計(jì)算機(jī)中的操作系統(tǒng)內(nèi)核在邏輯處理器上調(diào)度和調(diào)遣線程一樣,分區(qū)管理器在物理處理器上調(diào)度和調(diào)遣虛擬處理器。因?yàn)檫壿嫹謪^(qū)中的操作系統(tǒng)常常用來運(yùn)行特定應(yīng)用或應(yīng)用集,所以使得分區(qū)管理器可以在單個(gè)計(jì)算機(jī)中運(yùn)行多個(gè)操作系統(tǒng)及其應(yīng)用,這減少了整體硬件成本。生產(chǎn)和測(cè)試系統(tǒng)可以在相同硬件中同時(shí)運(yùn)行。此外,利用支持多個(gè)邏輯分區(qū)的分區(qū)管理器,諸如Windows和Linux的不同操作系統(tǒng)可以共享相同的底層計(jì)算機(jī)硬件。分區(qū)管理器是有時(shí)稱作為“超級(jí)管理器”、“虛擬化管理器”或“虛擬機(jī)監(jiān)視器”的軟件類型。
在圖1的例子中,分區(qū)管理器422是具有硬件支持的計(jì)算機(jī)軟件模塊,該模塊包括計(jì)算機(jī)程序指令,這些指令能夠在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)使用的類型的內(nèi)核416而且在分區(qū)管理器中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)420。分區(qū)管理器422包括通用數(shù)據(jù)結(jié)構(gòu)420,該通用數(shù)據(jù)結(jié)構(gòu)的內(nèi)容指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源。通用數(shù)據(jù)結(jié)構(gòu)420通過使用全局?jǐn)?shù)據(jù)結(jié)構(gòu)426來實(shí)現(xiàn)。全局?jǐn)?shù)據(jù)結(jié)構(gòu)426是有時(shí)稱作為“設(shè)備樹”的一類數(shù)據(jù)結(jié)構(gòu),即在系統(tǒng)初始程序加載時(shí)間從非易失性存儲(chǔ)器中存儲(chǔ)的信息中加載的結(jié)構(gòu)。例如,在Unix的各種形式中,設(shè)備樹可以從存儲(chǔ)器路徑位置‘/設(shè)備’和‘/dev.’處的盤上存儲(chǔ)的信息中加載。在本例子中,全局?jǐn)?shù)據(jù)結(jié)構(gòu)426對(duì)于分區(qū)管理器中的內(nèi)核是全局可用的,而且指明了在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源,也就是,可用于在邏輯分區(qū)中運(yùn)行的應(yīng)用的計(jì)算機(jī)資源。全局?jǐn)?shù)據(jù)結(jié)構(gòu)426和通用數(shù)據(jù)結(jié)構(gòu)420的例子將在下面參照?qǐng)D7A和7B更詳細(xì)地加以說明。
在圖1的例子中,分區(qū)管理器422包括內(nèi)核416,該內(nèi)核如圖所示已經(jīng)從邏輯分區(qū)408中的操作系統(tǒng)154移動(dòng)415到分區(qū)管理器。內(nèi)核是操作系統(tǒng)的核心。內(nèi)核是有時(shí)也稱為“系統(tǒng)執(zhí)行程序”和“系統(tǒng)監(jiān)視器”的一個(gè)或多個(gè)特許模塊。內(nèi)核是負(fù)責(zé)為在應(yīng)用中和在其它操作系統(tǒng)組件中的執(zhí)行線程提供對(duì)計(jì)算機(jī)系統(tǒng)硬件的安全訪問的軟件,所述訪問包括對(duì)存儲(chǔ)器、處理容量、輸入/輸出資源等的訪問。內(nèi)核還調(diào)度構(gòu)成應(yīng)用程序以及操作系統(tǒng)進(jìn)程的執(zhí)行線程。內(nèi)核通常還提供對(duì)于進(jìn)程間通信和同步的服務(wù),諸如存儲(chǔ)器鎖、信號(hào)和信號(hào)量。內(nèi)核通常還提供硬件抽象(為某類所有設(shè)備所通用的指令集),用以向應(yīng)用和向操作系統(tǒng)的其它組件隱藏底層復(fù)雜性。硬件抽象組件又依賴于軟件驅(qū)動(dòng)器來提供為硬件設(shè)備的制造規(guī)范所特有的功能。簡(jiǎn)而言之,內(nèi)核提供了實(shí)現(xiàn)如下各項(xiàng)內(nèi)核服務(wù)●控制和調(diào)解對(duì)系統(tǒng)硬件的訪問;
●實(shí)現(xiàn)和支持基本抽象進(jìn)程、線程、文件、設(shè)備等;●分配和調(diào)度系統(tǒng)資源存儲(chǔ)器、處理器、盤、文件描述符、進(jìn)程描述符、線程描述符等;●加強(qiáng)系統(tǒng)資源的安全和保護(hù);以及●通過系統(tǒng)調(diào)用對(duì)用戶和應(yīng)用的服務(wù)請(qǐng)求做出響應(yīng)。
在圖1的例子中,內(nèi)核416根據(jù)本發(fā)明的實(shí)施例改進(jìn)為依賴于通用數(shù)據(jù)結(jié)構(gòu)420提供對(duì)邏輯分區(qū)的內(nèi)核服務(wù)。傳統(tǒng)內(nèi)核在引導(dǎo)時(shí)間加載它自己的設(shè)備樹,該設(shè)備樹指明了對(duì)于在分區(qū)中運(yùn)行的應(yīng)用和其它操作系統(tǒng)組件可用的所有系統(tǒng)硬件組件和其它資源,其中傳統(tǒng)內(nèi)核安裝在操作系統(tǒng)中。然而,內(nèi)核416不再位于單個(gè)分區(qū)中。內(nèi)核416已經(jīng)移動(dòng)到分區(qū)管理器空間,而且可以由使用同類操作系統(tǒng)和內(nèi)核的任意數(shù)目的邏輯分區(qū)使用。每個(gè)這樣的邏輯分區(qū)可以要求不同的計(jì)算機(jī)硬件補(bǔ)充(complement)。因此,分區(qū)管理器422為每個(gè)邏輯分區(qū)提供通用數(shù)據(jù)結(jié)構(gòu)420,該通用數(shù)據(jù)結(jié)構(gòu)指明了可用的并且分配用于每個(gè)邏輯分區(qū)的計(jì)算機(jī)硬件和其它資源,而且內(nèi)核416改進(jìn)為根據(jù)在用于邏輯分區(qū)的通用數(shù)據(jù)結(jié)構(gòu)中為該特定分區(qū)指明的硬件和資源來提供內(nèi)核服務(wù)。
在圖1的例子中,應(yīng)用412、邏輯分區(qū)408、邏輯處理器106、操作系統(tǒng)154、分區(qū)管理器422、虛擬處理器122、內(nèi)核416等計(jì)算機(jī)軟件組件示出為設(shè)置于RAM 168中。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到這樣的軟件的許多組件也可以存儲(chǔ)于非易失性存儲(chǔ)器166中。圖1的計(jì)算機(jī)152包括通過系統(tǒng)總線160耦合到處理器156和計(jì)算機(jī)152的其它部件的非易失性計(jì)算機(jī)存儲(chǔ)器166。非易失性計(jì)算機(jī)存儲(chǔ)器166可以實(shí)施為硬盤驅(qū)動(dòng)器170、光盤驅(qū)動(dòng)器172、電可擦可編程只讀存儲(chǔ)器空間(所謂“EEPROM”或“閃”存器)174、RAM驅(qū)動(dòng)器(未示出)或本領(lǐng)域技術(shù)人員將想到的任意其它種計(jì)算機(jī)存儲(chǔ)器。
圖1的示例性計(jì)算機(jī)包括一個(gè)或多個(gè)輸入/輸出接口適配器178。計(jì)算機(jī)中的輸入/輸出接口適配器通過例如用于控制對(duì)顯示設(shè)備180的輸出以及來自用戶輸入設(shè)備181的用戶輸入的軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件來實(shí)現(xiàn)面向用戶的輸入/輸出,所述顯示設(shè)備例如為計(jì)算機(jī)顯示器屏幕,而所述用戶輸入設(shè)備例如為鍵盤和鼠標(biāo)。
圖1的示例性計(jì)算機(jī)152包括用于實(shí)現(xiàn)與其它計(jì)算機(jī)182的數(shù)據(jù)通信184的通信適配器167。這樣的數(shù)據(jù)通信例如可以通過諸如IP網(wǎng)絡(luò)的數(shù)據(jù)通信網(wǎng)絡(luò)和以本領(lǐng)域技術(shù)人員將想到的其它方式來進(jìn)行。通信適配器實(shí)現(xiàn)數(shù)據(jù)通信的硬件級(jí),通過該硬件級(jí),一個(gè)計(jì)算機(jī)直接或經(jīng)過網(wǎng)絡(luò)發(fā)送數(shù)據(jù)通信到另一計(jì)算機(jī)。根據(jù)本發(fā)明的實(shí)施例的用于確定目的地可用性的通信適配器的例子包括用于有線撥號(hào)通信的調(diào)制解調(diào)器、用于有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802.3)適配器和用于無(wú)線網(wǎng)絡(luò)通信的802.11b適配器。
為了進(jìn)一步說明,圖2示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性系統(tǒng)的功能框圖。圖2的系統(tǒng)包括兩個(gè)邏輯分區(qū),即處于ST模式的一個(gè)邏輯分區(qū)408和處于SMT模式的一個(gè)邏輯分區(qū)410。
圖2的系統(tǒng)包括六個(gè)邏輯處理器,即用于邏輯分區(qū)408的兩個(gè)邏輯處理器106和108,和用于邏輯分區(qū)410的四個(gè)邏輯處理器110、112、114和116。圖2的系統(tǒng)還包括四個(gè)虛擬處理器,即分配給邏輯分區(qū)408的兩個(gè)虛擬處理器122和124,和分配給邏輯分區(qū)410的兩個(gè)虛擬處理器126和128。圖2的系統(tǒng)還包括三個(gè)物理處理器156、130和132。在本例中,三個(gè)物理處理器156、130和132的處理容量以如下方式分?jǐn)偨o邏輯分區(qū)●物理處理器156的所有處理容量完全地分配給虛擬處理器122,使得邏輯處理器106具有整個(gè)物理處理器156為它所用。
●物理處理器130的一半處理容量分配給虛擬處理器124,使得邏輯處理器108具有物理處理器130的一半在時(shí)間片中可為它所用。
●物理處理器130的一半處理容量分配給虛擬處理器126。虛擬處理器126分配給在SMT模式中運(yùn)行的邏輯分區(qū)410,兩個(gè)邏輯處理器110和112用于虛擬處理器126。邏輯處理器110和邏輯處理器112各自具有物理處理器130的四分之一處理容量在時(shí)間片中可為它所用。
●物理處理器132的所有處理容量分配給虛擬處理器128。虛擬處理器128分配給在SMT模式中運(yùn)行的邏輯分區(qū)410,兩個(gè)邏輯處理器114和116用于虛擬處理器128。邏輯處理器114和邏輯處理器116各自具有物理處理器132的一半處理容量在時(shí)間片中可為它所用。
圖2的系統(tǒng)包括分區(qū)管理器422。在圖2的例子中,分區(qū)管理器422包括根據(jù)本發(fā)明的實(shí)施例的能在邏輯分區(qū)之間分享操作系統(tǒng)內(nèi)核的計(jì)算機(jī)程序指令,這些指令包括在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)408和410使用的類型的內(nèi)核416和在分區(qū)管理器中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)420和421。
圖2的系統(tǒng)包括兩個(gè)操作系統(tǒng)154和155,分別在邏輯分區(qū)408和邏輯分區(qū)410中。在本例中,可由應(yīng)用或用戶直接訪問的操作系統(tǒng)特征保留在邏輯分區(qū)中。這樣的特征包括對(duì)于圖形用戶接口(‘GUI’)190和191的支持。這樣的特征也包括對(duì)外殼(shell)192和193的支持,這些外殼例如提供對(duì)操作系統(tǒng)實(shí)用程序和庫(kù)功能的命令行接口。可由應(yīng)用或用戶直接訪問的操作系統(tǒng)特征也包括系統(tǒng)實(shí)用程序194和195。系統(tǒng)實(shí)用程序包括通??赏ㄟ^GUI或外殼訪問的系統(tǒng)管理用程序,諸如,例如用以創(chuàng)建、打開或刪除文件的程序、用以創(chuàng)建或?qū)Ш轿募到y(tǒng)目錄的程序、用以讀取和設(shè)置環(huán)境變量的程序、搜尋文件內(nèi)的文本的程序等。
可由應(yīng)用或用戶直接訪問的操作系統(tǒng)特征還包括系統(tǒng)調(diào)用庫(kù)196和197。系統(tǒng)調(diào)用庫(kù)顯露(expose)應(yīng)用編程接口(“API”),這些接口通過到內(nèi)核416內(nèi)部的特許軟件例程中的調(diào)用來允許調(diào)用程序獲得對(duì)依賴于硬件的服務(wù)和其它受保護(hù)的系統(tǒng)資源的訪問。對(duì)內(nèi)核空間中特許代碼的這樣的調(diào)用是通過從系統(tǒng)調(diào)用庫(kù)的功能之內(nèi)調(diào)用的中斷或軟件陷阱(trap)來實(shí)現(xiàn)。對(duì)系統(tǒng)調(diào)用庫(kù)之內(nèi)的功能調(diào)用的訪問通常是通過將一個(gè)或多個(gè)系統(tǒng)調(diào)用庫(kù)編譯到應(yīng)用或?qū)嵱贸绦蛑谢蛘咴谶\(yùn)行時(shí)間動(dòng)態(tài)可加載的另一庫(kù)中來實(shí)現(xiàn)。
邏輯分區(qū)408和410每一個(gè)共享相同的內(nèi)核416,該內(nèi)核從它在邏輯分區(qū)中的傳統(tǒng)位置移走并且安裝在分區(qū)管理器空間中,在這里它可用于要求同類內(nèi)核的任何邏輯分區(qū)。內(nèi)核416通過使用通用數(shù)據(jù)結(jié)構(gòu)420,421對(duì)邏輯分區(qū)提供內(nèi)核服務(wù),每個(gè)邏輯分區(qū)可以要求不同的計(jì)算機(jī)資源,這些通用數(shù)據(jù)結(jié)構(gòu)指明了分配給使用內(nèi)核的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源。在本例中,內(nèi)核416使用兩個(gè)這樣的通用數(shù)據(jù)結(jié)構(gòu)420和421,分別用于邏輯分區(qū)408和410。
在使用通用數(shù)據(jù)結(jié)構(gòu)來對(duì)邏輯分區(qū)提供內(nèi)核服務(wù)時(shí),內(nèi)核416實(shí)現(xiàn)間接的存儲(chǔ)器尋址以區(qū)分通用數(shù)據(jù)結(jié)構(gòu)中的規(guī)范。這樣的間接尋址是利用指針來實(shí)現(xiàn)的,這些指針是對(duì)通用數(shù)據(jù)結(jié)構(gòu)本身的間接地址參考。以此方式,當(dāng)分區(qū)管理器將邏輯分區(qū)的邏輯處理器調(diào)遣到運(yùn)行狀態(tài)時(shí),分區(qū)管理器對(duì)內(nèi)核提供指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)的計(jì)算機(jī)資源。在響應(yīng)于來自該分區(qū)中用戶級(jí)軟件的系統(tǒng)調(diào)用而提供內(nèi)核服務(wù)時(shí),內(nèi)核使用來自指針?biāo)鶎ぶ返耐ㄓ脭?shù)據(jù)結(jié)構(gòu)中的用于該分區(qū)的資源規(guī)范。邏輯處理器是通過分區(qū)管理器調(diào)用它的底層虛擬處理器來調(diào)遣的。在圖2的例子中,調(diào)遣虛擬處理器122就是調(diào)遣邏輯處理器106。然而,調(diào)遣虛擬處理器126是調(diào)遣邏輯處理器110和112,因?yàn)樵赟MT模式中運(yùn)行的邏輯分區(qū)410對(duì)于每個(gè)虛擬處理器具有兩個(gè)邏輯處理器。
針對(duì)更具體的例子當(dāng)分區(qū)管理器422將邏輯分區(qū)408的邏輯處理器106調(diào)遣到運(yùn)行狀態(tài)時(shí),內(nèi)核416可以通過使用通用數(shù)據(jù)結(jié)構(gòu)420和421對(duì)邏輯分區(qū)提供內(nèi)核服務(wù),這些通用數(shù)據(jù)結(jié)構(gòu)指明了分配給使用該內(nèi)核的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源。分區(qū)管理器422對(duì)內(nèi)核416提供指向通用數(shù)據(jù)結(jié)構(gòu)420的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)408的計(jì)算機(jī)資源。指針510包含通用數(shù)據(jù)結(jié)構(gòu)420的作為開始地址的地址,而且在響應(yīng)于來自該邏輯分區(qū)408中用戶級(jí)軟件的系統(tǒng)調(diào)用而提供內(nèi)核服務(wù)的同時(shí),內(nèi)核使用來自指針510所尋址的通用數(shù)據(jù)結(jié)構(gòu)420中的用于該分區(qū)的資源規(guī)范。
類似地,當(dāng)分區(qū)管理器422將邏輯分區(qū)410的邏輯處理器110和112調(diào)遣到運(yùn)行狀態(tài)時(shí),分區(qū)管理器422對(duì)內(nèi)核416提供指向通用數(shù)據(jù)結(jié)構(gòu)412的指針510,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)410的計(jì)算機(jī)資源。指針510包含通用數(shù)據(jù)結(jié)構(gòu)421的作為開始地址的地址,而且在響應(yīng)于來自該邏輯分區(qū)410中用戶級(jí)軟件的系統(tǒng)調(diào)用而提供內(nèi)核服務(wù)的同時(shí),內(nèi)核使用來自指針510所尋址的通用數(shù)據(jù)結(jié)構(gòu)421中的用于該分區(qū)的資源規(guī)范。
在每個(gè)情況下,為了將內(nèi)核服務(wù)重定向到用于邏輯分區(qū)的不同資源規(guī)范,在調(diào)遣邏輯分區(qū)的邏輯處理器時(shí),分區(qū)管理器422僅需要維持可為內(nèi)核所用的指針地址。如果新調(diào)遣的邏輯處理器來自與它的緊接前任相同的邏輯分區(qū),則指針地址就已經(jīng)正確地設(shè)置。如果新調(diào)遣的邏輯處理器來自與它的緊接前任的邏輯分區(qū)不同的邏輯分區(qū),則指針地址重置為指向通用數(shù)據(jù)結(jié)構(gòu),該通用數(shù)據(jù)結(jié)構(gòu)指明了用于新調(diào)用的邏輯處理器的邏輯分區(qū)的計(jì)算機(jī)資源。
為了進(jìn)一步說明,圖3A示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性線程狀態(tài)的狀態(tài)圖。圖3A中的泡狀區(qū)(bubble)表示線程狀態(tài)。泡狀區(qū)之間的箭頭代表由內(nèi)核功能實(shí)現(xiàn)的狀態(tài)轉(zhuǎn)變。圖3A中代表的線程狀態(tài)包括創(chuàng)建狀態(tài)302、就緒狀態(tài)304、運(yùn)行狀態(tài)306、等待狀態(tài)308和停止?fàn)顟B(tài)310。當(dāng)線程在另一線程的請(qǐng)求下首次創(chuàng)建時(shí),該線程暫時(shí)以創(chuàng)建狀態(tài)302駐留,以賦予內(nèi)核為線程收集信息和資源的時(shí)間。一旦內(nèi)核將線程預(yù)備為運(yùn)行,就“啟動(dòng)”303,也就是移到就緒狀態(tài)304。
就緒狀態(tài)304中的線程在就緒隊(duì)列(未示出)中排隊(duì)等待運(yùn)行機(jī)會(huì)。確定哪個(gè)就緒線程接下來將運(yùn)行的進(jìn)程稱為“調(diào)度”。有許多調(diào)度算法,F(xiàn)IFO、輪替(Round Robin)、優(yōu)先級(jí)等,而且它們中的任意算法可以使用在根據(jù)本發(fā)明的實(shí)施例的共享內(nèi)核的系統(tǒng)中。用于將線程從就緒狀態(tài)移到運(yùn)行狀態(tài)的內(nèi)核功能稱為調(diào)遣312。事實(shí)上,“調(diào)遣的”、“運(yùn)行中”和“在運(yùn)行狀態(tài)”大體上同義。
當(dāng)線程被調(diào)遣也就是在運(yùn)行狀態(tài)306中時(shí),該線程當(dāng)前分配為在邏輯處理器上執(zhí)行。線程是否在物理上執(zhí)行依賴于邏輯處理器的虛擬處理器目前是否通過它的分區(qū)管理器來調(diào)遣,也就是目前是否在物理處理器上的時(shí)間片中執(zhí)行。用于邏輯處理器的就緒隊(duì)列可以包含在就緒狀態(tài)中等待在邏輯處理器上運(yùn)行的一個(gè)、兩個(gè)或更多線程。每次僅一個(gè)線程在邏輯處理器上置于運(yùn)行狀態(tài)中。
通過搶占或超時(shí)314,線程能夠失去對(duì)邏輯處理器的占用,即從運(yùn)行狀態(tài)移動(dòng)到就緒狀態(tài)。當(dāng)具有較高優(yōu)先級(jí)的線程進(jìn)入用于邏輯處理器的就緒隊(duì)列時(shí),搶占線程。如果線程在它的整個(gè)時(shí)間片中保留對(duì)邏輯處理器的占用,也就是留在運(yùn)行狀態(tài)中,則該線程超時(shí)。
線程也可以通過發(fā)出系統(tǒng)調(diào)用316而且進(jìn)入等待狀態(tài)308以等待系統(tǒng)調(diào)用的完成來離開運(yùn)行狀態(tài)306。這樣的系統(tǒng)調(diào)用可以是對(duì)于由內(nèi)核提供的任何服務(wù)的請(qǐng)求,包括例如用以在某時(shí)間段休眠或等待的人為請(qǐng)求、對(duì)于從盤中讀取數(shù)據(jù)或向盤中寫入數(shù)據(jù)的請(qǐng)求、對(duì)于從輸入/輸出資源讀取或向輸入/輸出資源寫入數(shù)據(jù)的請(qǐng)求等。
為了進(jìn)一步說明,圖3B示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在計(jì)算機(jī)系統(tǒng)中調(diào)度虛擬處理器的示例性虛擬處理器狀態(tài)的狀態(tài)圖。圖3B中的泡狀區(qū)表示虛擬處理器狀態(tài)。泡狀區(qū)之間的箭頭表示由分區(qū)管理器的功能實(shí)現(xiàn)的狀態(tài)轉(zhuǎn)變。圖3B中表示的虛擬處理器狀態(tài)包括創(chuàng)建狀態(tài)322、就緒狀態(tài)324、運(yùn)行狀態(tài)326、等待狀態(tài)328和停止?fàn)顟B(tài)330。當(dāng)虛擬處理器通常在引導(dǎo)時(shí)間首次創(chuàng)建時(shí),該虛擬處理器暫時(shí)駐留于創(chuàng)建狀態(tài)322以賦予分區(qū)管理器為虛擬處理器收集信息和資源的時(shí)間。一旦分區(qū)管理器將虛擬處理器預(yù)備為運(yùn)行,就“啟動(dòng)”232虛擬處理器,也就是移到就緒狀態(tài)324。
就緒狀態(tài)324中的虛擬處理器在就緒隊(duì)列(未示出)中排隊(duì)等待運(yùn)行機(jī)會(huì)。分區(qū)管理器根據(jù)輪替、優(yōu)先級(jí)等一個(gè)或多個(gè)調(diào)度算法來調(diào)度虛擬處理器運(yùn)行。分區(qū)管理器將來自就緒隊(duì)列的單個(gè)虛擬處理器從就緒狀態(tài)調(diào)遣322到運(yùn)行狀態(tài),該單個(gè)虛擬處理器當(dāng)前最有資格實(shí)際占用對(duì)其分配虛擬處理器的物理處理器。每次僅一個(gè)虛擬處理器在物理處理器上置于運(yùn)行狀態(tài)。
通過搶占或通過超時(shí)334,虛擬處理器能夠失去對(duì)物理處理器的占用而且從運(yùn)行狀態(tài)移動(dòng)到就緒狀態(tài)。當(dāng)具有較高優(yōu)先級(jí)的虛擬處理器進(jìn)入用于物理處理器的就緒隊(duì)列時(shí),搶占虛擬處理器。如果虛擬處理器在它的整個(gè)時(shí)間片中保留對(duì)物理處理器的占用,也就是留在運(yùn)行狀態(tài),則該虛擬處理器超時(shí)。
虛擬處理器也可以通過發(fā)出系統(tǒng)調(diào)用而且進(jìn)入等待狀態(tài)328以等待系統(tǒng)調(diào)用的完成來離開運(yùn)行狀態(tài)326。這樣的系統(tǒng)調(diào)用包括用以在某時(shí)間段休眠或等待的人為請(qǐng)求、對(duì)于從盤讀或向盤寫數(shù)據(jù)的請(qǐng)求、對(duì)于從輸入/輸出資源讀取或向輸入/輸出資源寫入數(shù)據(jù)的請(qǐng)求等。例如,當(dāng)在虛擬處理器上運(yùn)行(也就是在邏輯分區(qū)的邏輯處理器上運(yùn)行)的線程發(fā)出系統(tǒng)調(diào)用以等待鍵盤輸入或從盤讀文件時(shí),虛擬處理器可以確定虛擬處理器在鍵擊到達(dá)或者盤讀取完成之前無(wú)需僅僅繼續(xù)占用物理處理器卻什么也不做。在這一環(huán)境下,虛擬處理器可以置自身于休眠336一時(shí)間段,例如十分之一秒。將虛擬處理器從等待狀態(tài)返回到就緒狀態(tài)稱作為喚醒338虛擬處理器。
為了進(jìn)一步說明,圖4示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的又一個(gè)示例性系統(tǒng)的功能框圖。為便于說明,圖1的例子僅包括一個(gè)邏輯分區(qū)。為便于說明,圖2的例子僅包括一個(gè)共享內(nèi)核。然而,圖4的系統(tǒng)包括在其之間共享三個(gè)共享內(nèi)核的九個(gè)邏輯分區(qū),進(jìn)一步說明根據(jù)本發(fā)明的實(shí)施例的用于共享內(nèi)核的系統(tǒng)可以在任意數(shù)目的邏輯分區(qū)之間共享任意數(shù)目的內(nèi)核這一事實(shí)。圖4的系統(tǒng)包括每個(gè)共享內(nèi)核416的邏輯分區(qū)408和410。圖4的系統(tǒng)還包括,每個(gè)共享內(nèi)核430的邏輯分區(qū)434、436和438。圖4的系統(tǒng)也包括每個(gè)共享內(nèi)核432的邏輯分區(qū)440、442、444和446。
在圖4的系統(tǒng)中,分區(qū)管理器422具有中斷處理器488,而每個(gè)內(nèi)核416、430和432具有中斷處理器450、452和454。中斷處理器是受保護(hù)的軟件例程,該例程截獲系統(tǒng)調(diào)用而且根據(jù)截獲類型將它們傳遞到子例程。請(qǐng)求盤I/O服務(wù)的中斷傳遞到盤驅(qū)動(dòng)器器。從鍵盤請(qǐng)求輸入的中斷傳遞到鍵盤驅(qū)動(dòng)器。依此類推。中斷處理器對(duì)系統(tǒng)調(diào)用的截獲由硬件支持,要求其中存儲(chǔ)有中斷處理器地址的受保護(hù)的寄存器或存儲(chǔ)器位置——受保護(hù)是為了只有特許代碼而不是普通用戶代碼能夠許可對(duì)受保護(hù)的計(jì)算機(jī)資源的訪問。然而,在圖4的系統(tǒng)中,由于共享內(nèi)核不再嵌入于單個(gè)邏輯分區(qū)的操作系統(tǒng)中,所以在任何特定系統(tǒng)調(diào)用與特定內(nèi)核之間沒有固有的一對(duì)一關(guān)系。因此圖4的系統(tǒng)配置為通過它的分區(qū)管理器422將用于所有中斷處理的受保護(hù)的寄存器或存儲(chǔ)器變量設(shè)置成分區(qū)管理器的中斷處理器448的起始地址來將所有系統(tǒng)調(diào)用456、458和460矢量化。分區(qū)管理器的中斷處理器448然后將系統(tǒng)調(diào)用傳遞462、464和466到內(nèi)核的中斷處理器,先通過使用如例如在表1中說明的數(shù)據(jù)結(jié)構(gòu)來確定該中斷要傳遞到的哪個(gè)內(nèi)核
表1的每個(gè)記錄關(guān)聯(lián)了邏輯分區(qū)標(biāo)識(shí)符、內(nèi)核標(biāo)識(shí)符和指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給特定邏輯分區(qū)的具體資源。分區(qū)管理器的中斷處理器448在截獲來自邏輯分區(qū)的系統(tǒng)調(diào)用時(shí)可以通過使用邏輯分區(qū)標(biāo)識(shí)符在這樣的表中查找將系統(tǒng)調(diào)用傳遞到的內(nèi)核的標(biāo)識(shí)。
正如它不僅關(guān)聯(lián)了內(nèi)核標(biāo)識(shí)符而且關(guān)聯(lián)了指向用于邏輯分區(qū)的通用數(shù)據(jù)結(jié)構(gòu),例如表1的結(jié)構(gòu)可以實(shí)現(xiàn)雙重任務(wù)。當(dāng)分配管理器將邏輯分區(qū)的邏輯處理器調(diào)遣到運(yùn)行狀態(tài)而且對(duì)共享內(nèi)核提供指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)的計(jì)算機(jī)資源時(shí),分區(qū)管理器可以使用邏輯分區(qū)的標(biāo)識(shí)來確定將哪個(gè)指針值提供給內(nèi)核。
為了進(jìn)一步說明,圖5示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核416的示例性方法的流程圖,該方法包括在分區(qū)管理器422中安裝402由多個(gè)邏輯分區(qū)408和410使用的類型的內(nèi)核416。安裝這樣的內(nèi)核可以通過使用分區(qū)管理器的子例程來進(jìn)行,例如這些子例程在盤驅(qū)動(dòng)器上安裝具有其引導(dǎo)扇區(qū)的內(nèi)核,使得可以在用于內(nèi)核的引導(dǎo)時(shí)間訪問引導(dǎo)扇區(qū)。這樣的子例程通常是由系統(tǒng)管理員或其它授權(quán)用戶通過由分區(qū)管理器經(jīng)過主分區(qū)而顯的GUI工具或命令行接口或者通過直接耦合到分區(qū)管理器的命令控制臺(tái)來訪問。
圖5的方法還包括在分區(qū)管理器422中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)420。安裝通用數(shù)據(jù)結(jié)構(gòu)可以通過使用為此目的而改進(jìn)的分區(qū)管理器的子例程來進(jìn)行。分區(qū)管理器通常提供用于創(chuàng)建和維持邏輯分區(qū)的子例程。這樣的子例程根據(jù)本發(fā)明的實(shí)施例改進(jìn)為包括這樣的功能,即這些功能創(chuàng)建通用數(shù)據(jù)結(jié)構(gòu)而且借助如表1中以及圖8和9中的表514所示的邏輯分區(qū)標(biāo)識(shí)符將指針關(guān)聯(lián)到通用數(shù)據(jù)結(jié)構(gòu)。這樣的子例程通常是由系統(tǒng)管理員或其它授權(quán)用戶通過由分區(qū)管理器經(jīng)過主分區(qū)而顯的GUI工具或命令行接口或者通過直接耦合到分區(qū)管理器的命令控制臺(tái)來訪問。
圖5的方法還包括由內(nèi)核416依賴于通用數(shù)據(jù)結(jié)構(gòu)向邏輯分區(qū)提供406內(nèi)核服務(wù)。傳統(tǒng)內(nèi)核在內(nèi)核本身之內(nèi)維護(hù)指明了分配給分區(qū)的計(jì)算機(jī)資源的數(shù)據(jù)結(jié)構(gòu),內(nèi)核在該分區(qū)中作為操作系統(tǒng)的一部分來運(yùn)行。當(dāng)內(nèi)核根據(jù)本發(fā)明的實(shí)施例改進(jìn)為移到它的操作系統(tǒng)以外而且在分區(qū)之間共享時(shí),該內(nèi)核就改型為從在分區(qū)管理器空間中的內(nèi)核以外建立和維持的通用數(shù)據(jù)結(jié)構(gòu)訪問與用于分區(qū)的計(jì)算機(jī)資源有關(guān)的信息。來自在邏輯分區(qū)中運(yùn)行的軟件應(yīng)用412和414的對(duì)共享內(nèi)核416的系統(tǒng)調(diào)用通常依賴于由內(nèi)核保護(hù)和管理的計(jì)算機(jī)資源來請(qǐng)求對(duì)服務(wù)的訪問。這樣的共享內(nèi)核在響應(yīng)于來自在邏輯分區(qū)中運(yùn)行的軟件的系統(tǒng)調(diào)用時(shí)從通用數(shù)據(jù)結(jié)構(gòu)420中訪問與用于分區(qū)的計(jì)算機(jī)資源有關(guān)的所需信息,這些通用數(shù)據(jù)結(jié)構(gòu)的內(nèi)容指明了分配用于該分區(qū)的計(jì)算機(jī)硬件和其它資源。
為了進(jìn)一步說明,圖6示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核416的又一個(gè)示例性方法的流程圖。圖6的方法類似于圖5的方法。也就是,圖6的方法包括以下步驟在分區(qū)管理器422中安裝402由多個(gè)邏輯分區(qū)408和410使用的類型的內(nèi)核416;在分區(qū)管理器422中安裝404通用數(shù)據(jù)結(jié)構(gòu)420,這些通用數(shù)據(jù)結(jié)構(gòu)指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源;以及依賴于通用數(shù)據(jù)結(jié)構(gòu)來提供406內(nèi)核服務(wù),所有這些步驟大體上與上面參照?qǐng)D5的方法所述的步驟一樣地操作。
然而,圖6的方法還包括在整個(gè)計(jì)算機(jī)系統(tǒng)的初始程序加載時(shí),在對(duì)于分區(qū)管理器中的內(nèi)核全局可用的數(shù)據(jù)結(jié)構(gòu)426中,指明在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源。初始程序加載可以出現(xiàn)在功率初始地施加到整個(gè)計(jì)算機(jī)系統(tǒng)時(shí),或者初始程序加載可以出現(xiàn)在整個(gè)系統(tǒng)的重置或熱重啟時(shí)。其區(qū)別在于初始程序加載是整個(gè)系統(tǒng)(分區(qū)管理器和所有現(xiàn)用邏輯分區(qū))的重新加載,而不是此類邏輯分區(qū)本身的激活。在本說明書中,調(diào)動(dòng)(bring up)整個(gè)系統(tǒng)稱作為‘初始程序加載’,而激活邏輯分區(qū)稱作為“引導(dǎo)”邏輯分區(qū)。
為了進(jìn)一步說明,圖7A示出了可全局地為內(nèi)核所用的數(shù)據(jù)結(jié)構(gòu)的示意圖,該數(shù)據(jù)結(jié)構(gòu)指明了在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源。在圖7A的數(shù)據(jù)結(jié)構(gòu)中指明的計(jì)算機(jī)資源包括盤驅(qū)動(dòng)器、顯示器適配器、IDE控制器、1394或‘火線’控制器、鍵盤、鼠標(biāo)、調(diào)制解調(diào)器、監(jiān)視器等。圖7A的數(shù)據(jù)結(jié)構(gòu)是有時(shí)稱作為‘設(shè)備樹’的一類結(jié)構(gòu),即在系統(tǒng)初始程序加載時(shí)間從非易失性存儲(chǔ)器中存儲(chǔ)的信息中加載的結(jié)構(gòu)。例如,在各種Unix形式中,設(shè)備樹可以從路徑位置‘/設(shè)備’和‘/dev.’處的盤上存儲(chǔ)的信息中加載。使這樣的結(jié)構(gòu)對(duì)于根據(jù)本發(fā)明的實(shí)施例的共享內(nèi)核的系統(tǒng)中的分區(qū)管理器中的內(nèi)核而言是全局可用的,而且該結(jié)構(gòu)指明了在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源,也就是,可用于在邏輯分區(qū)中運(yùn)行應(yīng)用和其它軟件的計(jì)算機(jī)資源。
圖7A的數(shù)據(jù)結(jié)構(gòu)被描述為樹結(jié)構(gòu),但是這僅是為了說明而不是限制本發(fā)明。指明在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源的數(shù)據(jù)結(jié)構(gòu)例如可以實(shí)現(xiàn)為C型結(jié)構(gòu)
struct{char DiskDrives[256];char DisplayAdapters[256];char IDE_Controllers[256];char IEEE_1394_Controllers[256];char Keyboards[256];char MiceAndOtherPointingDevices[256];char Monitors[256];char NetworkAdapters[256];…}Resources-SystemGlobalStructure;指明在計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源的數(shù)據(jù)結(jié)構(gòu)可以實(shí)現(xiàn)為諸如C型結(jié)構(gòu)、數(shù)組、鏈接列表和表以及本領(lǐng)域技術(shù)人員將想到的其它種類的結(jié)構(gòu)。
此外,在圖6的方法中,安裝404通用數(shù)據(jù)結(jié)構(gòu)還包括依賴于全局地可為分區(qū)管理器的所有內(nèi)核可用的資源規(guī)范426,由內(nèi)核在用于邏輯分區(qū)的引導(dǎo)時(shí)間在通用數(shù)據(jù)結(jié)構(gòu)中指明428分配用于所引導(dǎo)的邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)資源。如上所述,全局地可為分區(qū)管理器的所有內(nèi)核所用的資源規(guī)范426是在對(duì)于內(nèi)核全局可用的數(shù)據(jù)結(jié)構(gòu)中提供的,該數(shù)據(jù)結(jié)構(gòu)用于指明在計(jì)算機(jī)系統(tǒng)上可用的計(jì)算機(jī)資源。
指明428分配用于所引導(dǎo)的邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)資源可以通過從全局?jǐn)?shù)據(jù)結(jié)構(gòu)中提取在表示邏輯分區(qū)的數(shù)據(jù)結(jié)構(gòu)中識(shí)別的資源規(guī)范來進(jìn)行。當(dāng)通過由分區(qū)管理器經(jīng)過主分區(qū)而顯的GUI工具或命令行接口或者通過直接耦合到分區(qū)管理器的命令控制臺(tái)來限定每個(gè)邏輯分區(qū)時(shí),表示每個(gè)邏輯分區(qū)的數(shù)據(jù)是由系統(tǒng)管理員或其它授權(quán)用戶創(chuàng)建。在本例中,內(nèi)核的引導(dǎo)例程改進(jìn)為通過以下步驟來指明428分配用于所引導(dǎo)的邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)資源通過在諸如圖7A中所示那樣的全局?jǐn)?shù)據(jù)結(jié)構(gòu)中提取在表示邏輯分區(qū)的數(shù)據(jù)結(jié)構(gòu)中識(shí)別的資源規(guī)范,并且將資源規(guī)范安裝在用于邏輯分區(qū)的通用數(shù)據(jù)結(jié)構(gòu),諸如圖7B中所示的通用數(shù)據(jù)結(jié)構(gòu)中。
為了進(jìn)一步說明,圖7B示出了指明分配給邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)的示意圖。類似于圖7A的結(jié)構(gòu),圖7B的數(shù)據(jù)結(jié)構(gòu)是有時(shí)稱作為‘設(shè)備樹’的一類數(shù)據(jù)結(jié)構(gòu),即在內(nèi)核引導(dǎo)時(shí)間從非易失性存儲(chǔ)器中存儲(chǔ)的信息中加載的結(jié)構(gòu)。例如,在各種Unix形式中,設(shè)備樹可以從路徑位置‘/設(shè)備’和‘/dev.’處的盤上存儲(chǔ)的信息中加載。
圖7B的數(shù)據(jù)結(jié)構(gòu)被描述為樹結(jié)構(gòu),但是這僅僅是為了說明而不是限制本發(fā)明。指明分配給邏輯分區(qū)的計(jì)算機(jī)資源的數(shù)據(jù)結(jié)構(gòu)例如可以實(shí)現(xiàn)為C型結(jié)構(gòu)struct{char DiskDrives[256];char DisplayAdapters[256];char IDE_Controllers[256];char IEEE_1394_Controllers[256];char Keyboards[256];char MiceAndOtherPointingDevices[256];char Monitors[256];char NetworkAdapters[256];…}Resources-PartitionGenericStructure;在每個(gè)結(jié)構(gòu)為了對(duì)分區(qū)管理器的所有共享內(nèi)核的數(shù)據(jù)訪問而提供相同接口這一意義上,這樣的結(jié)構(gòu)是通用的。如果將緊鄰的上部的C型結(jié)構(gòu)看作為指明了分配給邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)的例子,則每個(gè)內(nèi)核可以擁有如下創(chuàng)建的指向這樣的結(jié)構(gòu)的指針struct*structPtr=&Resources-PartitionGenericStructure;然后,每個(gè)內(nèi)核可以例如通過如下來訪問用于邏輯分區(qū)的顯示器適配器規(guī)范
char*displayAdapterInfo=strcpy(structPtr->DisplayAdapters);而且,每個(gè)內(nèi)核可以例如通過如下來訪問用于邏輯分區(qū)的盤驅(qū)動(dòng)器規(guī)范strcpy(diskDriveInfo,structPtr->DiskDrives);而且,每個(gè)內(nèi)核可以例如通過如下來訪問用于邏輯分區(qū)的具有集成驅(qū)動(dòng)電子設(shè)備(‘integrated drive electronic IDE’)的盤驅(qū)動(dòng)器的規(guī)范strcpy(IDE_Info,structPtr->IDE_Controllers);依此類推,對(duì)同類信息的所有參考都以相同的句法來實(shí)現(xiàn),盡管通過參考而取回的信息將因邏輯分區(qū)而各異。從邏輯分區(qū)到邏輯分區(qū)的變動(dòng)是通過改變structPtr的值來實(shí)現(xiàn)的。structPtr的值對(duì)于每個(gè)邏輯分區(qū)都是不同的,因?yàn)閟tructPtr的值是由分區(qū)管理器設(shè)置成指向用于每個(gè)邏輯分區(qū)的不同通用數(shù)據(jù)結(jié)構(gòu)。在本例中,使用名為‘structPtr’的指向通用數(shù)據(jù)結(jié)構(gòu)的指針,每當(dāng)分區(qū)管理器調(diào)遣了使用內(nèi)核的邏輯分區(qū)的邏輯處理器時(shí),就由分區(qū)管理器檢查用于共享內(nèi)核的structPtr的值。
除了實(shí)現(xiàn)為C型結(jié)構(gòu)之外,指明分配給邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)例如可以實(shí)現(xiàn)為數(shù)組,該數(shù)組具有對(duì)子數(shù)組的標(biāo)準(zhǔn)化偏移,每個(gè)子數(shù)組包含分配給邏輯分區(qū)的資源類型的規(guī)范。指明分配給邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)可以實(shí)現(xiàn)為C型結(jié)構(gòu)、數(shù)組、鏈接列表、表以及本領(lǐng)域技術(shù)人員將想到的其它種類的結(jié)構(gòu)。
為了進(jìn)一步說明,圖8示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核416的又一個(gè)示例性方法的流程圖。圖8的方法類似于圖5的方法。也就是,圖8的方法包括以下步驟在分區(qū)管理器422中安裝402由多個(gè)邏輯分區(qū)408和410使用的類型的內(nèi)核416;在分區(qū)管理器422中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu)420;以及依賴于通用數(shù)據(jù)結(jié)構(gòu)來提供406內(nèi)核服務(wù),所有這些步驟大體上與上面參照?qǐng)D5的方法所說明的步驟一樣地操作。
然而,圖8的方法還包括由分區(qū)管理器422將使用內(nèi)核416的邏輯分區(qū)408的邏輯處理器506調(diào)遣502到運(yùn)行狀態(tài)。分區(qū)管理器通過如下步驟來調(diào)遣邏輯處理器根據(jù)調(diào)度算法來選擇在用于物理處理器的就緒隊(duì)列中在等待狀態(tài)等待的對(duì)應(yīng)虛擬處理器而且許可虛擬處理器占用物理處理器。
在響應(yīng)于通過在新調(diào)遣的邏輯處理器上的邏輯分區(qū)中運(yùn)行的線程來實(shí)現(xiàn)的系統(tǒng)調(diào)用時(shí),內(nèi)核將需要知道多種通用數(shù)據(jù)結(jié)構(gòu)中的哪一種指明了用于新調(diào)遣的邏輯處理器的邏輯分區(qū)的計(jì)算機(jī)資源。因此,圖8的方法還包括向內(nèi)核提供504指向分區(qū)管理器通用數(shù)據(jù)結(jié)構(gòu)420的指針510,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給邏輯分區(qū)(也就是新調(diào)遣的邏輯處理器的邏輯分區(qū))的計(jì)算機(jī)資源。如果新調(diào)遣的邏輯處理器來自于與其緊接前任相同的邏輯分區(qū),也就是如下邏輯處理器,該邏輯處理器的虛擬處理器剛失去對(duì)其上現(xiàn)在運(yùn)行對(duì)應(yīng)虛擬處理器的物理處理器的占用,則指針地址已經(jīng)正確地設(shè)置。如果新調(diào)遣的邏輯處理器來自與其緊接前任的邏輯分區(qū)不同的邏輯分區(qū),則指針地址重置為指向通用數(shù)據(jù)結(jié)構(gòu),該通用數(shù)據(jù)結(jié)構(gòu)指明了用于新調(diào)遣的邏輯處理器的邏輯分區(qū)的計(jì)算機(jī)資源。分區(qū)管理器可以通過在數(shù)據(jù)結(jié)構(gòu)中依賴于邏輯分區(qū)的標(biāo)識(shí)對(duì)用于指針的正確值進(jìn)行查找來知道該值,該數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)了指針值和分區(qū)標(biāo)識(shí),諸如上面在表1中或者例如在圖8和9中的表514中所示的數(shù)據(jù)結(jié)構(gòu)。
圖8的方法還包括通過分區(qū)管理器422將來自在邏輯分區(qū)408和410中運(yùn)行的應(yīng)用程序412和414的對(duì)內(nèi)核的內(nèi)核服務(wù)418的系統(tǒng)調(diào)用矢量化512。分區(qū)管理器可以通過在用于所有中斷處理的受保護(hù)寄存器或受保護(hù)存儲(chǔ)器變量中設(shè)置如下指針來將對(duì)于內(nèi)核的系統(tǒng)調(diào)用矢量化,該指針指向了分區(qū)管理器的中斷處理器(圖4中的448)的起始地址。然后,分區(qū)管理器的中斷處理器將系統(tǒng)調(diào)用傳遞到內(nèi)核的中斷處理器(圖4中的450、452、454),首先通過使用如例如上面在表1中或者在圖8和9中、的表514中所示那樣的數(shù)據(jù)結(jié)構(gòu)來確定該中斷要傳遞到的那個(gè)內(nèi)核。表1的每個(gè)記錄關(guān)聯(lián)了邏輯分區(qū)標(biāo)識(shí)符和內(nèi)核標(biāo)識(shí)符。分區(qū)管理器的中斷處理器在截獲來自邏輯分區(qū)的系統(tǒng)調(diào)用時(shí)可以通過使用邏輯分區(qū)的標(biāo)識(shí)在這樣的表中查找要將系統(tǒng)調(diào)用傳遞到的內(nèi)核的標(biāo)識(shí)。
為了進(jìn)一步說明,圖9示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核416的又一個(gè)示例性方法的流程圖。圖9的方法類似于圖5的方法。也就是,圖9的方法包括以下步驟在分區(qū)管理器422中安裝402由多個(gè)邏輯分區(qū)408和410使用的類型的內(nèi)核416;在分區(qū)管理器422中安裝404通用數(shù)據(jù)結(jié)構(gòu)420,這些通用數(shù)據(jù)結(jié)構(gòu)420指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源;以及依賴于所述通用數(shù)據(jù)結(jié)構(gòu)來提供406內(nèi)核服務(wù),所有這些步驟大體上與上面參照?qǐng)D5所說明的步驟一樣地操作。然而,圖9的方法還包括以下步驟為多個(gè)邏輯分區(qū)408和410中的一個(gè)或多個(gè)邏輯分區(qū)更新904內(nèi)核416,包括更新904數(shù)據(jù)結(jié)構(gòu)514中的內(nèi)核標(biāo)識(shí)符518,該數(shù)據(jù)結(jié)構(gòu)514將內(nèi)核標(biāo)識(shí)符與受到更新的邏輯分區(qū)的標(biāo)識(shí)符516相關(guān)聯(lián)。
參照?qǐng)D4進(jìn)一步說明為邏輯分區(qū)更新內(nèi)核。圖4示出了描述根據(jù)本發(fā)明的實(shí)施例的用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的示例性系統(tǒng)的功能框圖,其中該示例性系統(tǒng)包括在其之間共享三個(gè)共享內(nèi)核的九個(gè)邏輯分區(qū)。出于說明之目的,假設(shè)內(nèi)核430是用于操作系統(tǒng)版本的內(nèi)核,而內(nèi)核432是用于相同操作系統(tǒng)的較遲更高級(jí)版本的內(nèi)核。舊內(nèi)核滿足于在邏輯分區(qū)434,436中運(yùn)行的應(yīng)用。然而,系統(tǒng)管理員判定在邏輯分區(qū)438中運(yùn)行的應(yīng)用將受益于對(duì)內(nèi)核的較遲版本的更新特征的訪問。管理員可以通過更新數(shù)據(jù)結(jié)構(gòu)中的內(nèi)核標(biāo)識(shí)符來為邏輯分區(qū)438來更新904內(nèi)核,該數(shù)據(jù)結(jié)構(gòu)將內(nèi)核標(biāo)識(shí)符與受到更新的邏輯分區(qū)的標(biāo)識(shí)符相關(guān)聯(lián)。該更新可以通過系統(tǒng)管理員登陸到分區(qū)管理器的控制臺(tái)來實(shí)現(xiàn),該控制臺(tái)提供了用以更新諸如表1中所示那樣的數(shù)據(jù)結(jié)構(gòu)的GUI工具。表2說明了更新后的關(guān)聯(lián)數(shù)據(jù)值
表1與表2之間的唯一差別在于與邏輯分區(qū)438相關(guān)聯(lián)的內(nèi)核標(biāo)識(shí)符的值,該值從430更新到432。請(qǐng)注意無(wú)需更新指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配用于受到更新的邏輯分區(qū)的的計(jì)算機(jī)資源;該指針仍然設(shè)置成‘structPtr4’。更新到內(nèi)核較遲版本的邏輯分區(qū)438繼續(xù)使用相同的通用數(shù)據(jù)結(jié)構(gòu)來指明它在更新之前使用的它的計(jì)算機(jī)資源。
在用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的完全功能計(jì)算機(jī)系統(tǒng)的上下文中大體描述了本發(fā)明的實(shí)施例。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到本發(fā)明也可以實(shí)施于在用于與任何適當(dāng)?shù)臄?shù)據(jù)處理系統(tǒng)一起使用的信號(hào)承載介質(zhì)上設(shè)置的計(jì)算機(jī)程序產(chǎn)品中。這樣的信號(hào)承載介質(zhì)可以是傳輸介質(zhì)或用于機(jī)器可讀信息的可記錄介質(zhì),包括磁介質(zhì)、光介質(zhì)或其它適當(dāng)?shù)慕橘|(zhì)??捎涗浗橘|(zhì)的例子包括硬驅(qū)動(dòng)器或軟盤中的磁盤、用于光驅(qū)的致密盤、磁帶以及本領(lǐng)域技術(shù)人員將想到的其它例子。傳輸介質(zhì)的例子包括用于語(yǔ)音通信的電話網(wǎng)絡(luò)以及數(shù)字?jǐn)?shù)據(jù)通信網(wǎng)絡(luò),諸如,例如EthernetsTM和互聯(lián)協(xié)議和萬(wàn)維網(wǎng)通信的網(wǎng)絡(luò)。本領(lǐng)域技術(shù)人員將立即認(rèn)識(shí)到具有適當(dāng)編程裝置的任何計(jì)算機(jī)系統(tǒng)將能執(zhí)行如在程序產(chǎn)品中實(shí)施的本發(fā)明方法的步驟。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到盡管在本說明書中說明的一些示例性實(shí)施例是面向在計(jì)算機(jī)硬件上安裝和執(zhí)行的軟件,但是實(shí)現(xiàn)為固件或硬件的備選實(shí)施例仍在本發(fā)明的范圍之內(nèi)。
從前面的說明中將理解到在不脫離本發(fā)明的真實(shí)精神情況下,可以在其各種實(shí)施例中進(jìn)行改型和變化。本說明書中的說明僅僅出于說明之目的而不應(yīng)在限制性意義上來理解。本發(fā)明的范圍僅僅由所附權(quán)利要求書的語(yǔ)言來限制。
權(quán)利要求
1.一種用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的方法,該方法包括在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)使用的類型的內(nèi)核;在該分區(qū)管理器中安裝指明了分配給所述多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu);以及由該內(nèi)核依賴于所述通用數(shù)據(jù)結(jié)構(gòu)向所述邏輯分區(qū)提供內(nèi)核服務(wù)。
2.權(quán)利要求1的方法,還包括由該分區(qū)管理器將使用該內(nèi)核的邏輯分區(qū)的邏輯處理器調(diào)遣到運(yùn)行狀態(tài);以及向該內(nèi)核提供指向該分區(qū)管理器的通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)的計(jì)算機(jī)資源。
3.權(quán)利要求1的方法,還包括通過該分區(qū)管理器將來自在所述邏輯分區(qū)中運(yùn)行的應(yīng)用程序的對(duì)該內(nèi)核的內(nèi)核服務(wù)的系統(tǒng)調(diào)用矢量化。
4.權(quán)利要求1的方法,還包括在整個(gè)計(jì)算機(jī)系統(tǒng)的初始程序加載時(shí),在對(duì)于該分區(qū)管理器中的內(nèi)核全局可用的數(shù)據(jù)結(jié)構(gòu)中指明在該計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源。
5.權(quán)利要求1的方法,其中安裝通用數(shù)據(jù)結(jié)構(gòu)還包括由該內(nèi)核依賴于對(duì)于該分區(qū)管理器的所有內(nèi)核全局可用的資源規(guī)范,在用于邏輯分區(qū)的引導(dǎo)時(shí)間,在通用數(shù)據(jù)結(jié)構(gòu)中指明分配用于所引導(dǎo)的邏輯分區(qū)的該計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)資源。
6.權(quán)利要求1的方法,還包括為所述多個(gè)邏輯分區(qū)中的一個(gè)或多個(gè)邏輯分區(qū)更新該內(nèi)核,包括更新數(shù)據(jù)結(jié)構(gòu)中的內(nèi)核標(biāo)識(shí)符和指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該數(shù)據(jù)結(jié)構(gòu)將內(nèi)核標(biāo)識(shí)符與受到該更新的所述邏輯分區(qū)的標(biāo)識(shí)符相關(guān)聯(lián),該通用數(shù)據(jù)結(jié)構(gòu)指明分配用于受到該更新的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源。
7.一種用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的系統(tǒng),該系統(tǒng)包括計(jì)算機(jī)處理器和可操作地耦合到該計(jì)算機(jī)處理器的計(jì)算機(jī)存儲(chǔ)器,該計(jì)算機(jī)存儲(chǔ)器在其之內(nèi)設(shè)置有能執(zhí)行如下步驟的計(jì)算機(jī)程序指令在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)使用的類型的內(nèi)核;在該分區(qū)管理器中安裝指明了分配給所述多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu);以及由該內(nèi)核依賴于所述通用數(shù)據(jù)結(jié)構(gòu)向所述邏輯分區(qū)提供內(nèi)核服務(wù)。
8.權(quán)利要求7的系統(tǒng),還包括能執(zhí)行如下步驟的計(jì)算機(jī)程序指令由該分區(qū)管理器將使用該內(nèi)核的邏輯分區(qū)的邏輯處理器調(diào)遣到運(yùn)行狀態(tài);以及向該內(nèi)核提供指向該分區(qū)管理器的通用數(shù)據(jù)結(jié)構(gòu)的指針,該通用數(shù)據(jù)結(jié)構(gòu)指明了分配給該邏輯分區(qū)的計(jì)算機(jī)資源。
9.權(quán)利要求7的系統(tǒng),還包括能執(zhí)行如下步驟的計(jì)算機(jī)程序指令通過該分區(qū)管理器將來自在所述邏輯分區(qū)中運(yùn)行的應(yīng)用程序的對(duì)該內(nèi)核的內(nèi)核服務(wù)的系統(tǒng)調(diào)用矢量化。
10.權(quán)利要求7的系統(tǒng),還包括能執(zhí)行如下步驟的計(jì)算機(jī)程序指令在整個(gè)計(jì)算機(jī)系統(tǒng)的初始程序加載時(shí),在對(duì)于該分區(qū)管理器中的內(nèi)核全局可用的數(shù)據(jù)結(jié)構(gòu)中指明在該計(jì)算機(jī)系統(tǒng)上可用于邏輯分區(qū)的計(jì)算機(jī)資源。
11.權(quán)利要求7的系統(tǒng),其中安裝通用數(shù)據(jù)結(jié)構(gòu)還包括由該內(nèi)核依賴于對(duì)于該分區(qū)管理器的所有內(nèi)核全局可用的資源規(guī)范,在用于邏輯分區(qū)的引導(dǎo)時(shí)間,在通用數(shù)據(jù)結(jié)構(gòu)中指明分配用于所引導(dǎo)的邏輯分區(qū)的該計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)資源。
12.權(quán)利要求7的系統(tǒng),還包括能執(zhí)行如下步驟的計(jì)算機(jī)程序指令為所述多個(gè)邏輯分區(qū)中的一個(gè)或多個(gè)邏輯分區(qū)更新該內(nèi)核,包括更新數(shù)據(jù)結(jié)構(gòu)中的內(nèi)核標(biāo)識(shí)符和指向通用數(shù)據(jù)結(jié)構(gòu)的指針,該數(shù)據(jù)結(jié)構(gòu)將內(nèi)核標(biāo)識(shí)符與受到該更新的所述邏輯分區(qū)的標(biāo)識(shí)符相關(guān)聯(lián),該通用數(shù)據(jù)結(jié)構(gòu)指明分配用于受到該更新的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源。
13.一種用于在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品設(shè)置于信號(hào)承載介質(zhì)上,該計(jì)算機(jī)程序產(chǎn)品包括能實(shí)現(xiàn)前述方法權(quán)利要求的任一項(xiàng)所述的方法的計(jì)算機(jī)程序指令。
全文摘要
在邏輯分區(qū)之間共享操作系統(tǒng)內(nèi)核,包括在分區(qū)管理器中安裝由多個(gè)邏輯分區(qū)使用的類型的內(nèi)核;在分區(qū)管理器中安裝指明了分配給多個(gè)邏輯分區(qū)中的每個(gè)邏輯分區(qū)的計(jì)算機(jī)資源的通用數(shù)據(jù)結(jié)構(gòu);以及由內(nèi)核依賴于通用數(shù)據(jù)結(jié)構(gòu)向邏輯分區(qū)提供內(nèi)核服務(wù)。
文檔編號(hào)G06F9/46GK1983192SQ200610108400
公開日2007年6月20日 申請(qǐng)日期2006年8月3日 優(yōu)先權(quán)日2005年12月12日
發(fā)明者黛安娜·G·弗萊明, 安德魯·鄧謝伊 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司