CN116662037A - 一种共享内存的处理方法、装置、电子设备及存储介质 - Google Patents
一种共享内存的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116662037A CN116662037A CN202310911007.8A CN202310911007A CN116662037A CN 116662037 A CN116662037 A CN 116662037A CN 202310911007 A CN202310911007 A CN 202310911007A CN 116662037 A CN116662037 A CN 116662037A
- Authority
- CN
- China
- Prior art keywords
- shared memory
- multicast message
- related information
- operating system
- thread
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 274
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims abstract description 113
- 238000012545 processing Methods 0.000 claims abstract description 59
- 230000001360 synchronised effect Effects 0.000 claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000013507 mapping Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 13
- 230000008569 process Effects 0.000 description 58
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种共享内存的处理方法、装置、电子设备及存储介质。属于通信技术领域,该方法包括:在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;其中,所述对象为操作系统中的程序运行单元。因此,本发明的一个实施例,可以解决现有技术中共享内存的相关信息的同步方法,无法满足多进程或多任务并行处理的场景的问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种共享内存的处理方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,自动驾驶技术逐渐成熟。在自动驾驶系统中,通常会配备多种传感器,比如雷达,摄像头等,传感器的数据被采集后,数据会在自动驾驶系统内部的各个模块组成的多条流水线上流转并加工处理。
目前,自动驾驶系统中一般采用多核处理器,从而使得多任务处理能力更强。并且,在多核处理器的基础上,自动驾驶系统,还可以结合大数据量通信时采用的共享内存技术,从而达到低延时、高带宽的效果。
然而,在实现本发明过程中,发明人发现:目前一般的共享内存技术只适用于串行使用的场景,比如基于开源操作系统(Linux)的多进程共享内存机制,在使用时,一端进程必须点到点地显式通过进程间通信将共享内存的相关信息发送给对端进程,对端进程收到共享内存信息后再映射到本进程的虚拟地址空间。例如存在A、B、C、D 四个进程,其中,A进程申请成功共享内存之后,发送给B进程共享内存的相关信息之后,才能再发送给C进程和D进程。
可见,目前多进程间必须要进行同步通信,而且要串行使用共享内存 ,无法满足多进程或多任务并行处理的场景。
发明内容
本发明实施例的目的是提供一种共享内存的处理方法、装置、电子设备及存储介质,以解决现有技术中共享内存的相关信息的同步方法,无法满足多进程或多任务并行处理的场景的问题。
一方面,提供了一种共享内存的处理方法,所述方法包括:
在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;
其中,所述对象为操作系统中的程序运行单元。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组;
通过组播方式将所述共享内存的相关信息并行同步给至少一个第二对象,包括:
通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
通过所述至少一个第二对象接收所述第一组播消息。
在一种可能实施方式中,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
在一种可能实施方式中,所述方法还包括如下中至少一项:
通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象,包括:
在所述第一对象内启动服务器线程;
通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
通过所述客户端线程接收所述目标信息,并保存所述目标信息。
在一种可能实施方式中,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象,还包括:
通过所述第四对象接收所述第二组播消息。
在一种可能实施方式中,所述方法还包括:
通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
在一种可能实施方式中,所述方法还包括:
将所述共享内存中的待计算数据搬至高速缓存中;
对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。
另一方面,提供了一种共享内存的处理装置,所述装置包括:
同步模块,用于在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;
其中,所述对象为操作系统中的程序运行单元。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组;
所述同步模块包括:
第一发送子模块,用于通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
第一接收子模块,用于通过所述至少一个第二对象接收所述第一组播消息。
在一种可能实施方式中,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
在一种可能实施方式中,所述装置还包括如下中至少一个模块:
第一处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
第二处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述同步模块包括:
启动子模块,用于在所述第一对象内启动服务器线程;
第二发送子模块,用于通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
第一处理子模块,用于通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
第二处理子模块,用于通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
第二接收子模块,用于通过所述客户端线程接收所述目标信息,并保存所述目标信息。
在一种可能实施方式中,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
所述同步模块还包括:
第三接收子模块,用于通过所述第四对象接收所述第二组播消息。
在一种可能实施方式中,所述装置还包括:
第三处理模块,用于通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
在一种可能实施方式中,所述装置还包括:
第一搬移模块,用于将所述共享内存中的待计算数据搬至高速缓存中;
第四处理模块,用于对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
第二搬移模块,用于将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。
再一方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行以实现上述所述的共享内存的处理方法所执行的操作。
再一方面,提供了一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述所述的共享内存的处理方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:
在本发明的一个实施例中,能够在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型,将共享内存的相关信息并行同步给至少一个第二对象,其中,所述对象为操作系统中的程序运行单元。由此可见,在本发明的一个实施例中,如果操作系统中的某个程序运行单元,例如进程或任务,申请了共享内存,则可以通过组播方式或者服务器客户端模型,将该共享内存的相关信息并行同步给其他进程或任务,因此,本发明的一个实施例可以实现共享内存的相关信息的并行同步,降低了使用共享内存时同步通信带来的通信耗时,并且为多进程或多任务并行处理的场景提供了基础。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的一个实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种共享内存的处理方法的流程图;
图2是根据一示例性实施例示出的通过服务器客户端模型同步共享内存的相关信息的流程示意图;
图3是根据一示例性实施例示出的不同流水线的计算节点分配共享内存和影子共享内存的示意图;
图4是根据一示例性实施例示出的加速计算过程的示意图;
图5是根据一示例性实施例示出的一种共享内存的处理装置的框图;
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种共享内存的处理方法的流程图,该方法可以应用于终端设备,例如车载终端,如图1所示,该方法可以包括以下步骤101:
步骤101:在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象。
其中,所述对象为操作系统中的程序运行单元,例如操作系统为Linux时,程序运行单元为进程;例如操作系统为实时操作系统(Real-time operating system,RTOS)时,程序运行单元为任务,即Linux上会运行一个或多个进程,RTOS上会运行一个或多个任务。
另外,在本发明的一个实施例中,执行共享内存的处理方法的终端设备可以包括多核处理器,所述多核处理器包括多个中央处理器(central processing unit,CPU)核心(也可简称为核心)。这些CPU核心上运行的操作系统可以相同,也可以不同,即所述多核处理器可以为同构多核处理器,也可以为异构多核处理器。例如所述多核处理器可以包括运行Linux的CPU核心和运行RTOS的CPU核心中的至少一种。
此外,共享内存(shared memory) 是指:在多核处理器的计算机系统中,可以被不同CPU核心访问的大容量内存。而不同CPU核心运行上述某些对象时,需要访问共享内存,因此,当上述第一对象申请了共享内存时,该共享内存的相关信息,需要同步给除第一对象之外的至少一个第二对象,以便于第二对象能够访问共享内存。
组播是指适用于一对多的通信模式,加入到特定组播组的成员,才会收到组播数据,当存在多个组播组成员时,其中一个设备发送一份数据,其他成员都可以收到。
如前文所述,在本发明的一个实施例中,第一对象申请了共享内存时,需要将共享内存的相关信息同步给至少一个第二对象,而在该过程中,采用组播方式将共享内存的相关信息同步给至少一个第二对象,则第一对象可以发送一份共享内存的相关信息,这样与第一对象处于同一组的第二对象都可以接收到。可见,采用组播方式同步共享内存的相关信息时,各个第二对象接收共享内存的相关信息的过程是并行的,而不是串行的,从而可以适用于多进程或多任务的并行处理场景,进而缩短共享内存的相关信息的同步时间。
服务器客户端模型是指建立服务器线程和至少一个客户端线程,并建立服务器线程与客户端线程之间的连接,可见,各个客户端线程与服务器线程之间的连接是并行的。这样,通过服务器客户端模型同步共享内存的相关信息时,各个第二对象接收共享内存的相关信息的过程是并行的,而不是串行的,从而可以适用于多进程或多任务的并行处理场景,进而缩短共享内存的相关信息的同步时间。
可选地,上述共享内存的相关信息包括:共享内存的文件描述符、共享内存的物理地址和内存大小;或者上述共享内存的相关信息包括:共享内存的文件描述符、内存大小和对应的句柄。其中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块时,就要使用句柄。因此,此处的句柄用于指示共享内存的物理地址。
由上述步骤101可知,在本发明的一个实施例中,能够在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将共享内存的相关信息并行同步给至少一个第二对象,其中,所述对象为操作系统中的程序运行单元。由此可见,在本发明的一个实施例中,如果操作系统中的某个程序运行单元,例如进程或任务,申请了共享内存,则可以通过组播方式或者服务器客户端模型,将该共享内存的相关信息并行同步给其他进程或任务,因此,本发明的一个实施例可以实现共享内存的相关信息的并行同步,降低了使用共享内存时同步通信带来的通信耗时,并且为多进程或多任务并行处理的场景提供了基础。
下面介绍将共享内存的相关信息并行同步给至少一个第二对象的具体方式,详见如下方式一或方式二。
方式一:组播方式:
在本发明另一个实施例的共享内存的处理方法中,所述至少一个第二对象与所述第一对象属于同一分组;
步骤101“通过组播方式将所述共享内存的相关信息并行同步给至少一个第二对象”,包括如下子步骤A1至A2:
子步骤A1:通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
子步骤A2:通过所述至少一个第二对象接收所述第一组播消息。
其中,一个对象可能在一个CPU核心上运行,也可能在多个CPU核心上运行。上述子步骤A1中,第一对象发送第一组播消息,具体可以为第一对象对应的CPU核心发送第一组播消息;上述子步骤A2中,第二对象接收第一组播消息,具体可以为第二对象对应的CPU核心接收第一组播消息。
另外,上述子步骤A1中“发送第一组播消息”,具体可以为发送第一组播消息至组播端口,则上述子步骤A2中“接收第一组播消息”可以为从组播端口中接收第一组播消息。
由子步骤A1至A2可知,在通过组播方式将共享内存的相关信息同步给至少一个第二对象时,可以通过第一对象发送携带有共享内存的相关信息的第一组播消息,这样,与第一对象处于同一分组的第二对象,则可以接收到第一组播消息,从而可以从第一组播消息中获取到共享内存的相关信息。这样,通过组播消息将共享内存的相关信息的并行同步给至少一个第二对象,并行同步过程更加简单,从而进一步缩短并行同步的时间。
在本发明另一个实施例的共享内存的处理方法中,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
其中,当所述至少一个第二对象仅包括所述第三对象时,即当多核处理器的多个CPU核心运行的操作系统相同时,该多核处理器为同构多核处理器;当所述至少一个第二对象包括所述第四对象时,即当多核处理器的多个CPU核心运行的操作系统中存在不同的操作系统时,该多核处理器为异构多核处理器。由此可知,无论是同构多核处理器,还是异构多核处理器,均可以采用方式一实现共享内存的相关信息的并行同步,提升了共享内存的相关信息的并行同步方法的应用范围。
在本发明另一个实施例的共享内存的处理方法中,所述方法还包括如下步骤B1至B2中至少一项:
步骤B1:通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
步骤B2:通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
可选地,当第二对象属于RTOS时,执行步骤B1;当第二对象属于Linux时,执行步骤B2。
其中,CPU核心运行RTOS时,该CPU核心可以直接使用共享内存的相关信息(例如物理地址和内存大小,或者内存大小和对应的句柄);而CPU核心运行Linux时,该CPU核心使用的是进程内的虚拟地址,因此,此种情况下CPU核心需要将共享内存的相关信息映射至进程内的虚拟地址空间。
因此,如果第二对象属于RTOS,则在第二对象接收到上述第一组播消息后,可以响应于第一组播消息,根据第一组播消息中携带的共享内存的相关信息,更新本地列表;如果第二对象属于Linux,则在第二对象接收到上述第一组播消息后,可以响应于第一组播消息,将第一组播消息中携带的共享内存的相关信息,映射至该第二对象的虚拟地址空间。
为了便于理解上述方式一,现进行举例说明:
例如多核处理器为异构多核处理器,且该异构多核处理器包括至少一个运行Linux的CPU核心以及至少一个运行RTOS的CPU核心。其中,Linux上会运行一个或者多个进程,RTOS会运行一个或者多个任务。因此,此种情况下,采用上述方式一实现共享内存的相关信息的同步,可以存在如下两种情况:
情况一:RTOS中的任务申请共享内存成功后,该任务对应的CPU核心,将共享内存的相关信息携带在第一组播消息中发送到组播端口;其他运行RTOS且存在任务的CPU核心接收第一组播消息,从而根据第一组播消息中携带的共享内存的相关信息更新本地列表 ;Linux内部的进程对应的CPU核心收到第一组播消息后,将第一组播消息中携带的共享内存的相关信息(例如内存地址块)映射到本进程内。
情况二:Linux中的进程申请共享内存成功后,该进程对应的CPU核心,将共享内存的相关信息携带在第一组播消息中发送到组播端口;其他进程接收第一组播消息,从而将第一组播消息中携带的共享内存的相关信息(例如内存地址块)映射到本进程内;运行RTOS且存在任务的CPU核心接收第一组播消息,从而根据第一组播消息中携带的共享内存的相关信息更新本地列表。
可选地,在情况二中,申请成功共享内存的进程在组播过程中,还可以将共享内存的相关信息映射到其他进程的虚拟地址空间内,这样则无需如下文的方式二中启用服务器客户端模型。
方式二:服务器客户端模型:
在本发明另一个实施例的共享内存的处理方法中,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
步骤101“通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象”,包括如下子步骤C1至C5:
子步骤C1:在所述第一对象内启动服务器线程;
子步骤C2:通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
子步骤C3:通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
子步骤C4:通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
子步骤C5:通过所述客户端线程接收所述目标信息,并保存所述目标信息。
其中,线程是进程的一部分,而操作系统是Linux时,程序运行单元(即对象)为进程,因此,可选地,所述第三对象和所述第一对象属于Linux时,执行上述子步骤C1至C5。
另外,上述第三对象对应的核心运行的操作系统与第一对象对应的核心运行的操作系统相同,因此,所述方式二可以适用于同构多核处理器。
由上述子步骤C1至C5可知,在本发明的一个实施例中,第一对象申请了共享内存时,还可以在第一对象内启动服务器线程,从而由服务器线程发送上述第二组播消息,进而第三对象则可以接收第二组播消息,并启动客户端线程,从而根据第二组播消息中携带的服务器线程的标识信息,建立客户端线程与该服务器线程之间的连接,这样,第一对象则可以通过服务器线程,将共享内存的相关信息映射至第三对象的虚拟地址空间,从而将映射得到的信息发送给客户端线程,这样,共享内存的相关信息则通过服务器线程与客户端线程之间的连接,从第一对象传输至第三对象,且在传输过程中完成了映射。
可见,通过服务器客户端模型实现共享内存的相关信息的并行同步的同时,还可以在共享内存的相关信息的传输过程中完成到虚拟地址空间的映射,这样,第三对象则可以省去映射的过程,从而便于第三对象对共享内存的相关信息的使用,进一步缩短后续的处理流程。
在本发明另一个实施例的共享内存的处理方法中,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
步骤101“通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象”,还包括如下子步骤C6:
子步骤C6:通过所述第四对象接收所述第二组播消息。
由此可知,第一对象申请了共享内存时,通过服务器线程发送的第二组播消息,也可以由与第一对象处于同一分组的第四对象接收,则第四对象可以从接收到的第二组播消息中提取共享内存的相关信息。即所述方式二也可以适用于异构多核处理器,这样,使得方式二可以应用于更多类型的多核处理器,进一步提升了共享内存的相关信息的并行同步方法的应用范围。
在本发明另一个实施例的共享内存的处理方法中,所述方法还包括子步骤C7:
子步骤C7:通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
其中,如果第四对象属于RTOS,则在第四对象接收到上述第二组播消息后,可以响应于第二组播消息,根据第二组播消息中携带的共享内存的相关信息,更新本地列表;因此,可选的,当第四对象属于RTOS时,执行子步骤C7。
为了便于理解上述方式二,现进行举例说明:
例如图2所示,异构多核处理器包括一个运行Linux的第一CPU核心,以及运行RTOS的第二CPU核心和第三CPU核心。其中,第一CPU核心上的Linux上运行进程A、B、C,第二CPU核心和第三CPU核心上的RTOS分别运行一个任务。因此,此种情况下,采用上述方式二实现共享内存的相关信息的同步,具体可如下所述:
基于共享内存的并行计算方法中,计算任务最初是由触发源发出,即在申请共享内存的时候,同时触发了并行计算任务。其中,共享内存申请成功之后,需要在多个任务或进程之间同步该共享内存的相关信息。这里,每一个任务存在一个组播消息守护任务,每个进程存在一个组播消息守护线程,所述组播消息守护任务和组播消息守护线程,用于接收共享内存的相关信息或者计算任务信息。
其中,第一CPU核心上的进程B调用统一接口申请共享内存或者进程初始化节点获取系统已有共享内存信息,然后,启动服务器线程,并将服务器线程的标识信息(例如识别ID)、共享内存的相关信息打包为第二组播消息,从而将第二组播消息发送至组播端口。
另外,第一CPU核心上运行的进程A和进程C分别执行如下过程:
通过组播消息守护线程接收第二组播消息,从而启动客户端线程,并根据第二组播消息中携带的标识信息,连接上服务器线程;
客户端线程接收服务器线程通过进程间的通信方式(unix domain socket)发送的共享内存的相关信息映射后的信息(在这个传输过程中,会将共享内存信息映射至进程A和进程C中);
客户端线程收到共享内存的相关信息映射后的信息后,保存至本地后结束并退出(即销毁)线程。
此外,第二CPU核心和第三CUP核心分别执行如下过程:
通过组播消息守护任务接收第二组播消息,并将共享内存的相关信息存储至本地。
需要说明的是,上述服务器线程完成所有客户端的连接传输后,结束并退出线程。
在本发明另一个实施例的共享内存的处理方法中,所述方法还包括如下步骤E1至E3:
步骤E1:将所述共享内存中的待计算数据搬至高速缓存中;
步骤E2:对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
步骤E3:将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。影子共享内存的访问速度可以与共享内存的访问速度相同,也可以不同。
另外,多核处理器的计算过程中会部署多条流水线,每条流水线上有至少一个计算节点,每个计算节点可以包括一个或多个CPU核心。这里,同一个计算节点可能处于一条流水线上,也可能处于多条流水线上。其中,可以根据流水线和计算节点可以提前划分内存的内部结构。
在本发明的一个实施例中,可以将用于计算的内存结构划分为共享内存、影子共享内存和高速缓存。共享内存用于存储数据源,一般是动态内存;影子共享内存是与之对应的存放计算结果的动态内存;高速缓存是一块用于加快计算过程中存取数据速度的静态内存。
此外,不同流水线上的不同计算节点可以对应相同的共享内存,也可以对应不同的共享内存,例如表1所示。
表1不同流水线的不同计算节点对应的共享内存
同理,不同流水线上的不同计算节点可以对应相同的影子共享内存,也可以对应不同的影子共享内存;不同流水线上的不同计算节点可以对应相同的高速缓存,也可以对应不同的高速缓存。
此外,如图3所示,可以由触发源触发申请共享内存和影子共享内存,从而可以为各个流水线上的各个计算节点分配相应的共享内存和影子共享内存。
由此可知,同一个计算节点对应存在共享内存、影子共享内存和高速缓存。则上述步骤E1至E3中的共享内存、影子共享内存和高速缓存,是与同一计算节点对应的。
需要说明的是共享内存是个结构化内存,取决于系统可用共享内存总量;影子内存是否分配及其数量是可选的,影子共享内存的作用可自定义,比如存储多条流水线的数据融合结果,也可存储上一个计算节点的结果,或作为数据缓冲给下一个计算节点使用。
此外,为了便于理解上述步骤E1至E3,现举例如下:
即如图4所示,可以将某个计算节点与其对应的共享内存中的待计算数据(例如数据0和数据1)搬至该计算节点对应的高速缓存中;从而对待计算数据进行计算处理,并将待计算数据的计算结果(即计算结果0和计算结果1)存储至该计算节点对应的高速缓存中,进而将计算结果(即计算结果0和计算结果1)从高速缓存搬至该计算节点对应的影子共享内存中。
其中,高速缓存的访问速度高于共享内存的访问速度,因此,可以将共享内存中待计算的数据搬至高速缓存中进行计算,计算完成后,将计算结果保存至高速缓存中,然后再将计算结果搬移至影子共享内存,这样,在计算过程中可以快速访问高速缓存,从而可以加速计算过程。
由上述可知,在本发明的一个实施例中,可以利用共享内存、影子共享内存和高速缓存,通过上述步骤E1至E3加速计算过程。
此外,还需要说明的是,某些计算节点在完成部分计算后,还可以将计算结果携带在组播消息中发送出去,这样,相关依赖计算节点或者流水线的下游计算节点则可以取走已完成数据去进行计算,或者预估内存和算力 。
还需要说明的是,在本发明另一个实施例的共享内存的处理方法中,以上各个实施例之间可以相互组合。
图5是根据一示例性实施例示出的一种共享内存的处理装置的框图,该共享内存的处理装置可以包括以下模块:
同步模块501,用于在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;
其中,所述对象为操作系统中的程序运行单元。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组;
所述同步模块501包括:
第一发送子模块,用于通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
第一接收子模块,用于通过所述至少一个第二对象接收所述第一组播消息。
在一种可能实施方式中,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
在一种可能实施方式中,所述装置还包括如下中至少一个模块:
第一处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
第二处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
在一种可能实施方式中,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述同步模块501包括:
启动子模块,用于在所述第一对象内启动服务器线程;
第二发送子模块,用于通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
第一处理子模块,用于通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
第二处理子模块,用于通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
第二接收子模块,用于通过所述客户端线程接收所述目标信息,并保存所述目标信息。
在一种可能实施方式中,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
所述同步模块501还包括:
第三接收子模块,用于通过所述第四对象接收所述第二组播消息。
在一种可能实施方式中,所述装置还包括:
第三处理模块,用于通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
在一种可能实施方式中,所述装置还包括:
第一搬移模块,用于将所述共享内存中的待计算数据搬至高速缓存中;
第四处理模块,用于对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
第二搬移模块,用于将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。
由上述可知,在本发明的一个实施例中,同步模块501能够在第一对象申请共享内存的情况下,通过组播方式将共享内存的相关信息并行同步给至少一个第二对象,其中,所述对象为操作系统中的程序运行单元。由此可见,在本发明的一个实施例中,如果操作系统中的某个程序运行单元,例如进程或任务,申请了共享内存,则可以通过组播方式,将该共享内存的相关信息并行同步给其他进程或任务,因此,本发明的一个实施例可以实现共享内存的相关信息的并行同步,降低了使用共享内存时同步通信带来的通信耗时,并且为多进程或多任务并行处理的场景提供了基础。
上述所述的存储介质,例如为:只读存储器(Read-Only Memory,ROM)/随机存取存储器(Random Access Memory,RAM)、磁碟、光盘等。
本发明的实施例还提供了一种电子设备,该电子设备例如可以为车载终端。
如图6所示,该电子设备包括存储器620、收发机610、处理器600;
存储器620,用于存储计算机程序;
收发机610,用于在处理器600的控制下接收和发送数据;
处理器600,用于读取所述存储器620中的计算机程序并执行上述所述的共享内存的处理方法。
其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器600和存储器620代表的存储器620的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口用于提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元,这些传输介质包括,这些传输介质包括无线信道、有线信道、光缆等传输介质。针对不同的用户设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
可选的,处理器600可以是CPU、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD),处理器600也可以采用多核架构。
处理器600通过调用存储器620存储的计算机程序,用于按照获得的可执行指令执行本发明实施例提供的任一所述方法。处理器600与存储器620也可以物理上分开布置。
在此需要说明的是,本发明实施例提供的上述电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机可执行指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机可执行指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些处理器可执行指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的处理器可读存储器中,使得存储在该处理器可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些处理器可执行指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (18)
1.一种共享内存的处理方法,其特征在于,所述方法包括:
在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;
其中,所述对象为操作系统中的程序运行单元。
2.根据权利要求1所述的方法,其特征在于,所述至少一个第二对象与所述第一对象属于同一分组;
通过组播方式将所述共享内存的相关信息并行同步给至少一个第二对象,包括:
通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
通过所述至少一个第二对象接收所述第一组播消息。
3.根据权利要求2所述的方法,其特征在于,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括如下中至少一项:
通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
5.根据权利要求1所述的方法,其特征在于,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象,包括:
在所述第一对象内启动服务器线程;
通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
通过所述客户端线程接收所述目标信息,并保存所述目标信息。
6.根据权利要求5所述的方法,其特征在于,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
通过服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象,还包括:
通过所述第四对象接收所述第二组播消息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述共享内存中的待计算数据搬至高速缓存中;
对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。
9.一种共享内存的处理装置,其特征在于,所述装置包括:
同步模块,用于在第一对象申请共享内存的情况下,通过组播方式或者服务器客户端模型将所述共享内存的相关信息并行同步给至少一个第二对象;
其中,所述对象为操作系统中的程序运行单元。
10.根据权利要求9所述的装置,其特征在于,所述至少一个第二对象与所述第一对象属于同一分组;
所述同步模块包括:
第一发送子模块,用于通过所述第一对象发送第一组播消息,其中,所述第一组播消息携带有所述共享内存的相关信息;
第一接收子模块,用于通过所述至少一个第二对象接收所述第一组播消息。
11.根据权利要求10所述的装置,其特征在于,所述至少一个第二对象包括第三对象和第四对象中的至少一个;
所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括如下中至少一个模块:
第一处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息;
第二处理模块,用于通过所述至少一个第二对象中的至少部分第二对象,响应于所述第一组播消息,将所述共享内存的相关信息映射至该第二对象的虚拟地址空间。
13.根据权利要求9所述的装置,其特征在于,所述至少一个第二对象与所述第一对象属于同一分组,所述至少一个第二对象包括第三对象,所述第三对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统相同;
所述同步模块包括:
启动子模块,用于在所述第一对象内启动服务器线程;
第二发送子模块,用于通过所述服务器线程发送第二组播消息,其中,所述第二组播消息携带有所述共享内存的相关信息和所述服务器线程的标识信息;
第一处理子模块,用于通过所述第三对象接收所述第二组播消息,并响应于所述第二组播消息,在所述第三对象内启动客户端线程,根据所述标识信息,将所述客户端线程与所述服务器线程连接;
第二处理子模块,用于通过所述服务器线程,将所述共享内存的相关信息映射至所述第三对象的虚拟地址空间中得到目标信息,并将所述目标信息发送给所述客户端线程;
第二接收子模块,用于通过所述客户端线程接收所述目标信息,并保存所述目标信息。
14.根据权利要求13所述的装置,其特征在于,所述至少一个第二对象还包括第四对象,所述第四对象对应的核心运行的操作系统与所述第一对象对应的核心运行的操作系统不同;
所述同步模块还包括:
第三接收子模块,用于通过所述第四对象接收所述第二组播消息。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第三处理模块,用于通过所述第四对象响应于所述第二组播消息,根据所述共享内存的相关信息更新本地列表,其中,所述本地列表中包括不同对象申请的共享内存的相关信息。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一搬移模块,用于将所述共享内存中的待计算数据搬至高速缓存中;
第四处理模块,用于对所述待计算数据进行计算处理,并将所述待计算数据的计算结果存储至所述高速缓存中;
第二搬移模块,用于将所述计算结果从所述高速缓存搬至影子共享内存中;
其中,所述高速缓存的访问速度大于所述共享内存的访问速度。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行以实现如权利要求1至8中任一项所述的共享内存的处理方法所执行的操作。
18.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行权利要求1至8任一项所述的共享内存的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911007.8A CN116662037B (zh) | 2023-07-24 | 2023-07-24 | 一种共享内存的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310911007.8A CN116662037B (zh) | 2023-07-24 | 2023-07-24 | 一种共享内存的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662037A true CN116662037A (zh) | 2023-08-29 |
CN116662037B CN116662037B (zh) | 2023-10-20 |
Family
ID=87724347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310911007.8A Active CN116662037B (zh) | 2023-07-24 | 2023-07-24 | 一种共享内存的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662037B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
CN108199956A (zh) * | 2017-12-05 | 2018-06-22 | 上海大学 | 基于sdn的状态感知的分布式共享内存构建方法 |
CN109032816A (zh) * | 2018-07-25 | 2018-12-18 | 天津凯发电气股份有限公司 | 一种电能质量管理系统共享内存多机通信同步方法 |
CN111277616A (zh) * | 2018-12-04 | 2020-06-12 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN112486704A (zh) * | 2020-11-27 | 2021-03-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于共享存储的多核多处理器同步与通信系统 |
CN113485834A (zh) * | 2021-07-12 | 2021-10-08 | 深圳华锐金融技术股份有限公司 | 共享内存管理方法、装置、计算机设备和存储介质 |
CN114077480A (zh) * | 2022-01-19 | 2022-02-22 | 维塔科技(北京)有限公司 | 一种主机与虚拟机共享内存方法、装置、设备及介质 |
CN115964758A (zh) * | 2022-11-30 | 2023-04-14 | 南京航空航天大学 | 一种基于TrustZone的内核数据完整性保护方法 |
CN116107952A (zh) * | 2023-01-03 | 2023-05-12 | 广州汽车集团股份有限公司 | 多核异构通信方法以及车辆 |
CN116302598A (zh) * | 2023-02-21 | 2023-06-23 | 阿里云计算有限公司 | 共享内存的处理方法、装置、计算机设备及存储介质 |
-
2023
- 2023-07-24 CN CN202310911007.8A patent/CN116662037B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123265A (zh) * | 2013-04-26 | 2014-10-29 | 华为技术有限公司 | 一种众核间通信方法及系统 |
US20160041923A1 (en) * | 2013-04-26 | 2016-02-11 | Huawei Technologies Co., Ltd. | Inter-Manycore Communications Method and System |
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN108199956A (zh) * | 2017-12-05 | 2018-06-22 | 上海大学 | 基于sdn的状态感知的分布式共享内存构建方法 |
CN109032816A (zh) * | 2018-07-25 | 2018-12-18 | 天津凯发电气股份有限公司 | 一种电能质量管理系统共享内存多机通信同步方法 |
CN111277616A (zh) * | 2018-12-04 | 2020-06-12 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN112486704A (zh) * | 2020-11-27 | 2021-03-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于共享存储的多核多处理器同步与通信系统 |
CN113485834A (zh) * | 2021-07-12 | 2021-10-08 | 深圳华锐金融技术股份有限公司 | 共享内存管理方法、装置、计算机设备和存储介质 |
CN114077480A (zh) * | 2022-01-19 | 2022-02-22 | 维塔科技(北京)有限公司 | 一种主机与虚拟机共享内存方法、装置、设备及介质 |
CN115964758A (zh) * | 2022-11-30 | 2023-04-14 | 南京航空航天大学 | 一种基于TrustZone的内核数据完整性保护方法 |
CN116107952A (zh) * | 2023-01-03 | 2023-05-12 | 广州汽车集团股份有限公司 | 多核异构通信方法以及车辆 |
CN116302598A (zh) * | 2023-02-21 | 2023-06-23 | 阿里云计算有限公司 | 共享内存的处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
AKIRA TANAKA: ""Multicast using distributed shared memory with commoditized transmission"", 《2010 20TH INTERNATIONAL CONFERENCE ON ELECTRONICS COMMUNICATIONS AND COMPUTERS (CONIELECOMP)》 * |
吴成富;欧峰;陈怀民;王亮;: "基于组播技术的共享内存网络设计与实现", 测控技术, no. 10 * |
董玉双: ""利用Ipv6组播改善分布式共享存储器性能"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN116662037B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764901B (zh) | 基于gpu资源的数据处理方法、电子设备及系统 | |
CN107145380B (zh) | 虚拟资源编排方法及装置 | |
CN113300985B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109189704B (zh) | 一种通用总线接口适配方法及装置 | |
US20200167186A1 (en) | Container isolation method and apparatus for netlink resource | |
CN110413418B (zh) | 缓存同步装置及方法,缓存同步系统、电子设备 | |
US20240111549A1 (en) | Method and apparatus for constructing android running environment | |
WO2023124945A1 (zh) | 多方数据处理方法、系统、电子装置和存储介质 | |
CN105335211A (zh) | 一种基于Xen虚拟化集群的FPGA加速器调度系统及方法 | |
CN114285695B (zh) | 通信方法、装置、设备、系统和存储介质 | |
CN111078516A (zh) | 分布式性能测试方法、装置、电子设备 | |
CN112698838A (zh) | 多云容器部署系统及其容器部署方法 | |
CN116662037B (zh) | 一种共享内存的处理方法、装置、电子设备及存储介质 | |
AU2021277366A1 (en) | Port status configuration method, apparatus,and system, and storage medium | |
CN111597035B (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
US20230325149A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
CN111092828B (zh) | 网络操作方法、装置、设备和存储介质 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN109656674B (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
US10075304B2 (en) | Multiple gateway operation on single operating system | |
CN110134461B (zh) | 一种数据交互的通用处理方法及装置 | |
CN112925739A (zh) | 应用于众核芯片的通信方法、众核芯片及存储介质 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN102681881B (zh) | 跨机调度方法及其系统 | |
CN110661857A (zh) | 一种数据同步方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |