CN101763286A - 用于在混合系统中跨平台转移工作负载的系统和方法 - Google Patents
用于在混合系统中跨平台转移工作负载的系统和方法 Download PDFInfo
- Publication number
- CN101763286A CN101763286A CN200910208386A CN200910208386A CN101763286A CN 101763286 A CN101763286 A CN 101763286A CN 200910208386 A CN200910208386 A CN 200910208386A CN 200910208386 A CN200910208386 A CN 200910208386A CN 101763286 A CN101763286 A CN 101763286A
- Authority
- CN
- China
- Prior art keywords
- platform
- kernel
- duplicating
- duplicating process
- carry out
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1043—Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1106—Call signalling protocols; H.323 and related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1108—Web based protocols, e.g. webRTC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于在混合系统中跨平台转移工作负载的系统和相关方法。控制混合系统中的第一平台的第一内核启动可在混合系统的第二平台中执行的进程。第一内核请求控制第二平台的第二内核创建该进程的复制进程,从而在第二平台内执行该进程。该进程在第一平台中代表该复制进程,而不消耗第一平台的时钟周期。在第二平台中的复制进程的执行期间,第一内核为从第二内核向第一内核传输的复制进程的I/O请求提供服务。当复制进程终止时,在复制进程释放资源之前首先删除第一平台中的该进程。
Description
技术领域
本发明公开了用于有效地组合高端大型机(mainframe)系统和低端服务器系统来提供稳定和成本有效的计算环境的系统和相关方法。
背景技术
常规宿主(hosting)环境采用多种类型的平台。对于关键任务应用,希望使用高端大型机以便提供稳定和健壮的服务。具有较低可靠性要求的计算密集型工作负载可在单独的分布式系统上执行(这导致附加的并且代价高的管理工作(management effort)),或者以成本效率较低的方式在大型机上执行(但是管理工作有限)。
为了在限制管理工作的同时,保留计算密集型工作负载的执行环境的成本效率,需要一种在具有不同体系结构的多个平台的计算环境中成本有效地执行计算密集型工作负载的系统和相关方法。
发明内容
本发明提供了用于在混合系统中跨平台转移工作负载的方法,该方法包括以下步骤:
启动所述混合系统的第一平台中的进程,其中所述进程能在所述混合系统的第二平台中执行,其中第一内核控制(govern)第一平台,并且第二内核控制第二平台;
检测所述进程不能在第一平台中执行;
请求第二内核在第二平台中创建第一平台中的所述进程的复制(duplicate)进程,并且从第二内核接收已经在第二平台中成功创建了所述复制进程的通知;
响应于从第二内核收到指示第二平台在第二平台内调度和执行所述复制进程的信号,停止在第一平台中调度所述进程;
在收到终止所述进程的事件触发器之后,终止第一平台中的所述进程;以及
向第二内核发送指示已经删除了第一平台中的所述进程的终止信号,
其中由第一内核执行所述启动步骤、所述检测步骤、所述请求步骤、所述停止步骤、所述终止步骤和所述发送步骤。
本发明提供了一种计算机程序产品,包括其中包含有计算机可读程序代码的计算机可用存储介质,所述计算机可读程序代码包含指令,所述指令在被计算机系统的处理器执行时实现用于在混合系统中跨平台转移工作负载的方法,该方法包括以下步骤:
启动所述混合系统的第一平台中的进程,其中所述进程能在所述混合系统的第二平台中执行,其中第一内核控制第一平台,并且第二内核控制第二平台;
检测所述进程不能在第一平台中执行;
请求第二内核在第二平台中创建第一平台中的所述进程的复制进程,并且从第二内核接收已经在第二平台中成功创建了所述复制进程的通知;
响应于从第二内核收到指示第二平台在第二平台内调度和执行所述复制进程的信号,停止在第一平台中调度所述进程;
在收到终止所述进程的事件触发器之后,终止第一平台中的所述进程;以及
向第二内核发送指示已经删除了第一平台中的所述进程的终止信号,
其中由第一内核执行所述启动步骤、所述检测步骤、所述请求步骤、所述停止步骤、所述终止步骤和所述发送步骤。
本发明提供了一种计算机系统,包括处理器和耦接于所述处理器的计算机可读存储器单元,所述存储器单元包含指令,所述指令在被所述处理器执行时实现用于在混合系统中跨平台转移工作负载的方法,该方法包括以下步骤:
启动所述混合系统的第一平台中的进程,其中所述进程能在所述混合系统的第二平台中执行,其中第一内核控制第一平台,并且第二内核控制第二平台;
检测所述进程不能在第一平台中执行;
请求第二内核在第二平台中创建第一平台中的所述进程的复制进程,并且从第二内核接收已经在第二平台中成功创建了所述复制进程的通知;
响应于从第二内核收到指示第二平台在第二平台内调度和执行所述复制进程的信号,停止在第一平台中调度所述进程;
在收到终止所述进程的事件触发器之后,终止第一平台中的所述进程;以及
向第二内核发送指示已经删除了第一平台中的所述进程的终止信号,
其中由第一内核执行所述启动步骤、所述检测步骤、所述请求步骤、所述停止步骤、所述终止步骤和所述发送步骤。
本发明提供了克服用于在混合系统中执行工作负载的常规方法和系统的至少一个当前缺点的方法和系统。
附图说明
图1示出了根据本发明实施例的用于跨平台转移工作负载的混合系统。
图2是根据本发明实施例的、描述了内核K和内核U如何互操作以便在混合系统中跨平台转移工作负载的控制流程图。
图2A是根据本发明实施例的、描述了由内核K执行的用于在混合系统中跨平台转移工作负载的方法的流程图。
图2B是根据本发明实施例的、描述了由内核U执行的用于在混合系统中跨平台转移工作负载的方法的流程图。
图3示出了根据本发明实施例的用于在混合系统中跨平台转移工作负载的计算机系统。
具体实施方式
图1示出了根据本发明实施例的用于跨平台转移工作负载的混合系统100。
混合系统100包括通过数据路径180互连的至少一个系统U和系统K110。所述至少一个系统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)服务,存储器共享服务,I/O同步,系统管理服务,以及硬件服务等。该操作系统的例子尤其可以是Linux、等。(UNIX是X/Open公司在美国和其它国家中的注册商标。)
内核K130包括作为功能组件的装载器/链接器K131、调度器K132、页错误(page fault)处理器K133和系统调用处理器K134。
装载器/链接器K131将二进制代码装入系统K110的存储器区域,并且链接为执行所必需的库文件。装载器/链接器K131检查二进制代码的格式,以便确定装入的二进制代码是否可以在系统K110内执行。
调度器K132给进程分配优先级以便有秩序的执行。根据分配给进程的各自的优先级,进程占用系统K110的微处理器时钟周期。
页错误处理器K133处理由页错误引起的进程中断/异常,该页错误是在程序试图访问被映射到地址空间内但是未被装入系统K110的物理存储器中的页时发生的。页错误处理器K133调用装载器/链接器K131以便装入出错页。
系统调用处理器K 134执行系统调用,该系统调用请求由内核K130提供的内核服务。系统调用由系统K110和/或系统U150上的进程来调用。
在混合系统100中,内核K130借助于来自系统K110和系统U130的系统调用来为所有I/O请求提供服务。I/O设备的例子尤其可以是:直接访问存储设备(DASD)、企业磁带系统(enterprise tape system)等。(HiperSockets是国际商业机器公司在美国和其它国家中的注册商标。)
系统U150是低端服务器,其被配置为主要为混合系统100中的系统U150和系统K110两者执行用户应用。在混合系统100中采用系统U150,以便通过将计算密集型工作负载从系统K110转移到系统U150来提供成本有效的计算环境。
系统U150包括复制进程161和内核U170。内核U170是控制系统U150的操作系统的核心。内核U170包括装载器/链接器U171、调度器U172、页错误处理器U173和系统调用处理器U174,它们是功能组件而不是物理分离的单元。
复制进程161是在系统U150中创建以便执行系统K110中的系统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。
在本发明的一个实施例中,系统U150是采用或处理器的刀片服务器,并且系统K110是大型机(Intel是Intel公司在美国和其它国家的注册商标;AMD是Advanced MicroDevices公司在美国和其它国家的注册商标;IBM和System z是国际商业机器公司在美国和其它国家的注册商标)。刀片服务器和大型机两者都采用Linux操作系统或其它UNIX族OS。混合系统100保持大型机对直接访问存储设备(DASD)、企业磁带系统等的输入/输出能力。(HiperSockets是国际商业机器公司在美国和其它国家中的注册商标。)
混合系统100保持大型机的出众的硬件稳定性和管理特征。混合系统100还在刀片服务器上执行计算密集型的应用,以实现高成本效率。混合系统100为大型机和刀片服务器两者上的所有应用提供所有资源的统一视图。
可以在,尤其是,动态Web服务、数据挖掘、R/3应用服务、群件处理、应用服务和处理领域中采用混合系统100。(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中的复制进程的输入/输出(I/O)请求服务。内核K从执行下文中图2B的步骤250U的内核U接收I/O请求。内核K以与来自系统U的I/O请求数目一样多的次数来重复步骤251K。在执行步骤251K之后,内核K可以接收来自系统U的复制进程已被暂停(halt)的暂停通知或另一个I/O请求。
在步骤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。如果在执行期间从复制进程调用了I/O服务请求,则内核U继续进行步骤250U。如果在执行期间复制进程调用多个I/O服务,则内核U可以多次执行步骤250U。如果复制进程暂停而不曾调用I/O服务请求,则内核U可以不执行步骤250U,并且继续进行步骤260U。
在步骤250U,内核U为复制进程向内核K请求0个或更多个I/O服务。当复制进程在系统U中执行时,复制进程通过相应的系统调用向内核U请求I/O服务。由于I/O设备连接到混合系统中的系统K并且由系统K提供服务,因此内核U随后向内核K请求I/O服务。因此,在系统K而不是系统U内远程执行对I/O服务的相应系统调用。
在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可以是单个存储设备的部分而不是分离的存储设备。
虽然此处出于说明的目的已经描述了本发明的具体实施例,但是本领域技术人员将明了许多修改和变型。因此,所附权利要求意图包含落在本发明的精神和范围内的所有这些修改和变型。
Claims (13)
1.一种用于在混合系统中跨平台转移工作负载的方法,所述方法包括以下步骤:
启动所述混合系统的第一平台中的进程,其中所述进程能在所述混合系统的第二平台中执行,其中第一内核控制第一平台,并且第二内核控制第二平台;
检测所述进程不能在第一平台中执行;
请求第二内核在第二平台中创建第一平台中的所述进程的复制进程,并且从第二内核接收已经在第二平台中成功创建了所述复制进程的通知;
响应于从第二内核收到指示第二平台在第二平台内调度和执行所述复制进程的信号,停止在第一平台中调度所述进程;
在收到终止所述进程的事件触发器之后,终止第一平台中的所述进程;以及
向第二内核发送指示已经删除了第一平台中的所述进程的终止信号,
其中由第一内核执行所述启动步骤、所述检测步骤、所述请求步骤、所述停止步骤、所述终止步骤和所述发送步骤。
2.如权利要求1所述的方法,其中终止所述进程的所述事件触发器从由暂停通知和kill命令组成的组中选择,其中所述暂停通知由第二内核发送,以指示第二平台中的所述复制进程已经暂停,并且其中kill命令被从所述混合系统的用户处接收,以终止第一平台中的所述进程。
3.如权利要求1所述的方法,该方法还包括以下步骤:
在所述停止步骤之后并且在所述终止步骤之前,为在第二平台中执行的所述复制进程做出的输入/输出即I/O服务请求提供服务,其中所述I/O服务请求指向耦接于第一平台并且由第一内核作为宿主的I/O设备,其中所述I/O服务请求由第二内核来向第一内核传递,并且其中所述提供服务步骤由第一内核来执行。
4.如权利要求1所述的方法,该方法还包括以下步骤:
响应于所述请求步骤,创建所述复制进程,并且随后向第一内核发送已经在第二平台中成功创建所述复制进程的通知;
从第一内核将第一平台中的所述进程的页装入第二内核,以便在第二平台中执行所述复制进程;
调度所述复制进程的执行,并且执行所述复制进程的指令;
在所述复制进程暂停之后,冻结与所述复制进程的执行相关联的数据,并且通知第一内核所述复制进程已暂停;以及
在收到指示已经删除了第一平台中的所述进程的终止信号之后,释放由所述复制进程占用的第二平台中的资源,
其中由第二内核执行所述创建步骤、所述装入步骤、所述调度步骤、所述冻结步骤和所述释放步骤。
5.如权利要求4所述的方法,该方法还包括以下步骤:
在所述调度步骤之后并且在所述冻结步骤之前,在第二平台中的所述复制进程调用了输入/输出即I/O服务之后,向第一内核请求I/O服务,其中所述I/O服务指向耦接于第一平台并且由第一内核作为宿主的I/O设备,并且其中由第二内核执行所述请求步骤。
6.如权利要求1所述的方法,其中所述第一平台是被配置为给所述混合系统提供内核服务的高端大型机,其中第二平台是被配置为主要执行所述混合系统内的计算密集型工作负载的低端服务器。
7.如权利要求1所述的方法,其中第一平台中的所述进程为第二平台的操作系统的可执行格式,其中所述进程代表第一平台内的第二平台的操作系统的实例。
8.一种计算机系统,包括处理器和耦接于所述处理器的计算机可读存储器单元,所述存储器单元包含指令,所述指令在被所述处理器执行时实现用于在混合系统中跨平台转移工作负载的方法,该方法包括以下步骤:
启动所述混合系统的第一平台中的进程,其中所述进程能在所述混合系统的第二平台中执行,其中第一内核控制第一平台,并且第二内核控制第二平台;
检测所述进程不能在第一平台中执行;
请求第二内核在第二平台中创建第一平台中的所述进程的复制进程,并且从第二内核接收已经在第二平台中成功创建了所述复制进程的通知;
响应于从第二内核收到指示第二平台在第二平台内调度和执行所述复制进程的信号,停止在第一平台中调度所述进程;
在收到终止所述进程的事件触发器之后,终止第一平台中的所述进程;以及
向第二内核发送指示已经删除了第一平台中的所述进程的终止信号,
其中由第一内核执行所述启动步骤、所述检测步骤、所述请求步骤、所述停止步骤、所述终止步骤和所述发送步骤。
9.如权利要求8所述的计算机系统,其中终止所述进程的所述事件触发器从由暂停通知和kill命令组成的组中选择,其中所述暂停通知由第二内核发送,以指示第二平台中的所述复制进程已经暂停,并且其中kill命令被从所述混合系统的用户处接收,以终止第一平台中的所述进程。
10.如权利要求8所述的计算机系统,该方法还包括以下步骤:
在所述停止步骤之后并且在所述终止步骤之前,为在第二平台中执行的所述复制进程做出的输入/输出即I/O服务请求提供服务,其中所述I/O服务请求指向耦接于第一平台并且由第一内核作为宿主的I/O设备,其中所述I/O服务请求由第二内核来向第一内核传递,并且其中所述提供服务步骤由第一内核来执行。
11.如权利要求8所述的计算机系统,该方法还包括以下步骤:
响应于所述请求步骤,创建所述复制进程,并且随后向第一内核发送已经在第二平台中成功创建所述复制进程的通知;
从第一内核将第一平台中的所述进程的页装入第二内核,以便在第二平台中执行所述复制进程;
调度所述复制进程的执行,并且执行所述复制进程的指令;
在所述复制进程暂停之后,冻结与所述复制进程的执行相关联的数据,并且通知第一内核所述复制进程已暂停;以及
在收到指示已经删除了第一平台中的所述进程的终止信号之后,释放由所述复制进程占用的第二平台中的资源,
其中由第二内核执行所述创建步骤、所述装入步骤、所述调度步骤、所述冻结步骤和所述释放步骤。
12.如权利要求11所述的计算机系统,该方法还包括以下步骤:
在所述调度步骤之后并且在所述冻结步骤之前,在第二平台中的所述复制进程调用了输入/输出即I/O服务之后,向第一内核请求I/O服务,其中所述I/O服务指向耦接于第一平台并且由第一内核作为宿主的I/O设备,并且其中由第二内核执行所述请求步骤。
13.如权利要求8所述的计算机系统,其中所述第一平台是被配置为给所述混合系统提供内核服务的高端大型机,其中第二平台是被配置为主要执行所述混合系统内的计算密集型工作负载的低端服务器,并且其中第一平台中的所述进程为第二平台的操作系统的可执行格式,其中所述进程代表第一平台内的第二平台的操作系统的实例。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/341,342 | 2008-12-22 | ||
US12/341,342 US8191072B2 (en) | 2008-12-22 | 2008-12-22 | System and method for shifting workloads across platform in a hybrid system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101763286A true CN101763286A (zh) | 2010-06-30 |
CN101763286B CN101763286B (zh) | 2014-03-12 |
Family
ID=42268023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910208386.4A Active CN101763286B (zh) | 2008-12-22 | 2009-11-12 | 用于在混合系统中跨平台转移工作负载的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8191072B2 (zh) |
KR (1) | KR101091509B1 (zh) |
CN (1) | CN101763286B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775608A (zh) * | 2015-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 独立系统进程的实现方法和装置 |
CN106888244A (zh) * | 2016-06-02 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN109426571A (zh) * | 2017-08-28 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 函数调用和数据访问的方法、系统、存储介质、处理器和装置 |
CN111124522A (zh) * | 2020-04-01 | 2020-05-08 | 广东戴维利科技有限公司 | 一种微内核及宏内核混合的方法及系统 |
CN111414240A (zh) * | 2019-01-07 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458466B2 (en) | 2008-12-22 | 2013-06-04 | International Business Machines Corporation | System and method for handling cross-platform system call in a hybrid system |
US8191072B2 (en) | 2008-12-22 | 2012-05-29 | International Business Machines Corporation | System and method for shifting workloads across platform in a hybrid system |
US8621207B2 (en) | 2008-12-23 | 2013-12-31 | International Business Machines Corporation | System and method for handling cross-platform system call with shared page cache in hybrid system |
US9817695B2 (en) * | 2009-04-01 | 2017-11-14 | Vmware, Inc. | Method and system for migrating processes between virtual machines |
US8813048B2 (en) * | 2009-05-11 | 2014-08-19 | Accenture Global Services Limited | Single code set applications executing in a multiple platform system |
US8832699B2 (en) | 2009-05-11 | 2014-09-09 | Accenture Global Services Limited | Migrating processes operating on one platform to another platform in a multi-platform system |
US8631411B1 (en) * | 2009-07-21 | 2014-01-14 | The Research Foundation For The State University Of New York | Energy aware processing load distribution system and method |
US9331869B2 (en) * | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US8966020B2 (en) | 2010-11-02 | 2015-02-24 | International Business Machines Corporation | Integration of heterogeneous computing systems into a hybrid computing system |
US9081613B2 (en) | 2010-11-02 | 2015-07-14 | International Business Machines Corporation | Unified resource manager providing a single point of control |
US9253016B2 (en) * | 2010-11-02 | 2016-02-02 | International Business Machines Corporation | Management of a data network of a computing environment |
US8959220B2 (en) | 2010-11-02 | 2015-02-17 | International Business Machines Corporation | Managing a workload of a plurality of virtual servers of a computing environment |
US8984109B2 (en) | 2010-11-02 | 2015-03-17 | International Business Machines Corporation | Ensemble having one or more computing systems and a controller thereof |
US8621238B1 (en) * | 2011-07-26 | 2013-12-31 | The United States Of America As Represented By The Secretary Of The Air Force | Using software-based decision procedures to control instruction-level execution |
US8966004B2 (en) * | 2011-09-29 | 2015-02-24 | Comcast Cable Communications, LLC. | Multiple virtual machines in a mobile virtualization platform |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU598101B2 (en) * | 1987-02-27 | 1990-06-14 | Honeywell Bull Inc. | Shared memory controller arrangement |
US5887165A (en) * | 1996-06-21 | 1999-03-23 | Mirage Technologies, Inc. | Dynamically reconfigurable hardware system for real-time control of processes |
DE19635581C1 (de) * | 1996-09-02 | 1997-10-23 | Siemens Ag | Verfahren und System zur Bestimmung des Aufenthaltsorts eines in einem zellularen Mobilfunknetz registrierten Funkteilnehmers |
US6339819B1 (en) * | 1997-12-17 | 2002-01-15 | Src Computers, Inc. | Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer |
US7003593B2 (en) | 1997-12-17 | 2006-02-21 | Src Computers, Inc. | Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port |
US7028312B1 (en) | 1998-03-23 | 2006-04-11 | Webmethods | XML remote procedure call (XML-RPC) |
US6434628B1 (en) | 1999-08-31 | 2002-08-13 | Accenture Llp | Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns |
US6961941B1 (en) | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
US7200840B2 (en) | 2002-10-24 | 2007-04-03 | International Business Machines Corporation | Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture |
US7536688B2 (en) | 2003-02-28 | 2009-05-19 | Azul Systems | Segmented virtual machine |
CN100547973C (zh) * | 2007-05-23 | 2009-10-07 | 华中科技大学 | 一种基于对等网络的高性能计算系统 |
US8191072B2 (en) | 2008-12-22 | 2012-05-29 | International Business Machines Corporation | System and method for shifting workloads across platform in a hybrid system |
US8621207B2 (en) | 2008-12-23 | 2013-12-31 | International Business Machines Corporation | System and method for handling cross-platform system call with shared page cache in hybrid system |
-
2008
- 2008-12-22 US US12/341,342 patent/US8191072B2/en active Active
-
2009
- 2009-11-12 CN CN200910208386.4A patent/CN101763286B/zh active Active
- 2009-11-13 KR KR1020090109630A patent/KR101091509B1/ko active IP Right Grant
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775608A (zh) * | 2015-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 独立系统进程的实现方法和装置 |
CN106775608B (zh) * | 2015-11-24 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 独立系统进程的实现方法和装置 |
CN106888244A (zh) * | 2016-06-02 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN109426571A (zh) * | 2017-08-28 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 函数调用和数据访问的方法、系统、存储介质、处理器和装置 |
CN111414240A (zh) * | 2019-01-07 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
CN111414240B (zh) * | 2019-01-07 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
CN111124522A (zh) * | 2020-04-01 | 2020-05-08 | 广东戴维利科技有限公司 | 一种微内核及宏内核混合的方法及系统 |
CN111124522B (zh) * | 2020-04-01 | 2020-08-04 | 广东戴维利科技有限公司 | 一种微内核及宏内核混合的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20100073980A (ko) | 2010-07-01 |
KR101091509B1 (ko) | 2011-12-08 |
US8191072B2 (en) | 2012-05-29 |
CN101763286B (zh) | 2014-03-12 |
US20100162252A1 (en) | 2010-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763286B (zh) | 用于在混合系统中跨平台转移工作负载的系统和方法 | |
US10292044B2 (en) | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods | |
CN102326132B (zh) | 最大化虚拟机平台的降低功率状态的电源管理 | |
US8117615B2 (en) | Facilitating intra-node data transfer in collective communications, and methods therefor | |
Ghormley et al. | GLUix: a global layer unix for a network of workstations | |
US7383405B2 (en) | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity | |
US8458466B2 (en) | System and method for handling cross-platform system call in a hybrid system | |
US8495573B2 (en) | Checkpoint and restartable applications and system services | |
US9274972B2 (en) | Handling cross-platform system call with a shared page cache in a hybrid computing system | |
CN101741912A (zh) | 一种处理计算任务的方法、网络设备及分布式网络系统 | |
CN112800017B (zh) | 分布式日志采集方法、装置、介质及电子设备 | |
CN110851237A (zh) | 一种面向国产平台的容器跨异构集群重构方法 | |
US20130318528A1 (en) | Information processing method | |
Rashid | An inter-process communication facility for UNIX | |
CN109347716A (zh) | 消费者vnf的实例化方法及装置 | |
US10536328B2 (en) | Methods and systems that implement an application-level tunnel through which long syslog messages are transmitted | |
WO2024007934A1 (zh) | 中断处理方法、电子设备和存储介质 | |
Lux | Adaptable object migration: concept and implementation | |
Dan et al. | Quasi-asynchronous migration: A novel migration protocol for PVM tasks | |
Lufei et al. | vStarCloud: An operating system architecture for Cloud computing | |
Hori et al. | Global state detection using network preemption | |
Tan et al. | tmPVM-task migratable PVM | |
Mullender | Process management in a distributed operating system | |
US20220232069A1 (en) | Actor-and-data-grid-based distributed applications | |
Otto | Processor virtualization and migration for PVM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |