用于在多个进程之间传输数据的方法、设备和程序产品技术

技术编号:36545652 阅读:13 留言:0更新日期:2023-02-04 16:57
本公开涉及用于在多个进程之间传输数据的方法、设备和程序产品。在一种方法中,响应于接收到在计算设备中的客户端进程和服务器进程之间传输数据的请求,在所述客户端进程和所述服务器进程之间建立通信连接。响应于确定所述计算设备中存在可用共享存储区块,向所述通信连接分配共享存储区块。利用所述共享存储区块在所述客户端进程与所述服务器进程之间传输数据。进一步,提供了相应的设备和程序产品。利用本公开的示例性实现方式,共享存储区块可以为进程间的数据传输提供更高的带宽,进而提高数据传输的性能。高数据传输的性能。高数据传输的性能。

【技术实现步骤摘要】
用于在多个进程之间传输数据的方法、设备和程序产品


[0001]本公开的各实现方式涉及进程管理,更具体地,涉及管理在计算设备中的多个进程之间传输数据的方法、设备和计算机程序产品。

技术介绍

[0002]随着计算机技术的发展,可以在单一的计算设备上运行多个进程,多个进程可以协同操作以便实现更为复杂的功能。目前已经提出了多种进程间通信方式。然而,已有的通信方式性能较低并且在传输大量数据时可能会出现难以接受的延迟。此时,如何以更高的效率来在多个进程之间传输数据,成为一个技术难题。

技术实现思路

