CN119292804A - 一种跨进程的数据零拷贝方法及装置 - Google Patents
一种跨进程的数据零拷贝方法及装置 Download PDFInfo
- Publication number
- CN119292804A CN119292804A CN202411316662.XA CN202411316662A CN119292804A CN 119292804 A CN119292804 A CN 119292804A CN 202411316662 A CN202411316662 A CN 202411316662A CN 119292804 A CN119292804 A CN 119292804A
- Authority
- CN
- China
- Prior art keywords
- memory block
- memory
- data
- time
- currently used
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
一种跨进程的数据零拷贝方法及装置,涉及跨进程通信技术领域,方法包括:进程启动时,创建共享内存,将共享内存划分为多个容量不同的内存块;两个进程间数据传递时,根据初次传递的数据量在共享内存中匹配对应容量的内存块;当本次传递的数据量不多于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记;当本次传递的数据量多于上次传递的数据量、且不超过预设容量时,根据本次传递的数据量在共享内存中匹配对应容量内存块,并将当前使用的内存块的内容拷贝至该内存块,随后释放当前使用的内存块。本方法减少了因传输数据量变动而释放和重新分配内存块的次数,从而提高了进程间数据传输的速度。
Description
技术领域
本申请涉及跨进程通信技术领域,具体涉及一种跨进程的数据零拷贝方法及装置。
背景技术
在非实时操作系统中,系统分为内核空间和用户空间,当进程间需要交换数据时,通常采用零拷贝(Zero-Copy)的方式,减少数据在内核空间和用户空间之间的拷贝次数,以此来提高数据传输的效率。由于在进程通信时,对内核空间和用户空间的访问速度存在要求,因此,通常采用共享内存的方式来实现零拷贝。
现有的共享内存方法通常采用分配大块内存,再将分配的内容分成定长小内存块的模式来进行管理,当进程通信时,根据实际情况从各内存块中选取适合的内存块作为共享内存,在通信结束后释放被调用的内存块,以便下次使用。
但是,由于现有的共享内存方法在进程通信开始时就确定了内存块的大小,当进程要传递的数据量发生变动时,系统需要先释放原有内存块后,再重新分配新的内存块,且由于内存块大小固定,为了满足大数据量的传输需求,可能需要多次分配,这极大地降低了进程间数据传输的速度。
发明内容
本申请提供一种跨进程的数据零拷贝方法及装置,可以减少因传输数据量变动而释放和重新分配内存块的次数,进而提高进程间数据传输的速度。
第一方面,本申请实施例提供一种跨进程的数据零拷贝方法,所述方法包括:
第一进程启动时,创建共享内存,将所述共享内存划分为多个容量不同的内存块;
两个进程间数据传递时,根据初次传递的数据量在所述共享内存中匹配对应容量的内存块;
当本次传递的数据量不多于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记;
当本次传递的数据量多于上次传递的数据量、且不超过预设的第一容量时,根据本次传递的数据量在所述共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
结合第一方面,在一种实施方式中,所述第一进程启动时,创建共享内存,包括:
当第一进程启动时,将第一进程切换至内核态,操作系统基于所述第一进程的ID创建共享内存;
将所述第一进程切换至用户态,将所述共享内存映射至用户空间。
结合第一方面,在一种实施方式中,将所述共享内存划分为多个容量不同的内存块后,还包括:
将所述多个容量不同的内存块组织为环形队列。
结合第一方面,在一种实施方式中,所述根据初次传递的数据量在所述共享内存中匹配对应容量的内存块,包括:
遍历所述环形队列,判断是否存在容量等于传递的数据量的第二内存块;
若是,将第二内存块作为初次传递所使用的内存块,并从所述环形队列中移除第二内存块;
若否,向操作系统申请容量等于传递的数据量的第三内存块,将第三内存块作为初次传递所使用的内存块并加入所述环形队列。
结合第一方面,在一种实施方式中,释放内存块的过程,包括:
将内存块添加至所述环形队列的尾指针所指向的位置。
结合第一方面,在一种实施方式中,还包括:
在每次数据传递结束后,若两个进程结束通信,则释放当前使用的内存块。
结合第一方面,在一种实施方式中,还包括:
当本次传递的数据量超过所述预设的第一容量时,向操作系统申请容量等于本次传递的数据量的第四内存块;
将当前使用的内存块的内容拷贝至第四内存块,随后释放当前使用的内存块。
结合第一方面,在一种实施方式中,还包括:
在每次数据传递结束后,若当前使用的内存块的容量超过所述预设的第一容量,操作系统回收当前使用的内存块。
结合第一方面,在一种实施方式中,所述操作系统回收当前使用的内存块,包括:
判断当前使用的内存块的溢出标记的值是否被更改;
若是,操作系统在预设的错误日志上记录本次数据传递的时间戳和上下文信息,随后回收该内存块;
若否,操作系统回收该内存块。
第二方面,本申请实施例提供了一种跨进程的数据零拷贝装置,其特征在于,所述装置包括:
构造模块,用于第一进程启动时,创建共享内存,将所述共享内存划分为多个容量不同的内存块;
分配模块,用于两个进程间数据传递时,根据初次传递的数据量在所述共享内存中匹配对应容量的内存块;
更新模块,用于当本次传递的数据量少于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记;还用于当本次传递的数据量多于上次传递的数据量且不超过预设的第一容量时,根据本次传递的数据量在所述共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
本申请实施例提供的技术方案带来的有益效果包括:
通过在传输的数据量减少时,更新正在使用的内存块的使用长度和溢出标记,减少内存的释放次数;在传输的数据量增加时,直接分配适合当前数据量的内存块,避免因大容量内存需求而多次分配固定小容量的内存。结合以上两种方式,减少了因传输数据量变动而释放和重新分配内存块的次数,从而提高了进程间数据传输的速度。
附图说明
图1为本申请实施例跨进程的数据零拷贝方法的流程示意图;
图2为本申请实施例跨进程的数据零拷贝方法的创建共享内存的流程示意图;
图3为本申请实施例跨进程的数据零拷贝方法的共享内存使用流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
第一方面,请参照图1,图1为本申请实施例跨进程的数据零拷贝方法的流程示意图。本实施例提供的跨进程的数据零拷贝方法包括以下步骤:
步骤S1:当第一进程启动时,创建共享内存,将共享内存划分为多个容量不同的内存块。
步骤S2:两个进程间数据传递时,根据初次传递的数据量在共享内存中匹配对应容量的内存块。
步骤S3:判断本次传递的数据量是否多于上次传递的数据量,若是,进入步骤S4,若否,进入步骤S5。
步骤S4:当本次传递的数据量不超过预设的第一容量时,根据本次传递的数据量在共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
步骤S5:更新当前使用的内存块的使用长度和溢出标记。
本申请通过在传输的数据量减少时,更新正在使用的内存块的使用长度和溢出标记,减少内存的释放次数;在传输的数据量增加时,直接分配适合当前数据量的内存块,避免因大容量内存需求而多次分配固定小容量的内存。结合以上两种方式,减少了因传输数据量变动而释放和重新分配内存块的次数,从而提高了进程间数据传输的速度。
需要说明的是,在非实时操作系统中,系统分为内核区和用户区时,相互交互数据时,通信方式通常有:匿名管道、命名管道、信号、消息队列、信号量、Socket、文件等。其中管道(匿名管道、命名管道)是简单的数据通道;信号量用于资源的互斥访问;消息队列允许数据块的存储和检索;信号用于处理异常情况;Socket则支持跨网络的进程通信;共享内存使得多个进程可以直接读写同一块内存空间,是最快且可用的IPC(Inter-ProcessCommunication,进程间通信)形式。
当采用套接字、管道、消息队列进行进程间通信时,数据的传递模式为:A进程将数据拷贝至缓冲内核区,通知B进程;B进程得到通知后将数据从内核拷贝至进程缓冲区,之后处理数据。这种模式下有效数据需要在进程态和用户态之间拷贝两次,程序运行的效率较低。
当采用共享内存进行进程间通信时,数据的传递模式为:A进程将数据写入共享内存,通知B进程;B进程得到通知后直接从共享内存读取数据。这种模式下有效数据不需要在进程态和用户态之间进行拷贝,相比前一种模式,提高了效率。但是,A进程通知B进程的这个动作,需要通过一个短消息来实现,这个短消息仍需要从进程地址空间向内核地址空间拷贝数据,降低了系统性能。
虽然存在共同访问的问题,但共享内存仍是最快的进程间访问方式。在非实时操作系统中,由于对内核区和用户区的访问存在速度要求,因此,通常选用效率最高的共享内存实现零拷贝。
在一些实施例中,在上述步骤S1中,第一进程启动时,创建共享内存,包括如下步骤:
首先,当第一进程启动时,将第一进程切换至内核态,操作系统基于第一进程的ID创建共享内存。
之后,将第一进程切换至用户态,将共享内存映射至用户空间。
需要说明的是,由于内核态可能存在多个共享内存,因此,需要通过进程ID绑定共享内存,以便进程能够单独使用其创建的共享内存。
在本实施例中,请参照图2,图2为本申请实施例跨进程的数据零拷贝方法的创建共享内存的流程示意图。在上述步骤S1中,当第一进程启动时,创建共享内存,将共享内存划分为多个容量不同的内存块,具体步骤如下:
步骤S11:用户态进程调用创建共享内存的命令。
步骤S12:内核态收到命令后,创建共享内存。
步骤S13:内核态申请共享内存,通过内存池对共享内存进行内存划分,注册对应的杂项设备。
步骤S14:通知用户态进程共享内存创建完成。
步骤S15:用户态进程收到共享内存创建完成的消息后,调用映射函数。
步骤S16:open对应的杂项设备,使用mmap映射共享内存。
步骤S17:关联文件句柄和共享内存。
步骤S18:将共享内存映射到用户空间。
需要说明的是,使用内存池对共享内存进行内存划分,并对划分后的内存块进行管理,可以有效减少进程通信中向操作系统申请释放内存的次数,进而提高进程通信的数据传输速度。同时,使用内存池管理共享内存,可以有效地减少因多次申请释放而产生的内存碎片,从而减少内存泄露和内存溢出的概率。
具体地,在通过内存池对共享内存进行内存划分时,可以设置内存块的容量和数量,将同容量的内存块放入同一内存链表中,并对每个内存块设置校验位。
在上述步骤S16中,open和mmap为操作系统的系统调用。open系统调用用于打开一个文件或设备,并返回一个文件描述符,该文件描述符用于引用打开的文件和设备。open对应的杂项设备,实际上是在请求操作系统为该杂项设备创建一个文件描述符,以便后续通过该文件描述符对该杂项设备进行读写操作。
mmap系统调用用于将一个文件或其他对象映射入进程的地址空间。这样,进程就可以像访问普通内存一样访问文件的内容,而无需进行额外的数据复制操作。使用mmap映射共享内存,实际上是将共享内存映射到进程的地址空间中。当映射完成后,进程就可以通过指针直接访问共享内存,而不需要通过系统调用来读写数据。
在共享内存初始化完成后,用户态和内核态进程可以同时调用malloc、free、入队、出队等函数操作共享内存,进行数据处理。
在一些实施例中,在上述步骤S1中,将共享内存划分为多个容量不同的内存块后,还包括如下步骤:
将多个容量不同的内存块组织为环形队列。
需要说明的是,环形队列是一种使用有限数组空间来模拟队列操作的数据结构,数组的末端与始端相连,这种结构允许环形队列在到达物理边界时返回数组的始端,从而实现对有限空间的循环利用,减少因频繁申请和释放内存而产生的内存碎片。
并且,在多进程环境下,环形队列可以通过控制队首或队尾指针的访问来实现同步机制。这种同步机制相较与其他同步方式(如锁)具有更低的开销,可以提升进程间数据传输的整体速度。
在一些实施例中,在上述步骤S2中,根据初次传递的数据量在共享内存中匹配对应容量的内存块,包括如下步骤:
首先,遍历环形队列,判断是否存在容量等于传递的数据量的第二内存块。
若是,将第二内存块作为初次传递所使用的内存块,并从环形队列中移除第二内存块。
若否,向操作系统申请容量等于传递的数据量的第三内存块,将第三内存块作为初次传递所使用的内存块并加入环形队列。
在一些实施例中,在上述步骤S4中,释放内存块的过程,包括如下步骤:
将内存块添加至环形队列的尾指针所指向的位置。
在一些实施例中,上述跨进程的数据零拷贝方法,还包括如下步骤:
在每次数据传递结束后,若两个进程结束通信,则释放当前使用的内存块。
在一些实施例中,上述跨进程的数据零拷贝方法,还包括如下步骤:
首先,当本次传递的数据量超过上述预设的第一容量时,向操作系统申请容量等于本次传递的数据量的第四内存块。
然后,将当前使用的内存块的内容拷贝至第四内存块,随后释放当前使用的内存块。
在一些实施例中,上述跨进程的数据零拷贝方法,还包括如下步骤:
在每次数据传递结束后,若当前使用的内存块的容量超过预设的第一容量,操作系统回收当前使用的内存块。
在一些实施例中,上述操作系统回收当前使用的内存块,包括如下步骤:
判断当前使用的内存块的溢出标记的值是否被更改。
若是,操作系统在预设的错误日志上记录本次数据传递的时间戳和上下文信息,随后回收该内存块。
若否,操作系统回收该内存块。
在本实施例中,请参照图3,图3为本申请实施例跨进程的数据零拷贝方法的共享内存使用流程图。基于上述跨进程的数据零拷贝方法和实际设备,得出一个更为具体的共享内存使用流程,该流程包括如下步骤:
步骤A01:设备A在用户态下申请SDU(Service Data Unit,数据服务单元)需要的内存。
步骤A02:设备A在用户态下申请PDU(Protocol Data Unit,协议数据单元)需要的内存。
步骤A03:设备A在用户态下释放SDU的内存。
步骤A04:设备A在用户态下将PDU存入环形队列。
步骤A05:设备A在内核态下从环形队列中取出PDU。
步骤A06:设备A在内核态下执行业务操作,将业务操作的数据存入socketbuffer,并将socket buffer传输至设备B。
步骤A07:设备A在内核态下释放PDU的内存。
步骤A08:设备B在内核态下申请PDU需要的内存。
步骤A09:设备B在内核态下执行业务操作,从socket buffer中读取设备A业务操作的数据,将设备B业务操作的数据存入PDU。
步骤A10:设备B在内核态下将PDU存入环形队列。
步骤A11:设备B在用户态下从环形队列中取出PDU。
步骤A12:设备B在用户态下申请SDU需要的内存。
步骤A13:设备B在用户态下释放PDU的内存。
步骤A14:设备B在用户态下释放SDU的内存。
需要说明的是,PDU是协议数据单元,协议数据单元是工作在相同协议层的实体之间的交换数据的基本单元。在TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/因特网协议)模型中,物理层的PDU是bit(比特流),数据链路层的PDU是frame(帧),网络层的PDU是packet(分组),传输层的PDU是segment(段)或datagram(数据报)。
SDU是服务数据单元,下层协议为上层协议提供服务,上层协议的PDU将会成为下层的SDU。例如,应用层的PDU传送至传输层后,成为了传输层的SDU;传输层的SDU加上传输层的头部信息,组成传输层的PDU,将传输层的PDU传送至网络层,成为网络层的SDU;网络层的SDU加上网络层的头部信息,组成网络层的PDU,将网络层的PDU传送至数据链路层后,成为数据链路层的SDU;数据链路层的SDU加上帧首部和帧尾部,组成物理层的PDU。
第二方面,本申请提供一种跨进程的数据零拷贝装置,该装置包括构造模块、分配模块和更新模块。
构造模块用于第一进程启动时,创建共享内存,将共享内存划分为多个容量不同的内存块。
分配模块用于两个进程间数据传递时,根据初次传递的数据量在共享内存中匹配对应容量的内存块。
更新模块用于当本次传递的数据量少于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记。
更新模块还用于当本次传递的数据量多于上次传递的数据量且不超过预设的第一容量时,根据本次传递的数据量在共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
需要说明的是,上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。术语“第一”、“第二”和“第三”等描述,是用于区分不同的对象等,其不代表先后顺序,也不限定“第一”、“第二”和“第三”是不同的类型。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例描述的一些流程中,包含了按照特定顺序出现的多个操作或步骤,但是应该理解,这些操作或步骤可以不按照其在本申请实施例中出现的顺序来执行或并行执行,操作的序号仅用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作或步骤可以按顺序执行或并行执行,并且这些操作或步骤可以进行组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种跨进程的数据零拷贝方法,其特征在于,所述方法包括:
第一进程启动时,创建共享内存,将所述共享内存划分为多个容量不同的内存块;
两个进程间数据传递时,根据初次传递的数据量在所述共享内存中匹配对应容量的内存块;
当本次传递的数据量不多于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记;
当本次传递的数据量多于上次传递的数据量、且不超过预设的第一容量时,根据本次传递的数据量在所述共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
2.如权利要求1所述的跨进程的数据零拷贝方法,其特征在于,所述第一进程启动时,创建共享内存,包括:
当第一进程启动时,将第一进程切换至内核态,操作系统基于所述第一进程的ID创建共享内存;
将所述第一进程切换至用户态,将所述共享内存映射至用户空间。
3.如权利要求1所述的跨进程的数据零拷贝方法,其特征在于,将所述共享内存划分为多个容量不同的内存块后,还包括:
将所述多个容量不同的内存块组织为环形队列。
4.如权利要求3所述的跨进程的数据零拷贝方法,其特征在于,所述根据初次传递的数据量在所述共享内存中匹配对应容量的内存块,包括:
遍历所述环形队列,判断是否存在容量等于传递的数据量的第二内存块;
若是,将第二内存块作为初次传递所使用的内存块,并从所述环形队列中移除第二内存块;
若否,向操作系统申请容量等于传递的数据量的第三内存块,将第三内存块作为初次传递所使用的内存块并加入所述环形队列。
5.如权利要求3所述的跨进程的数据零拷贝方法,其特征在于,释放内存块的过程,包括:
将内存块添加至所述环形队列的尾指针所指向的位置。
6.如权利要求1所述的跨进程的数据零拷贝方法,其特征在于,还包括:
在每次数据传递结束后,若两个进程结束通信,则释放当前使用的内存块。
7.如权利要求1所述的跨进程的数据零拷贝方法,其特征在于,还包括:
当本次传递的数据量超过所述预设的第一容量时,向操作系统申请容量等于本次传递的数据量的第四内存块;
将当前使用的内存块的内容拷贝至第四内存块,随后释放当前使用的内存块。
8.如权利要求1所述的跨进程的数据零拷贝方法,其特征在于,还包括:
在每次数据传递结束后,若当前使用的内存块的容量超过所述预设的第一容量,操作系统回收当前使用的内存块。
9.如权利要求8所述的跨进程的数据零拷贝方法,其特征在于,所述操作系统回收当前使用的内存块,包括:
判断当前使用的内存块的溢出标记的值是否被更改;
若是,操作系统在预设的错误日志上记录本次数据传递的时间戳和上下文信息,随后回收该内存块;
若否,操作系统回收该内存块。
10.一种基于权利要求1-9任一项所述方法的跨进程的数据零拷贝装置,其特征在于,所述装置包括:
构造模块,用于第一进程启动时,创建共享内存,将所述共享内存划分为多个容量不同的内存块;
分配模块,用于两个进程间数据传递时,根据初次传递的数据量在所述共享内存中匹配对应容量的内存块;
更新模块,用于当本次传递的数据量少于上次传递的数据量时,更新当前使用的内存块的使用长度和溢出标记;还用于当本次传递的数据量多于上次传递的数据量且不超过预设的第一容量时,根据本次传递的数据量在所述共享内存中匹配对应容量的第一内存块,并将当前使用的内存块的内容拷贝至第一内存块,随后释放当前使用的内存块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411316662.XA CN119292804A (zh) | 2024-09-20 | 2024-09-20 | 一种跨进程的数据零拷贝方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411316662.XA CN119292804A (zh) | 2024-09-20 | 2024-09-20 | 一种跨进程的数据零拷贝方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119292804A true CN119292804A (zh) | 2025-01-10 |
Family
ID=94160355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411316662.XA Pending CN119292804A (zh) | 2024-09-20 | 2024-09-20 | 一种跨进程的数据零拷贝方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119292804A (zh) |
-
2024
- 2024-09-20 CN CN202411316662.XA patent/CN119292804A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4730249A (en) | Method to operate on large segments of data in a virtual memory data processing system | |
US10104005B2 (en) | Data buffering | |
CN104915151A (zh) | 多虚拟机系统中一种主动共享的内存超量分配方法 | |
US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
TWI309005B (en) | Stack caching systems and methods | |
CN115168259B (zh) | 一种数据存取方法、装置、设备和计算机可读存储介质 | |
JPH07175698A (ja) | ファイルシステム | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
WO2022062833A1 (zh) | 内存分配方法及相关设备 | |
CA2242074A1 (en) | System and method for remote buffer allocation and management for message passing between network nodes | |
WO2016202120A1 (zh) | 一种队列存储空间管理方法及装置、计算机存储介质 | |
US20020178176A1 (en) | File prefetch contorol method for computer system | |
CN113032162B (zh) | 一种基于共享内存备份机制的多进程通讯方法 | |
JP2001216194A (ja) | 演算処理装置 | |
CN101576912A (zh) | 实现分布式文件系统异步输入输出接口的系统及读写方法 | |
WO2023201987A1 (zh) | 请求处理方法、装置、设备及介质 | |
US7376679B2 (en) | Facilitating delayed block allocation in a distributed file system | |
CN117834561A (zh) | 基于spdk的网络i/o处理方法以及装置 | |
CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN109617832B (zh) | 报文缓存方法及装置 | |
US20030236819A1 (en) | Queue-based data retrieval and transmission | |
JP2004054845A (ja) | データ管理装置 | |
CN119292804A (zh) | 一种跨进程的数据零拷贝方法及装置 | |
US7392361B2 (en) | Generic reallocation function for heap reconstitution in a multi-processor shared memory environment |
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 |