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