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

用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的系統(tǒng)和方法

文檔序號:6582905閱讀:228來源:國知局
專利名稱:用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明公開了用于有效地組合高端大型機(mainframe)系統(tǒng)和低端服務(wù)器系統(tǒng)來提供穩(wěn)定和成本有效的計算環(huán)境的系統(tǒng)和相關(guān)方法。
背景技術(shù)
常規(guī)宿主(hosting)環(huán)境采用多種類型的平臺。對于關(guān)鍵任務(wù)應(yīng)用,希望使用高端大型機以便提供穩(wěn)定和健壯的服務(wù)。具有較低可靠性要求的計算密集型工作負載可在單獨的分布式系統(tǒng)上執(zhí)行(這導(dǎo)致附加的并且代價高的管理工作(management effort)),或者以成本效率較低的方式在大型機上執(zhí)行(但是管理工作有限)。 為了在限制管理工作的同時,保留計算密集型工作負載的執(zhí)行環(huán)境的成本效率,需要一種在具有不同體系結(jié)構(gòu)的多個平臺的計算環(huán)境中成本有效地執(zhí)行計算密集型工作負載的系統(tǒng)和相關(guān)方法。

發(fā)明內(nèi)容
本發(fā)明提供了用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的方法,該方法包括以下步驟 啟動所述混合系統(tǒng)的第一平臺中的進程,其中所述進程能在所述混合系統(tǒng)的第二平臺中執(zhí)行,其中第一內(nèi)核控制(govern)第一平臺,并且第二內(nèi)核控制第二平臺;
檢測所述進程不能在第一平臺中執(zhí)行; 請求第二內(nèi)核在第二平臺中創(chuàng)建第一平臺中的所述進程的復(fù)制(duplicate)進程,并且從第二內(nèi)核接收已經(jīng)在第二平臺中成功創(chuàng)建了所述復(fù)制進程的通知;
響應(yīng)于從第二內(nèi)核收到指示第二平臺在第二平臺內(nèi)調(diào)度和執(zhí)行所述復(fù)制進程的信號,停止在第一平臺中調(diào)度所述進程; 在收到終止所述進程的事件觸發(fā)器之后,終止第一平臺中的所述進程;以及
向第二內(nèi)核發(fā)送指示已經(jīng)刪除了第一平臺中的所述進程的終止信號,
其中由第一內(nèi)核執(zhí)行所述啟動步驟、所述檢測步驟、所述請求步驟、所述停止步驟、所述終止步驟和所述發(fā)送步驟。 本發(fā)明提供了一種計算機程序產(chǎn)品,包括其中包含有計算機可讀程序代碼的計算機可用存儲介質(zhì),所述計算機可讀程序代碼包含指令,所述指令在被計算機系統(tǒng)的處理器執(zhí)行時實現(xiàn)用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的方法,該方法包括以下步驟
啟動所述混合系統(tǒng)的第一平臺中的進程,其中所述進程能在所述混合系統(tǒng)的第二平臺中執(zhí)行,其中第一內(nèi)核控制第一平臺,并且第二內(nèi)核控制第二平臺;
檢測所述進程不能在第一平臺中執(zhí)行; 請求第二內(nèi)核在第二平臺中創(chuàng)建第一平臺中的所述進程的復(fù)制進程,并且從第二內(nèi)核接收已經(jīng)在第二平臺中成功創(chuàng)建了所述復(fù)制進程的通知; 響應(yīng)于從第二內(nèi)核收到指示第二平臺在第二平臺內(nèi)調(diào)度和執(zhí)行所述復(fù)制進程的
5信號,停止在第一平臺中調(diào)度所述進程; 在收到終止所述進程的事件觸發(fā)器之后,終止第一平臺中的所述進程;以及
向第二內(nèi)核發(fā)送指示已經(jīng)刪除了第一平臺中的所述進程的終止信號,
其中由第一內(nèi)核執(zhí)行所述啟動步驟、所述檢測步驟、所述請求步驟、所述停止步 驟、所述終止步驟和所述發(fā)送步驟。 本發(fā)明提供了一種計算機系統(tǒng),包括處理器和耦接于所述處理器的計算機可讀存 儲器單元,所述存儲器單元包含指令,所述指令在被所述處理器執(zhí)行時實現(xiàn)用于在混合系 統(tǒng)中跨平臺轉(zhuǎn)移工作負載的方法,該方法包括以下步驟 啟動所述混合系統(tǒng)的第一平臺中的進程,其中所述進程能在所述混合系統(tǒng)的第二 平臺中執(zhí)行,其中第一內(nèi)核控制第一平臺,并且第二內(nèi)核控制第二平臺;
檢測所述進程不能在第一平臺中執(zhí)行; 請求第二內(nèi)核在第二平臺中創(chuàng)建第一平臺中的所述進程的復(fù)制進程,并且從第二 內(nèi)核接收已經(jīng)在第二平臺中成功創(chuàng)建了所述復(fù)制進程的通知; 響應(yīng)于從第二內(nèi)核收到指示第二平臺在第二平臺內(nèi)調(diào)度和執(zhí)行所述復(fù)制進程的 信號,停止在第一平臺中調(diào)度所述進程; 在收到終止所述進程的事件觸發(fā)器之后,終止第一平臺中的所述進程;以及
向第二內(nèi)核發(fā)送指示已經(jīng)刪除了第一平臺中的所述進程的終止信號,
其中由第一內(nèi)核執(zhí)行所述啟動步驟、所述檢測步驟、所述請求步驟、所述停止步 驟、所述終止步驟和所述發(fā)送步驟。 本發(fā)明提供了克服用于在混合系統(tǒng)中執(zhí)行工作負載的常規(guī)方法和系統(tǒng)的至少一 個當(dāng)前缺點的方法和系統(tǒng)。


