用于在客户机之间共享存储器的方法和系统技术方案

技术编号:13903215 阅读:80 留言:0更新日期:2016-10-26 00:18
本申请提供了用于在客户机之间共享存储器的方法和系统。在用于在都运行于数据处理系统上的第一客户机和第二客户机之间共享存储器的方法中,一个或多个计算机处理器将虚拟设备提供给第一客户机,用于代理第一客户机和第二客户机之间的存储器访问,其中第一客户机与第二客户机相关联,以及其中第一客户机运行第一操作系统,且第二客户机运行第二操作系统。所述一个或多个计算机处理器将一个或多个设备相关功能发送给第二客户机,其中所述虚拟设备使得能够在第一客户机和第二客户机之间共享存储器。

【技术实现步骤摘要】

本专利技术一般涉及数据处理系统的领域,并且更特别地涉及一种用于在运行于数据处理系统上的两个虚拟化系统之间共享存储器的方法、系统和计算机程序产品。
技术介绍
虚拟化数据处理系统可以提供关于该处理系统的真实资源和模拟资源的多个视图。这样的视图可以被实现为虚拟机或所谓的客户机。每个客户机作为独立于其他客户机的虚拟的单独数据处理系统运行。提供独立数据处理系统的视图的组件被称为系统管理程序(hypervisor)。系统管理程序的责任范围包括资源管理、模拟(如果必要的话)、以及客户机之间的隔离。偶尔,多个客户机遇到在一个任务上协作的需要,例如,一个客户机应该为另一个客户机分析数据。通常,通过经由虚拟网络在两个客户机之间拷贝数据来处理该通信。这允许促进熟知的编程范式。利用该方法,客户机的安全性和隔离仍可以被维持在高水平上。
技术实现思路
本专利技术的实施例公开了一种用于在都运行于数据处理系统上的第一客户机和第二客户机之间共享存储器的方法、计算机程序产品和系统。所述方法可以包括:一个或多个计算机处理器将虚拟设备提供给第一客户机,用于代理第一客户机和第二客户机之间的存储器访问,其中第一客户机与第二客户机相关联,以及其中第一客户机运行第一操作系统,且第二客户机运行第二操作系统。所述一个或多个计算机处理器将一个或多个设备相
关功能发送给第二客户机,其中虚拟设备使得能够在第一客户机和第二客户机之间共享存储器。此外,一种用于在都运行于数据处理系统上的第一客户机和第二客户机之间共享存储器的计算机程序产品可以包括:用于将虚拟设备提供给第一客户机,用于代理第一客户机和第二客户机之间的存储器访问的程序指令,其中第一客户机与第二客户机相关联,以及其中第一客户机运行第一操作系统,且第二客户机运行第二操作系统。程序指令将一个或多个设备相关功能发送给第二客户机,其中虚拟设备使得能够在第一客户机和第二客户机之间共享存储器。此外,提出了一种用于执行数据处理程序的数据处理系统,包括用于执行上述方法的计算机可读程序指令。附图说明图1是在其中实现根据本专利技术的实施例的方法的环境的系统示图;图2是根据本专利技术的实施例的用于在第一客户机和第二客户机之间共享存储器的方法的示例性过程的流程图;以及图3是用于执行根据本专利技术的方法的数据处理系统的示例实施例。具体实施方式在附图中,利用相同的附图标记来指代相同的元件。附图仅仅是示意性的表示,而并非旨在描绘本专利技术的具体参数。此外,附图旨在仅描绘本专利技术的典型实施例,并且因此不应被视为限制本专利技术的范围。本文描述的说明性实施例提供了一种用于在客户机之间共享存储器的方法、系统和计算机程序产品。说明性实施例有时在本文中使用仅仅为了描述的清楚起见而作为示例的特定技术来进行描述。说明性实施例可以用于在第一客户机和第二客户机之间共享存储器,第一客户机运行第一操作系统且第二客户机运行第二操作系统,其中两个操作系统可以为同一种,但是也可以是不同的操作系统。在虚拟系统中,在第一客户机上运行的应用和在第二客户机上运行的应用都由相同的系统管理程序(即,相同的物理机)托管。由于本专利技术的实施例,提供了一种机制来在两个客户机之间共享数据,从而允许第二客户机在第一客户机的的数据上操作。第一客户机识别对于第二应用而言将变得可用的数据,并调用第二客户机上的第二应用。系统管理程序将针对该调用的数据映射到第二应用的地址空间中,以用于立刻访问。在处理的同时,第二应用消费第二客户机的资源(例如,CPU、存储器、I/O),并且仍直接访问由第一客户机提供的数据。所提供的数据的地址转换允许使用较高级的语言对第二应用进行编程。在近来的发展中,以低开销将应用的计算密集型部分移动到操作系统,以执行更有成本效益的计算。根据所提出的方法,可以避免将存储器中的数据结构从一个操作系统移动到另一个操作系统的拷贝操作。不需要使用必须执行拷贝操作从而导致延迟的机制(类似于远程过程调用(RPC)、TCP/IP套接字、或者甚至远程直接存储器访问(RDMA))。消除该开销会显著地改善应用的总体性能。不需要操作系统或应用中的显著改变,就可以实现功能的封装。当根据本专利技术的实施例共享存储器时,不存在通信开销。由于不存在为共享存储器所需的拷贝操作,因此共享的数据量是与服务功能的调用无关的性能。可以通过从一客户机到另一客户机的功能调用来实现对存储器的共享。图1描绘了在其中实现根据本专利技术的实施例的方法的环境的系统示图。该系统示图示出第一客户机10和第二客户机20,在图1中被描绘为它们的存储器区域,其中系统管理程序30被指派给第一客户机10和第二客户机20,并且从而使第一客户机10与第二客户机20相关联。第一客户机10运行第一操作系统12(例如,一般的大型机操作系统)以及包含应用特定数据15的第一应用16。第一操作系统12可以包括内核,其可以发现第二客户机20上的应用。第二客户机20运行第二操作系统22(例如,)以及第二应用26(例如,如图1中的应用辅助包(ACC,application
assist cartridge),但是其可以表示任何分析算法)。第二应用26作为第二客户机20的用户空间代码28的一个应用而运行。系统管理程序30包含管理模块32以用于所有协作细节。应用管理模块32可以关于服务功能和诸如ACC之类的应用的使用,管理第一客户机10和第二客户机20之间的交互。系统调用40(SYSCALL)可以用于向第二操作系统22注册第二应用26。所提出的用于在第一客户机10和第二客户机20之间共享存储器的方法被用于:使第一客户机10的数据15被第二客户机20使用并被第二客户机20操作,而无需将数据15物理地拷贝到第二客户机20。而是,第二应用26可以通过使用从第一客户机10到第二客户机20的、请求第二应用26的一些服务(例如,ACC服务功能)的功能调用,来操作数据15。根据所提出的方法,系统管理程序30向虚拟设备14提供直接存储器访问。然后,第一客户机10可以向虚拟设备14宣告(announce)包含数据15的存储器区域,并开始对该数据调用设备特定功能。接着,系统管理程序30可以将先前宣告的存储器区域映射在第二客户机20的已经可用的存储器区域之上,并将设备相关功能分派给第二客户机20。以这种方式,由于虚拟设备14可以代理第一客户机10和第二客户机20之间的存储器访问,所以使得第一客户机10和第二客户机20能够经由虚拟设备14共享存储器。虚拟设备14可以配置有外围组件互连(PCI)设备语义。因此,可以宣告存储器区域将被使用。用于传递数据的寄存器存在,以用于计算目的以及用于指向存储器区域的指针。中断机制可以用于操作的完成和失败。因此,可能的是,以具有将被第一应用16使用的第二应用26的功能的通用外部板(external board)的方式使用第二应用26的服务,其中第二应用26可以在第一应用16的数据15上操作并修改数据15。以这种方式,将第二应用26的代码的功能提供给第一应用16的数据15。当第二应用26的服务功能与存储器区域一起工作时,服务功能的代码可以包含当存储器区域被访问时的定义。编译器/特殊数据结构可以转换存
储器区域访问中的地址。代码还实现存储器区域内的指针运算本文档来自技高网
...