[0003]因而,期望能够开发并实现一种以更为有效的方式来多个进程之间传输数据的技术方案。期望该技术方案能够与现有的进程管理技术相兼容,并且通过改造现有进程的各种配置,来以更为有效的方式管理进程间通信。
[0004]根据本公开的第一方面,提供了一种用于在多个进程之间传输数据的方法。在该方法中,响应于接收到在计算设备中的客户端进程和服务器进程之间传输数据的请求,在客户端进程和服务器进程之间建立通信连接。响应于确定计算设备中存在可用共享存储区块,向通信连接分配共享存储区块。利用共享存储区块在客户端进程与服务器进程之间传输数据。
[0005]根据本公开的第二方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行根据本公开的第一方面的方法。
[0006]根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
[0007]结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
[0008]图1示意性示出了根据一个技术方案的进程间通信的框图;
[0009]图2示意性示出了根据本公开的示例性实现方式的用于在多个进程之间传输数据的框图;
[0010]图3示意性示出了根据本公开的示例性实现方式的用于在多个进程之间传输数据的方法的流程图;
[0011]图4示意性示出了根据本公开的示例性实现方式的在客户端进程和服务器进程之间建立通信连接的框图;
[0012]图5示意性示出了根据本公开的示例性实现方式的由服务器进程的IO线程来管理各个通信连接的框图;
[0013]图6示意性示出了根据本公开的示例性实现方式的基于轮询方式来由服务器进程的多个IO线程管理各个通信连接的框图;
[0014]图7示意性示出了根据本公开的示例性实现方式的客户端进程和服务器进程之间的交互的框图;
[0015]图8示意性示出了根据本公开的示例性实现方式的客户端进程和服务器进程之间的交互的框图;
[0016]图9示意性示出了根据本公开的示例性实现方式的计算设备的物理区块与标识符之间的地址映射的框图;以及
[0017]图10示意性示出了根据本公开的示例性实现的用于在多个进程之间传输数据的设备的框图。
具体实施方式
[0018]下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0019]在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0020]可以在计算设备上运行多个进程,并且多个进程可以协同操作以便实现更为复杂的功能。目前已经提出了基于共享内存来在在多个进程之间通信的技术方案。然而,出于多进程、多线程、存储器大小限制、线程负载均衡、竞争条件、错误处理、编程语言差异、大页面等方面的限制,这些技术方案难以在复杂环境中实现。
[0021]例如,该图1示意性示出了根据一个技术方案的进程间通信的框图100,该图示出了基于Unix域套接字(Unix Domain Socket,UDS)的通信方案。该通信方案需要在用户空间和内核空间之间交互。例如,可以按照常规缓存的大小,对套接字缓存120执行常规缓存读操作122。此时,大页面缓存124中的待传输数据需要经由至一个或多个常规缓存读操作122来处理。NVMe引擎110可以担任两个套接字缓存120和128之间的传输中介,并且可以经由大页面缓存写操作126来向套接字缓存128中写入数据。
[0022]将会理解,已有的进程间通信方式过程复杂,并且当需要在多个进程之间同步数据时,将会导致更加复杂的过程。当进程包括多个线程时,需要进一步考虑多个线程之间的冲突问题和负载平衡问题。又例如,当多个进程是使用不同编程语言(例如,Java和C++,等等)编写时,各种编程语言访问计算设备中的物理存储空间的方式有所不同,这导致需要提供额外的地址转换服务。因而,已有的进程间通信方式工作效率低下并且难以为多种进程提供统一的通信服务。
[0023]为了解决已有技术方案中的缺陷,本公开的示例性实现方式提出了一种用于在计算设备中的多个进程之间传输数据的方法。在下文中,将参见图2描述根据本公开的一个示例性实现方式的概要,该图2示意性示出了根据本公开的示例性实现方式的用于在多个进程之间传输数据的框图200。如图2所示,可以将进程划分为客户端进程210和服务器进程220两种类型。客户端进程210可以请求与服务器进程220建立通信连接230。继而,服务器进程220可以向通信连接230分配250一个或多个共享存储区块240,以便使得客户端进程210和服务器进程220可以经由该共享存储区块240来传输数据。
[0024]利用本公开的示例性实现方式,客户端进程210和服务器进程220可以经由共享存储区块240来传输数据,而不是经由通信连接230本身传输数据。以此方式,可以大大提高数据传输效率,并且避免将较大的待传输区块拆分为通信连接230支持的多个较小传输区块。
[0025]在下文中,将参见图3描述根据本公开的一个示例性实现方式的更多细节。图3示意性示出了根据本公开的示例性实现方式的用于在多个进程之间传输数据的方法300的流程图。如图3所示,在框310处,响应于接收到在客户端进程210和服务器进程220之间传输数据的请求,在客户端进程210和服务器进程220之间建立通信连接230。根据本公开的一个示例性实现方式,可以将发起请求的进程称为客户端进程210,并且将另一进程称为服务器进程220。可以在服务器进程220处运行根据本公开的一个示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于在多个进程之间传输数据的方法,包括:响应于接收到在计算设备中的客户端进程和服务器进程之间传输数据的请求,在所述客户端进程和所述服务器进程之间建立通信连接;响应于确定所述计算设备中存在可用共享存储区块,向所述通信连接分配共享存储区块;以及利用所述共享存储区块在所述客户端进程与所述服务器进程之间传输数据。2.根据权利要求1所述的方法,其中向所述通信连接分配所述共享存储区块包括:将所述通信连接的属性设置为“共享存储模式”,以指示所述客户端进程与所述服务器进程经由所述共享存储区块传输数据。3.根据权利要求1所述的方法,进一步包括:响应于确定所述计算设备中不存在可用共享存储区块,将所述通信连接的属性设置为“非共享存储模式”,以指示所述客户端进程与所述服务器进程经由所述通信连接来传输所述数据。4.根据权利要求1所述的方法,其中在所述客户端进程和所述服务器进程之间建立所述通信连接包括:接收来自所述客户端进程中的客户端线程的所述请求,在所述客户端线程和所述服务器进程之间建立所述通信连接;以及所述方法进一步包括:响应于接收到来自所述客户端进程中的另一客户端线程的另一请求,在所述客户端线程和所述服务器进程之间建立另一通信连接。5.根据权利要求4所述的方法,进一步包括:响应于确定所述客户端进程与所述服务器进程之间存在多个通信连接,分别利用所述服务器进程的多个服务器线程来管理所述多个通信连接。6.根据权利要求5所述的方法,其中所述多个服务器线程分别由所述计算设备的多个处理器核来运行。7.根据权利要求1所述的方法,其中所述客户端进程和所述服务器进程使用不同的编程语言来编写,以及其中向所述通信连接分配所述共享存储区块包括:获取所述共享存储区块在所述计算设备中的地址;建立所述地址与所述共享存储区块的标识符之间的映射关系;以及指示所述客户端进程经由所述标识符来访问所述共享存储区块。8.根据权利要求1所述的方法,其中利用所述共享存储区块在所述客户端进程与所述服务器进程之间传输数据包括以下至少任一项:指示所述客户端进程经由所述共享存储区块向所述服务器进程发送数据;以及指示所述客户端进程经由所述共享存储区块从所述服务器进程接收数据。9.根据权利要求1所述的方法,进一步包括:响应于接收到用于停止所述数据传输的请求,断开所述通信连接;以及释放被分配给所述通信连接的所述共享存储区块。10.根据权利要求1所述的方法,其中所述方法在所述服务器进程处被执行。11.一种电子设备,包括:至少一个处理器;易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行用于在多...

【专利技术属性】
技术研发人员:王兴山刘晓晨曹江
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:

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

1