圖1示出了根據(jù)本發(fā)明實施例的用于跨平臺轉(zhuǎn)移工作負載的混合系統(tǒng)。 圖2是根據(jù)本發(fā)明實施例的、描述了內(nèi)核K和內(nèi)核U如何互操作以便在混合系統(tǒng)
中跨平臺轉(zhuǎn)移工作負載的控制流程圖。 圖2A是根據(jù)本發(fā)明實施例的、描述了由內(nèi)核K執(zhí)行的用于在混合系統(tǒng)中跨平臺轉(zhuǎn) 移工作負載的方法的流程圖。 圖2B是根據(jù)本發(fā)明實施例的、描述了由內(nèi)核U執(zhí)行的用于在混合系統(tǒng)中跨平臺轉(zhuǎn) 移工作負載的方法的流程圖。 圖3示出了根據(jù)本發(fā)明實施例的用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的計算 機系統(tǒng)。
具體實施例方式
圖1示出了根據(jù)本發(fā)明實施例的用于跨平臺轉(zhuǎn)移工作負載的混合系統(tǒng)100。
混合系統(tǒng)100包括通過數(shù)據(jù)路徑180互連的至少一個系統(tǒng)U和系統(tǒng)KllO。所述 至少一個系統(tǒng)U中的系統(tǒng)U150是被配置為主要執(zhí)行用戶應(yīng)用的低端服務(wù)器,該用戶應(yīng)用在 混合系統(tǒng)100中具有計算密集型工作負載。系統(tǒng)K110是被配置為主要執(zhí)行用于混合系統(tǒng) 100的內(nèi)核服務(wù)的高端大型機。系統(tǒng)K110和系統(tǒng)U150在各自的硬件平臺上工作,并且具有各自的軟件環(huán)境,所述軟件環(huán)境具有用于各自內(nèi)核的可轉(zhuǎn)換的系統(tǒng)調(diào)用。系統(tǒng)K110和系 統(tǒng)U150通過使其各自內(nèi)核互連的數(shù)據(jù)路徑180來彼此通信?;旌舷到y(tǒng)100被配置為讓用 戶感覺如同是提供了系統(tǒng)K110和系統(tǒng)U150兩者的功能和特性的單個系統(tǒng)。
系統(tǒng)K110被配置為主要執(zhí)行用于混合系統(tǒng)100中的系統(tǒng)K110和系統(tǒng)U150兩者 的內(nèi)核服務(wù)。在混合系統(tǒng)100中采用系統(tǒng)K110來提供穩(wěn)定并且健壯的計算環(huán)境。出于管 理的目的,系統(tǒng)K110還示出(exhibit)在混合系統(tǒng)100中運行的進程。系統(tǒng)K110包括至 少一個用戶應(yīng)用K和內(nèi)核K130。 系統(tǒng)U的二進制代碼160是所述至少一個用戶應(yīng)用K中的一個。系統(tǒng)U的二進制 代碼160是具有可在系統(tǒng)U150中執(zhí)行的格式的系統(tǒng)K110的用戶模式應(yīng)用。系統(tǒng)U的二進 制代碼160包括引起執(zhí)行計算密集型工作負載的指令。為了在不消耗系統(tǒng)K110的資源的 情況下執(zhí)行,混合系統(tǒng)100通過將系統(tǒng)U的二進制代碼160復(fù)制到系統(tǒng)U150上來執(zhí)行系統(tǒng) U的二進制代碼160。關(guān)于該執(zhí)行的細節(jié),參見下文中對圖2A和圖2B的描述。
內(nèi)核K130是控制系統(tǒng)K110的操作系統(tǒng)的主要部分。該操作系統(tǒng)提供尤其是諸 如以下的服務(wù)與時間/時鐘相關(guān)的服務(wù),存儲器管理服務(wù),包括調(diào)度、終止和信號發(fā)送的 進程管理服務(wù),諸如文件/文件系統(tǒng)操作、網(wǎng)絡(luò)操作和I/O調(diào)用的數(shù)據(jù)服務(wù),調(diào)試和日志 (logging)功能,不需共享存儲器的進程間通信(IPC)服務(wù),存儲器共享服務(wù),1/0同步,系 統(tǒng)管理服務(wù),以及硬件服務(wù)等。該操作系統(tǒng)的例子尤其可以是1^皿1、!1]\1乂@等。(UNIX是 X/Open公司在美國和其它國家中的注冊商標(biāo)。) 內(nèi)核K130包括作為功能組件的裝載器/鏈接器K131、調(diào)度器K132、頁錯誤(page fault)處理器K133和系統(tǒng)調(diào)用處理器K134。 裝載器/鏈接器K131將二進制代碼裝入系統(tǒng)K110的存儲器區(qū)域,并且鏈接為執(zhí) 行所必需的庫文件。裝載器/鏈接器K131檢查二進制代碼的格式,以便確定裝入的二進制 代碼是否可以在系統(tǒng)KllO內(nèi)執(zhí)行。 調(diào)度器K132給進程分配優(yōu)先級以便有秩序的執(zhí)行。根據(jù)分配給進程的各自的優(yōu) 先級,進程占用系統(tǒng)KllO的微處理器時鐘周期。 頁錯誤處理器K133處理由頁錯誤引起的進程中斷/異常,該頁錯誤是在程序試圖 訪問被映射到地址空間內(nèi)但是未被裝入系統(tǒng)KllO的物理存儲器中的頁時發(fā)生的。頁錯誤 處理器K133調(diào)用裝載器/鏈接器K131以便裝入出錯頁。 系統(tǒng)調(diào)用處理器K 134執(zhí)行系統(tǒng)調(diào)用,該系統(tǒng)調(diào)用請求由內(nèi)核K130提供的內(nèi)核服 務(wù)。系統(tǒng)調(diào)用由系統(tǒng)KllO和/或系統(tǒng)U150上的進程來調(diào)用。 在混合系統(tǒng)100中,內(nèi)核K130借助于來自系統(tǒng)K110和系統(tǒng)U130的系統(tǒng)調(diào)用來為
所有1/o請求提供服務(wù)。1/o設(shè)備的例子尤其可以是HiperSockets⑧、直接訪問存儲設(shè)
備(DASD)、企業(yè)磁帶系統(tǒng)(enterprise t即e system)等。(HiperSockets是國際商業(yè)機器 公司在美國和其它國家中的注冊商標(biāo)。) 系統(tǒng)U150是低端服務(wù)器,其被配置為主要為混合系統(tǒng)100中的系統(tǒng)U150和系統(tǒng) K110兩者執(zhí)行用戶應(yīng)用。在混合系統(tǒng)100中采用系統(tǒng)U150,以便通過將計算密集型工作負 載從系統(tǒng)Kl 10轉(zhuǎn)移到系統(tǒng)U150來提供成本有效的計算環(huán)境。 系統(tǒng)U150包括復(fù)制進程161和內(nèi)核U170。內(nèi)核U170是控制系統(tǒng)U150的操作系 統(tǒng)的核心。內(nèi)核U170包括裝載器/鏈接器U171、調(diào)度器U172、頁錯誤處理器U173和系統(tǒng)調(diào)用處理器U174,它們是功能組件而不是物理分離的單元。 復(fù)制進程161是在系統(tǒng)U150中創(chuàng)建以便執(zhí)行系統(tǒng)KllO中的系統(tǒng)U的二進制代碼 160的進程。 內(nèi)核U170是控制系統(tǒng)U150的操作系統(tǒng)的主要部分。對于由該操作系統(tǒng)提供的服 務(wù),參見上面對內(nèi)核K130的描述。 裝載器/鏈接器U171將二進制代碼裝入系統(tǒng)U150的存儲器區(qū)域,并且鏈接為執(zhí) 行所必需的庫文件。裝載器/鏈接器U171檢查二進制代碼的格式,以確定裝入的二進制代 碼是否可以在系統(tǒng)U150內(nèi)執(zhí)行。 調(diào)度器U172給進程分配優(yōu)先級以便有秩序的執(zhí)行。根據(jù)分配給進程的各自的優(yōu) 先級,進程占用系統(tǒng)U150的微處理器時鐘周期。 頁錯誤處理器U173處理由頁錯誤引起的中斷/異常,該頁錯誤是在程序試圖訪問 被映射到地址空間內(nèi)但是未被裝入系統(tǒng)U150的物理存儲器中的頁時發(fā)生的。如果對于系 統(tǒng)U150中的復(fù)制進程中的頁發(fā)生了頁錯誤,則頁錯誤處理器U173請求系統(tǒng)K110中的系統(tǒng) U的二進制代碼160的出錯頁。 系統(tǒng)調(diào)用處理器U174處理由系統(tǒng)U150上的進程所調(diào)用的請求內(nèi)核服務(wù)的系統(tǒng)調(diào) 用。如果請求的內(nèi)核服務(wù)是由內(nèi)核K130提供的服務(wù),則系統(tǒng)調(diào)用處理器U174請求內(nèi)核K130 提供服務(wù),從而遠程執(zhí)行該系統(tǒng)調(diào)用。如果請求的內(nèi)核服務(wù)被配置為由內(nèi)核U170提供,則 系統(tǒng)調(diào)用處理器U174本地執(zhí)行該系統(tǒng)調(diào)用。 數(shù)據(jù)路徑180使內(nèi)核K130和內(nèi)核U170互連。數(shù)據(jù)路徑180用諸如10千兆比特 以太網(wǎng)的高速通信I/O設(shè)備在內(nèi)核級別直接連接系統(tǒng)K110和系統(tǒng)U150。 在本發(fā)明的一個實施例中,系統(tǒng)ui50是采用intef或AMD⑧處理器的刀片服
務(wù)器,并且系統(tǒng)KllO是IBM⑧System Z⑧大型機(Intel是Intel公司在美國和其它國 家的注冊商標(biāo);AMD是Advanced MicroDevices公司在美國和其它國家的注冊商標(biāo);IBM和 System z是國際商業(yè)機器公司在美國和其它國家的注冊商標(biāo))。刀片服務(wù)器和大型機兩者
都采用Li皿x操作系統(tǒng)或其它UNIX族os?;旌舷到y(tǒng)ioo保持大型機對HiperSockets⑧、
直接訪問存儲設(shè)備(DASD)、企業(yè)磁帶系統(tǒng)等的輸入/輸出能力。(HiperSockets是國際商 業(yè)機器公司在美國和其它國家中的注冊商標(biāo)。) 混合系統(tǒng)100保持大型機的出眾的硬件穩(wěn)定性和管理特征?;旌舷到y(tǒng)100還在刀 片服務(wù)器上執(zhí)行計算密集型的應(yīng)用,以實現(xiàn)高成本效率?;旌舷到y(tǒng)100為大型機和刀片服 務(wù)器兩者上的所有應(yīng)用提供所有資源的統(tǒng)一視圖。 可以在,尤其是,動態(tài)Web服務(wù)、數(shù)據(jù)挖掘、SAP⑧r/3應(yīng)用服務(wù)、Domin(^群件 處理、應(yīng)用服務(wù)和Java⑧處理領(lǐng)域中采用混合系統(tǒng)ioo。 (sap是sap ag在美國和其它國
家中的注冊商標(biāo);Domino是國際商業(yè)機器公司在美國和其它國家中的注冊商標(biāo);Java是 SunMicrosystems公司在美國和其它國家中的注冊商標(biāo)。) 圖2是根據(jù)本發(fā)明實施例的控制流程圖,其描述了內(nèi)核K和內(nèi)核U如何互操作以 在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載。 對于由內(nèi)核K執(zhí)行的步驟210K、220K、230K、240K、251K、271K和272K的細節(jié),參見 下面的圖2A。對于由內(nèi)核U執(zhí)行的步驟231U、232U、233U、250U、260U、270U和280U的細節(jié),參見下面的圖2B。 圖2A是根據(jù)本發(fā)明實施例的、描述了由內(nèi)核K執(zhí)行的用于在混合系統(tǒng)中跨平臺轉(zhuǎn) 移工作負載的方法的流程圖。 在步驟210K之前,系統(tǒng)K識別出系統(tǒng)U并且通過上面圖1的數(shù)據(jù)路徑建立了到系 統(tǒng)U的通信通道。內(nèi)核K與內(nèi)核U通信以便傳輸數(shù)據(jù),更新系統(tǒng)狀態(tài),以及使在執(zhí)行用戶應(yīng) 用時在內(nèi)核K和內(nèi)核U兩者中引用的頁同步。在頁同步期間,當(dāng)一個頁的有效性改變時,內(nèi) 核U和內(nèi)核K中各自的頁錯誤處理器標(biāo)記該頁,和/或在訪問該頁之后將該頁鏡像到另一 個系統(tǒng)的相應(yīng)內(nèi)核,等等。 在步驟210K,內(nèi)核K在系統(tǒng)K上啟動包括系統(tǒng)U的二進制代碼的用戶模式應(yīng)用。 系統(tǒng)U的二進制代碼是被配置為在系統(tǒng)U平臺的計算機體系結(jié)構(gòu)上執(zhí)行的計算機程序的可 執(zhí)行格式。內(nèi)核K繼續(xù)進行步驟220K。 在本發(fā)明的一個實施例中,內(nèi)核K通過從先前存在的父進程派生出子進程并且然 后通過該子進程執(zhí)行系統(tǒng)U的二進制代碼,來啟動系統(tǒng)U的二進制代碼。為了執(zhí)行系統(tǒng)U 的二進制代碼,子進程調(diào)用exec()或execve()系統(tǒng)調(diào)用,該exec()或execve ()系統(tǒng)調(diào) 用在已經(jīng)調(diào)用該系統(tǒng)調(diào)用的子進程中裝入和執(zhí)行系統(tǒng)U的二進制代碼。在執(zhí)行exec()或 execve()系統(tǒng)調(diào)用之后,以系統(tǒng)U的二進制代碼中的指令取代該子進程的執(zhí)行線程。
在步驟220K,內(nèi)核K檢測到在步驟210K裝入的系統(tǒng)U的二進制代碼不能在系統(tǒng)K 上執(zhí)行。由已經(jīng)在步驟210K調(diào)用的系統(tǒng)調(diào)用來調(diào)用內(nèi)核K中的裝載器/鏈接器K,以便裝 入系統(tǒng)U的二進制代碼。裝載器/鏈接器K檢測到系統(tǒng)U的二進制代碼與系統(tǒng)K的計算機 體系結(jié)構(gòu)不兼容,但是為可在系統(tǒng)U中執(zhí)行的格式。內(nèi)核K繼續(xù)進行步驟230K。
在步驟230K,內(nèi)核K請求內(nèi)核U在系統(tǒng)U上創(chuàng)建系統(tǒng)U的二進制代碼的復(fù)制進程, 并且隨后接收來自內(nèi)核U的通知內(nèi)核U完成了該請求的響應(yīng)。對于內(nèi)核U在收到來自內(nèi)核 K的請求之后執(zhí)行的操作,參見下文中對圖2B的步驟231U的描述。 在內(nèi)核K執(zhí)行了步驟230K之后,系統(tǒng)K中的系統(tǒng)U的二進制代碼和系統(tǒng)U內(nèi)的復(fù) 制進程彼此鏈接。系統(tǒng)U的二進制代碼和該復(fù)制進程被反映在內(nèi)核K和內(nèi)核U各自的內(nèi)核 上下文(context)中以便執(zhí)行。在收到來自系統(tǒng)U的已經(jīng)成功創(chuàng)建了復(fù)制進程的響應(yīng)之后, 內(nèi)核K繼續(xù)進行步驟240K。 在步驟240K,在從執(zhí)行下面的圖2B的步驟233U的內(nèi)核U收到通知之后,內(nèi)核K停 止調(diào)度系統(tǒng)U的二進制代碼的進程。在步驟240K之后,內(nèi)核K將在系統(tǒng)K中已經(jīng)裝載系統(tǒng) U的二進制代碼的進程排除在調(diào)度之外,并且停止系統(tǒng)K中該進程的執(zhí)行線程。該進程的進 程存根(stub)存在于系統(tǒng)K中,以便在內(nèi)核K內(nèi)代表在系統(tǒng)U中執(zhí)行的復(fù)制進程,但是由 于被排除在調(diào)度之外,因此該進程存根不浪費系統(tǒng)K的時鐘周期。通過該進程存根,內(nèi)核K 如同復(fù)制進程是系統(tǒng)K中的本地進程那樣地管理運行在系統(tǒng)U內(nèi)的復(fù)制進程。在從系統(tǒng)U 收到對I/O服務(wù)的請求之后,內(nèi)核K繼續(xù)進行步驟251K。 在步驟251K,在收到使用由系統(tǒng)K控制的I/O設(shè)備的I/O請求之后,內(nèi)核K為來 自系統(tǒng)U中的復(fù)制進程的輸入/輸出(1/0)請求服務(wù)。內(nèi)核K從執(zhí)行下文中圖2B的步驟 250U的內(nèi)核U接收I/O請求。內(nèi)核K以與來自系統(tǒng)U的I/O請求數(shù)目一樣多的次數(shù)來重復(fù) 步驟251K。在執(zhí)行步驟251K之后,內(nèi)核K可以接收來自系統(tǒng)U的復(fù)制進程已被暫停(halt) 的暫停通知或另一個1/0請求。
在步驟271K,內(nèi)核K接收事件觸發(fā)器,以便終止系統(tǒng)K中的用于系統(tǒng)U的二進制代 碼的進程存根。事件觸發(fā)器尤其可以是來自內(nèi)核U的已經(jīng)暫停了系統(tǒng)U中的復(fù)制進程的通 知、來自系統(tǒng)管理員的終止進程存根的"kill"命令等。內(nèi)核K繼續(xù)進行步驟272K。
在步驟272K,內(nèi)核K終止系統(tǒng)K中用于系統(tǒng)U的二進制代碼的進程存根,并且隨后 向內(nèi)核U發(fā)送信號以終止系統(tǒng)U上的復(fù)制進程。內(nèi)核K按照用于常規(guī)進程的終止過程來終 止進程存根,該終止過程可以包括,尤其是,存儲器轉(zhuǎn)儲、將進程的終止通知父進程等。在成 功終止進程存根后,內(nèi)核K向系統(tǒng)U發(fā)送可以釋放用于復(fù)制進程的資源的信號。
在本發(fā)明的一個實施例中,系統(tǒng)U是Intel平臺,并且系統(tǒng)K是System z平臺。 在該實施例中,內(nèi)核U是Intel平臺的操作系統(tǒng),并且內(nèi)核K是System z的操作系統(tǒng)。在 System z上創(chuàng)建的用戶應(yīng)用是Intel 二進制代碼。該用戶應(yīng)用還可以伴隨有Intel 二進制 形式的庫。當(dāng)啟動System z上的Intel 二進制代碼時,System z的操作系統(tǒng)在Intel平 臺上建立復(fù)制進程,并且實例化(instantiate)該Intel 二進制代碼??稍赟ystem z上遠 程地為在執(zhí)行Intel 二進制代碼時從Intel 二進制代碼調(diào)用的系統(tǒng)調(diào)用提供服務(wù)。
圖2B是根據(jù)本發(fā)明實施例的、描述了由內(nèi)核U執(zhí)行的用于在混合系統(tǒng)中跨平臺轉(zhuǎn) 移工作負載的方法的流程圖。 在步驟231U,在從執(zhí)行上面圖2A的步驟230K的內(nèi)核K收到創(chuàng)建復(fù)制進程的請求 之后,內(nèi)核U創(chuàng)建用于系統(tǒng)K的系統(tǒng)U的二進制代碼的復(fù)制進程。響應(yīng)于來自內(nèi)核K的請 求,內(nèi)核U還通知內(nèi)核K內(nèi)核U已經(jīng)成功創(chuàng)建了該復(fù)制進程。內(nèi)核U繼續(xù)進行步驟232U。
在步驟232U,內(nèi)核U從內(nèi)核K裝入系統(tǒng)K上的系統(tǒng)U的二進制代碼的存儲頁。內(nèi) 核U繼續(xù)進行步驟233U。 在本發(fā)明的一個實施例中,內(nèi)核U以延遲加載(lazy loading)方法執(zhí)行步驟 232U,該延遲加載方法使對象的初始化和/或裝載推遲到需要該對象的時刻為止。如果執(zhí) 行的線程到達了復(fù)制進程中尚未被從內(nèi)核K傳輸?shù)絻?nèi)核U的存儲區(qū)域,則中斷該執(zhí)行并且 在內(nèi)核U中發(fā)生頁錯誤。在這種情況下,系統(tǒng)U的頁錯誤處理器從系統(tǒng)K裝入引起頁錯誤 的存儲區(qū)域(即,缺失頁),并且繼續(xù)執(zhí)行內(nèi)核U中的該進程。 在步驟233U,內(nèi)核U調(diào)度并執(zhí)行復(fù)制進程,并且通知內(nèi)核K停止在系統(tǒng)K中調(diào)度 該系統(tǒng)U的二進制代碼。在執(zhí)行步驟233U之后,在系統(tǒng)U中復(fù)制進程代表系統(tǒng)K中的系統(tǒng) U的二進制代碼而運行。結(jié)果,典型地,系統(tǒng)K中的系統(tǒng)U的二進制代碼的計算密集型工作 負載被轉(zhuǎn)移到了系統(tǒng)U。如果在執(zhí)行期間從復(fù)制進程調(diào)用了 1/0服務(wù)請求,則內(nèi)核U繼續(xù) 進行步驟250U。如果在執(zhí)行期間復(fù)制進程調(diào)用多個I/O服務(wù),則內(nèi)核U可以多次執(zhí)行步驟 250U。如果復(fù)制進程暫停而不曾調(diào)用1/0服務(wù)請求,則內(nèi)核U可以不執(zhí)行步驟250U,并且繼 續(xù)進行步驟260U。 在步驟250U,內(nèi)核U為復(fù)制進程向內(nèi)核K請求0個或更多個I/O服務(wù)。當(dāng)復(fù)制進 程在系統(tǒng)U中執(zhí)行時,復(fù)制進程通過相應(yīng)的系統(tǒng)調(diào)用向內(nèi)核U請求I/O服務(wù)。由于I/O設(shè) 備連接到混合系統(tǒng)中的系統(tǒng)K并且由系統(tǒng)K提供服務(wù),因此內(nèi)核U隨后向內(nèi)核K請求I/O 服務(wù)。因此,在系統(tǒng)K而不是系統(tǒng)U內(nèi)遠程執(zhí)行對I/0服務(wù)的相應(yīng)系統(tǒng)調(diào)用。
在260U,內(nèi)核U確定復(fù)制進程是否暫停。內(nèi)核U通過由復(fù)制進程給內(nèi)核U引起的 異常/中斷來確定復(fù)制進程的暫停。因此,雖然復(fù)制進程仍在執(zhí)行,但是內(nèi)核U繼續(xù)執(zhí)行步 驟233U和250U。如果在收到指示復(fù)制進程暫停的異常/中斷之后,內(nèi)核U確定復(fù)制進程暫停,則內(nèi)核U繼續(xù)進行步驟270U。 在執(zhí)行步驟233U和250U時,內(nèi)核U繼續(xù)調(diào)度復(fù)制進程的執(zhí)行。步驟250U的I/O 服務(wù)請求和步驟260U的暫停通知是事件驅(qū)動的而不是順序的。因此,當(dāng)復(fù)制進程發(fā)出I/O 服務(wù)請求時執(zhí)行步驟250U。 在步驟270U,內(nèi)核U停止執(zhí)行復(fù)制進程,并且通知內(nèi)核K復(fù)制進程已暫停。當(dāng)內(nèi) 核U停止執(zhí)行復(fù)制進程時,內(nèi)核U凍結(jié)復(fù)制進程在內(nèi)核U的運行棧中的狀態(tài)和上下文數(shù)據(jù)。 內(nèi)核U繼續(xù)進行步驟280U。 在步驟280U,內(nèi)核U從內(nèi)核K接收終止信號,該終止信號是對內(nèi)核U在步驟270U 發(fā)送的暫停通知的響應(yīng)。在收到來自內(nèi)核K的終止信號之后,內(nèi)核U隨后釋放復(fù)制進程的 資源。 圖3示出了根據(jù)本發(fā)明實施例的用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的計算 機系統(tǒng)90。 計算機系統(tǒng)90包括處理器91、耦接于處理器91的輸入設(shè)備92、耦接于處理器91 的輸出設(shè)備93以及每個都耦接于處理器91的存儲設(shè)備94和95。輸入設(shè)備92尤其可以是 鍵盤、鼠標(biāo)、小鍵盤、觸摸屏、語音識別設(shè)備、傳感器、網(wǎng)絡(luò)接口卡(NIC)、基于網(wǎng)際協(xié)議的語 音/視頻(VoIP)適配器、無線適配器、電話適配器、專用電路適配器等。輸出設(shè)備93尤其 可以是打印機、繪圖機、計算機屏幕、磁帶、可移動硬盤、軟盤、NIC、 VOIP適配器、無線適配 器、電話適配器、專用電路適配器、音頻和/或視頻信號產(chǎn)生器、發(fā)光二極管(LED)等。存儲 設(shè)備94和95尤其可以是高速緩存、動態(tài)隨機存取存儲器(DRAM)、只讀存儲器(ROM)、硬 盤、軟盤、磁帶、諸如壓縮盤(CD)或數(shù)字視頻盤(DVD)的光學(xué)存儲器等。存儲設(shè)備95包括 計算機代碼97,計算機代碼97是包括計算機可執(zhí)行指令的計算機程序。計算機代碼97尤 其包括根據(jù)本發(fā)明的用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的算法。處理器91執(zhí)行計算 機代碼97。存儲設(shè)備94包括輸入數(shù)據(jù)96。輸入數(shù)據(jù)96包括計算機代碼97所需的輸入。 輸出設(shè)備93顯示來自計算機代碼97的輸出。存儲設(shè)備94和95中的任意一個或兩者(或 圖3中未示出的一個或多個附加存儲設(shè)備)可用作其中包含有計算機可讀程序和/或其中 存儲有其它數(shù)據(jù)的計算機可使用的存儲介質(zhì)(或計算機可讀存儲介質(zhì)或程序存儲設(shè)備), 其中計算機可讀程序包括計算機代碼97。 一般,計算機系統(tǒng)90的計算機程序產(chǎn)品(或可替 換地,制品)可以包括所述計算機可使用的存儲介質(zhì)(或所述程序存儲設(shè)備)。
雖然圖3將計算機系統(tǒng)90示出為硬件和軟件的特定配置,但是如本領(lǐng)域技術(shù)人員 可以理解的,可以使用任意的硬件和軟件配置來實現(xiàn)上文中結(jié)合圖3的特定計算機系統(tǒng)90 所述的目的。例如,存儲設(shè)備94和95可以是單個存儲設(shè)備的部分而不是分離的存儲設(shè)備。
雖然此處出于說明的目的已經(jīng)描述了本發(fā)明的具體實施例,但是本領(lǐng)域技術(shù)人員 將明了許多修改和變型。因此,所附權(quán)利要求意圖包含落在本發(fā)明的精神和范圍內(nèi)的所有 這些修改和變型。
權(quán)利要求
一種用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的方法,所述方法包括以下步驟啟動所述混合系統(tǒng)的第一平臺中的進程,其中所述進程能在所述混合系統(tǒng)的第二平臺中執(zhí)行,其中第一內(nèi)核控制第一平臺,并且第二內(nèi)核控制第二平臺;檢測所述進程不能在第一平臺中執(zhí)行;請求第二內(nèi)核在第二平臺中創(chuàng)建第一平臺中的所述進程的復(fù)制進程,并且從第二內(nèi)核接收已經(jīng)在第二平臺中成功創(chuàng)建了所述復(fù)制進程的通知;響應(yīng)于從第二內(nèi)核收到指示第二平臺在第二平臺內(nèi)調(diào)度和執(zhí)行所述復(fù)制進程的信號,停止在第一平臺中調(diào)度所述進程;在收到終止所述進程的事件觸發(fā)器之后,終止第一平臺中的所述進程;以及向第二內(nèi)核發(fā)送指示已經(jīng)刪除了第一平臺中的所述進程的終止信號,其中由第一內(nèi)核執(zhí)行所述啟動步驟、所述檢測步驟、所述請求步驟、所述停止步驟、所述終止步驟和所述發(fā)送步驟。
2. 如權(quán)利要求1所述的方法,其中終止所述進程的所述事件觸發(fā)器從由暫停通知和kill命令組成的組中選擇,其中所述暫停通知由第二內(nèi)核發(fā)送,以指示第二平臺中的所述復(fù)制進程已經(jīng)暫停,并且其中kill命令被從所述混合系統(tǒng)的用戶處接收,以終止第一平臺中的所述進程。
3. 如權(quán)利要求1所述的方法,該方法還包括以下步驟在所述停止步驟之后并且在所述終止步驟之前,為在第二平臺中執(zhí)行的所述復(fù)制進程做出的輸入/輸出即1/0服務(wù)請求提供服務(wù),其中所述1/0服務(wù)請求指向耦接于第一平臺并且由第一內(nèi)核作為宿主的1/0設(shè)備,其中所述I/0服務(wù)請求由第二內(nèi)核來向第一內(nèi)核傳遞,并且其中所述提供服務(wù)步驟由第一內(nèi)核來執(zhí)行。
4. 如權(quán)利要求1所述的方法,該方法還包括以下步驟響應(yīng)于所述請求步驟,創(chuàng)建所述復(fù)制進程,并且隨后向第一內(nèi)核發(fā)送已經(jīng)在第二平臺中成功創(chuàng)建所述復(fù)制進程的通知;從第一內(nèi)核將第一平臺中的所述進程的頁裝入第二內(nèi)核,以便在第二平臺中執(zhí)行所述復(fù)制進程;調(diào)度所述復(fù)制進程的執(zhí)行,并且執(zhí)行所述復(fù)制進程的指令;在所述復(fù)制進程暫停之后,凍結(jié)與所述復(fù)制進程的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù),并且通知第一內(nèi)核所述復(fù)制進程已暫停;以及在收到指示已經(jīng)刪除了第一平臺中的所述進程的終止信號之后,釋放由所述復(fù)制進程占用的第二平臺中的資源,其中由第二內(nèi)核執(zhí)行所述創(chuàng)建步驟、所述裝入步驟、所述調(diào)度步驟、所述凍結(jié)步驟和所述釋放步驟。
5. 如權(quán)利要求4所述的方法,該方法還包括以下步驟在所述調(diào)度步驟之后并且在所述凍結(jié)步驟之前,在第二平臺中的所述復(fù)制進程調(diào)用了輸入/輸出即I/O服務(wù)之后,向第一內(nèi)核請求I/O服務(wù),其中所述I/O服務(wù)指向耦接于第一平臺并且由第一內(nèi)核作為宿主的i/o設(shè)備,并且其中由第二內(nèi)核執(zhí)行所述請求步驟。
6. 如權(quán)利要求1所述的方法,其中所述第一平臺是被配置為給所述混合系統(tǒng)提供內(nèi)核服務(wù)的高端大型機,其中第二平臺是被配置為主要執(zhí)行所述混合系統(tǒng)內(nèi)的計算密集型工作負載的低端服務(wù)器。
7. 如權(quán)利要求1所述的方法,其中第一平臺中的所述進程為第二平臺的操作系統(tǒng)的可執(zhí)行格式,其中所述進程代表第一平臺內(nèi)的第二平臺的操作系統(tǒng)的實例。
8. —種計算機系統(tǒng),包括處理器和耦接于所述處理器的計算機可讀存儲器單元,所述存儲器單元包含指令,所述指令在被所述處理器執(zhí)行時實現(xiàn)用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的方法,該方法包括以下步驟啟動所述混合系統(tǒng)的第一平臺中的進程,其中所述進程能在所述混合系統(tǒng)的第二平臺中執(zhí)行,其中第一內(nèi)核控制第一平臺,并且第二內(nèi)核控制第二平臺;檢測所述進程不能在第一平臺中執(zhí)行;請求第二內(nèi)核在第二平臺中創(chuàng)建第一平臺中的所述進程的復(fù)制進程,并且從第二內(nèi)核接收已經(jīng)在第二平臺中成功創(chuàng)建了所述復(fù)制進程的通知;響應(yīng)于從第二內(nèi)核收到指示第二平臺在第二平臺內(nèi)調(diào)度和執(zhí)行所述復(fù)制進程的信號,停止在第一平臺中調(diào)度所述進程;在收到終止所述進程的事件觸發(fā)器之后,終止第一平臺中的所述進程;以及向第二內(nèi)核發(fā)送指示已經(jīng)刪除了第一平臺中的所述進程的終止信號,其中由第一內(nèi)核執(zhí)行所述啟動步驟、所述檢測步驟、所述請求步驟、所述停止步驟、所述終止步驟和所述發(fā)送步驟。
9. 如權(quán)利要求8所述的計算機系統(tǒng),其中終止所述進程的所述事件觸發(fā)器從由暫停通知和kill命令組成的組中選擇,其中所述暫停通知由第二內(nèi)核發(fā)送,以指示第二平臺中的所述復(fù)制進程已經(jīng)暫停,并且其中kill命令被從所述混合系統(tǒng)的用戶處接收,以終止第一平臺中的所述進程。
10. 如權(quán)利要求8所述的計算機系統(tǒng),該方法還包括以下步驟在所述停止步驟之后并且在所述終止步驟之前,為在第二平臺中執(zhí)行的所述復(fù)制進程做出的輸入/輸出即1/0服務(wù)請求提供服務(wù),其中所述1/0服務(wù)請求指向耦接于第一平臺并且由第一內(nèi)核作為宿主的1/0設(shè)備,其中所述I/0服務(wù)請求由第二內(nèi)核來向第一內(nèi)核傳遞,并且其中所述提供服務(wù)步驟由第一 內(nèi)核來執(zhí)行。
11. 如權(quán)利要求8所述的計算機系統(tǒng),該方法還包括以下步驟響應(yīng)于所述請求步驟,創(chuàng)建所述復(fù)制進程,并且隨后向第一內(nèi)核發(fā)送已經(jīng)在第二平臺中成功創(chuàng)建所述復(fù)制進程的通知;從第一內(nèi)核將第一平臺中的所述進程的頁裝入第二內(nèi)核,以便在第二平臺中執(zhí)行所述復(fù)制進程;調(diào)度所述復(fù)制進程的執(zhí)行,并且執(zhí)行所述復(fù)制進程的指令;在所述復(fù)制進程暫停之后,凍結(jié)與所述復(fù)制進程的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù),并且通知第一內(nèi)核所述復(fù)制進程已暫停;以及在收到指示已經(jīng)刪除了第一平臺中的所述進程的終止信號之后,釋放由所述復(fù)制進程占用的第二平臺中的資源,其中由第二內(nèi)核執(zhí)行所述創(chuàng)建步驟、所述裝入步驟、所述調(diào)度步驟、所述凍結(jié)步驟和所述釋放步驟。
12. 如權(quán)利要求11所述的計算機系統(tǒng),該方法還包括以下步驟在所述調(diào)度步驟之后并且在所述凍結(jié)步驟之前,在第二平臺中的所述復(fù)制進程調(diào)用了輸入/輸出即I/O服務(wù)之后,向第一內(nèi)核請求I/O服務(wù),其中所述I/O服務(wù)指向耦接于第一平臺并且由第一內(nèi)核作為宿主的I/O設(shè)備,并且其中由第二內(nèi)核執(zhí)行所述請求步驟。
13.如權(quán)利要求8所述的計算機系統(tǒng),其中所述第一平臺是被配置為給所述混合系統(tǒng)提供內(nèi)核服務(wù)的高端大型機,其中第二平臺是被配置為主要執(zhí)行所述混合系統(tǒng)內(nèi)的計算密集型工作負載的低端服務(wù)器,并且其中第一平臺中的所述進程為第二平臺的操作系統(tǒng)的可執(zhí)行格式,其中所述進程代表第一平臺內(nèi)的第二平臺的操作系統(tǒng)的實例。
全文摘要
一種用于在混合系統(tǒng)中跨平臺轉(zhuǎn)移工作負載的系統(tǒng)和相關(guān)方法。控制混合系統(tǒng)中的第一平臺的第一內(nèi)核啟動可在混合系統(tǒng)的第二平臺中執(zhí)行的進程。第一內(nèi)核請求控制第二平臺的第二內(nèi)核創(chuàng)建該進程的復(fù)制進程,從而在第二平臺內(nèi)執(zhí)行該進程。該進程在第一平臺中代表該復(fù)制進程,而不消耗第一平臺的時鐘周期。在第二平臺中的復(fù)制進程的執(zhí)行期間,第一內(nèi)核為從第二內(nèi)核向第一內(nèi)核傳輸?shù)膹?fù)制進程的I/O請求提供服務(wù)。當(dāng)復(fù)制進程終止時,在復(fù)制進程釋放資源之前首先刪除第一平臺中的該進程。
文檔編號G06F9/50GK101763286SQ20091020838
公開日2010年6月30日 申請日期2009年11月12日 優(yōu)先權(quán)日2008年12月22日
發(fā)明者尤特茲·巴切 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乐昌市| 乌什县| 海兴县| 和静县| 洞口县| 大安市| 互助| 清涧县| 江阴市| 嘉义县| 广德县| 恩平市| 濮阳县| 英德市| 中牟县| 余干县| 沙洋县| 汝阳县| 扎鲁特旗| 青冈县| 商南县| 比如县| 广州市| 周宁县| 延边| 奉贤区| 宁国市| 博爱县| 沅江市| 财经| 微山县| 广汉市| 布尔津县| 厦门市| 绥滨县| 锡林浩特市| 太谷县| 长宁县| 定远县| 石嘴山市| 广丰县|