【技术保护点】
一种用于在都运行于数据处理系统上的第一客户机和第二客户机之间共享存储器的方法,所述方法包括:由一个或多个计算机处理器将虚拟设备提供给第一客户机,用于代理所述第一客户机和第二客户机之间的存储器访问,其中所述第一客户机通过系统管理程序与所述第二客户机相关联,以及其中所述第一客户机运行第一操作系统,且所述第二客户机运行第二操作系统;以及由所述一个或多个计算机处理器将一个或多个设备相关功能发送给所述第二客户机,其中所述虚拟设备使得能够在所述第一客户机和所述第二客户机之间共享存储器。

【技术特征摘要】
2015.03.24 US 14/6665661.一种用于在都运行于数据处理系统上的第一客户机和第二客户机之间共享存储器的方法,所述方法包括:由一个或多个计算机处理器将虚拟设备提供给第一客户机,用于代理所述第一客户机和第二客户机之间的存储器访问,其中所述第一客户机通过系统管理程序与所述第二客户机相关联,以及其中所述第一客户机运行第一操作系统,且所述第二客户机运行第二操作系统;以及由所述一个或多个计算机处理器将一个或多个设备相关功能发送给所述第二客户机,其中所述虚拟设备使得能够在所述第一客户机和所述第二客户机之间共享存储器。2.根据权利要求1所述的方法,其中在所述第一客户机和所述第二客户机之间共享存储器还包括:由所述一个或多个计算机处理器向所述第二操作系统注册在所述第二客户机上运行的第二应用,以便提供一个或多个服务功能;由所述一个或多个计算机处理器从所述第二操作系统接收所述服务功能对所述系统管理程序的可用性的宣告;由所述一个或多个计算机处理器从所述系统管理程序接收向所述第一客户机宣告所述服务功能的宣告;由所述一个或多个计算机处理器确定在所述第一客户机上运行的第一应用发现了由所述系统管理程序宣告的所述服务功能;由所述一个或多个计算机处理器确定所述第一应用从所述系统管理程序请求了所述服务功能;由所述一个或多个计算机处理器确定所述系统管理程序向所述第二客户机告知了所述第一应用对所述服务功能的请求;由所述一个或多个计算机处理器确定所述第二客户机的所述第二操作系统接收到了所述第一应用对所述服务功能的请求;由所述一个或多个计算机处理器经由所述第二应用对来自所述第一应
\t用的请求进行服务,使得所述请求得到完成;由所述一个或多个计算机处理器从所述第二客户机的所述第二操作系统接收向所述系统管理程序通知所述请求的完成的通知;由所述一个或多个计算机处理器从所述系统管理程序接收向所述第一客户机的所述第一操作系统指示所述请求的完成的指示;以及由所述一个或多个计算机处理器从所述第一客户机的所述第一操作系统接收向所述第一应用通知所述请求的完成的通知。3.根据权利要求2所述的方法,还包括:由所述一个或多个计算机处理器向所述第二操作系统注册在所述第二客户机上运行的所述第二应用,以便通过阻塞系统调用提供服务功能。4.根据权利要求2所述的方法,其中从所述第二操作系统接收所述服务功能对所述系统管理程序的可用性的宣告还包括:由所述一个或多个计算机处理器调用半虚拟化功能;以及由所述一个或多个计算机处理器注册中断处理程...

【专利技术属性】
技术研发人员:U·巴赫尔D·丁格尔T·P·格罗塞尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1