CN114281484B - 数据传输方法、装置、设备及存储介质 - Google Patents
数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114281484B CN114281484B CN202111639946.9A CN202111639946A CN114281484B CN 114281484 B CN114281484 B CN 114281484B CN 202111639946 A CN202111639946 A CN 202111639946A CN 114281484 B CN114281484 B CN 114281484B
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- transmitted
- target
- index
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据传输方法、装置、设备以及存储介质。该方法包括:从环形队列中依次确定出对应于待传输数据的至少一个目标队列项;确定待传输数据的属性信息,属性信息包括第一个确定出的目标队列项在环形队列中的第一索引以及待传输数据对应的消息名称;将待传输数据写入各目标队列项通过指针指向的目标内存页,并将属性信息添加至消息队列中,以使数据接收方基于消息名称、通过环形队列和消息队列从共享内存空间中获取待传输数据,环形队列和消息队列存储于共享内存空间中的预设内存页中。采用本申请实施例,可安全高效地实现虚拟机间的数据传输,适用性高。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备以及存储介质。
背景技术
虚拟化已经成为计算机领域中的一种流行技术。虚拟化技术允许在同一物理主机上运行多个用户操作系统,从而可降低成本并提高可管理性。
其中,在虚拟机监视器(Hypervisor)上运行的虚拟机(Virtual Machine, VM)之间存在大量的数据传输需求,包括传输特权指令、传输文件等。现有的数据传输方式是通过TCP/IP协议进行传输,但是数据的安全性难以保证;或者是基于共享内存来实现通信双方的数据同步,但是通信双方在数据传输过程中需执行大量的同步操作(例如,数据发送方在拷贝完数据后,需要进入阻塞态等数据待接收方读取数据完成后方能进行下一次拷贝),从而导致频繁出现VM-Exit(虚拟机退出,陷入EL2特权模式),对虚拟机性能造成影响。
因此,如何安全高效地实现虚拟机间的数据传输成为亟需解决的问题。
发明内容
本申请实施例提供一种数据传输方法、装置、设备以及存储介质,可安全高效地实现虚拟机间的数据传输,适用性高。
第一方面,本申请实施例提供一种数据传输方法,该方法应用于数据发送方,包括:
从环形队列中依次确定出对应于待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
确定上述待传输数据的属性信息,上述属性信息包括第一个确定出的目标队列项在上述环形队列中的第一索引以及上述待传输数据对应的消息名称;
将上述待传输数据写入各上述目标队列项通过指针指向的目标内存页,并将上述属性信息添加至消息队列中,以使数据接收方基于上述消息名称、通过上述环形队列和上述消息队列从上述共享内存空间中获取上述待传输数据,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中。
第二方面,本申请实施例提供一种数据传输方法,该方法应用于数据接收方,包括:
确定待传输数据对应的消息名称;
从消息队列中确定包括上述消息名称的属性信息,并确定上述属性信息所包括的第一索引;
基于上述第一索引确定环形队列中对应于上述待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一上述目标队列项通过指针指向上述共享内存空间中用于存储上述待传输数据的目标内存页,上述第一索引为数据发送方从上述环形队列中第一个确定出的目标队列项在上述环形队列中的索引,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中;
从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
第三方面,本申请实施例提供了一种数据传输装置,该装置包括:
第一队列处理单元,用于从环形队列中依次确定出对应于待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
属性确定单元,用于确定上述待传输数据的属性信息,上述属性信息包括第一个确定出的目标队列项在上述环形队列中的第一索引以及上述待传输数据对应的消息名称;
数据处理单元,用于将上述待传输数据写入各上述目标队列项通过指针指向的目标内存页,并将上述属性信息添加至消息队列中,以使数据接收方基于上述消息名称、通过上述环形队列和上述消息队列从上述共享内存空间中获取上述待传输数据,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中。
第四方面,本申请实施例提供了一种数据传输装置,该装置包括:
名称确定单元,用于确定待传输数据对应的消息名称;
索引确定单元,用于从消息队列中确定包括上述消息名称的属性信息,并确定上述属性信息所包括的第一索引;
第二队列处理单元,用于基于上述第一索引确定环形队列中对应于上述待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一上述目标队列项通过指针指向上述共享内存空间中用于存储上述待传输数据的目标内存页,上述第一索引为数据发送方从上述环形队列中第一个确定出的目标队列项在上述环形队列中的索引,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中;
数据获取单元,用于从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
第五方面,本申请实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
上述存储器用于存储计算机程序;
上述处理器被配置用于在调用上述计算机程序时,执行本申请实施例第一方面和/或第二方面提供的数据传输方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本申请实施例第一方面和/或第二方面提供的数据传输方法。
第七方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行时实现本申请实施例第一方面和/或第二方面提供的数据传输方法。
在本申请实施例中,数据发送方在发送待传输数据时,只需要将待传输数据存储于共享内存空间中的目标内存页,以使数据接收方从共享内存空间中获取待传输数据,从而对待传输数据的数据安全提供了有效保障。并且数据发送方在将待传输数据存储于环形队列中各目标队列项通过指针指向的目标内存页之后,可将包括第一个目标队列项的在环形队列中的索引以及待传输数据对应的消息名称的属性信息添加至消息队列,从而数据接收方可基于消息名称从消息队列中确定出待传输数据对应的属性信息,进而根据属性信息中的索引和环形队列从共享内存空间中读取待传输数据,减少数据传输双方的同步操作,实现了待传输数据的高效传输。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据传输方法的一流程示意图;
图2是本申请实施例提供的数据传输方法的另一流程示意图;
图3是本申请实施例提供的数据读取场景示意图;
图4是本申请实施例提供的数据传输装置的一结构示意图;
图5是本申请实施例提供的数据传输装置的另一结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
首先对本申请涉及的几个名词进行介绍和解释:
虚拟机(Virtual Machine),指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,在实体计算机中能够完成的工作一般在虚拟机中都能够实现。在计算机等电子设备中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,每个虚拟机都可以视为有独立的硬件和操作系统,可以像使用实体机一样对虚拟机进行操作。
虚拟机监视器(Hypervisor),也可称做VMM(virtual machine monitor),是一种运行在物理硬件和操作系统之间的中间软件层,可允许多个操作系统或应用共享硬件。Hypervisors可以视为一种在虚拟环境中的“元”操作系统,可以访问包括磁盘和内存在内的所有物理硬件,Hypervisors不但协调着这些硬件资源的访问,同时也能在各个虚拟机之间施加防护。
参见图1,图1是本申请实施例提供的数据传输方法的一流程示意图。其中,图1所示的数据传输方法可适用于数据发送方,本实施例中数据发送方为发送数据的虚拟机,具体可包括如下步骤:
步骤S11、从环形队列中依次确定出对应于待传输数据的至少一个目标队列项。
其中,待传输数据为数据发送方需要发送的数据,如在sender-receiver 模式下发送给指定数据接收方的相关数据,或者在publisher-subscriber(发布 -订阅)模式下数据发送方作为发布者时需要发送给订阅者的相关数据。
其中,数据接收方和数据发送方运行于同一虚拟机监视器之上。
其中,本申请实施例中的待传输数据的具体数据内容可基于实际应用场景需求确定,在此不做限制。
在本申请实施例中,环形队列包括多个队列项,每一队列项通过指针指向共享内存空间中用于存储数据的一个内存页,也就是说通过环形队列可以管理共享内存空间中用于存储数据的内存页。
其中,环形队列存储于共享内存空间中的预设内存页中,如存储于共享内存空间中的第一个内存页中,在此不做限制。
其中,共享内存空间由虚拟机监视器在启动时根据相关的配置文件完成配置,提供用户中间物理地址(Intermediate Physical Address,IPA)到物理地址(PhysicalAddress,PA)的映射接口。在虚拟化环境中,虚拟机访问地址一般需要经过二级映射过程,即从虚拟机虚拟地址到中间物理地址IPA的一级映射,从中间物理地址IPA到真实物理地址PA的二级映射,以将不同虚拟机对应的不同变量的IPA映射到不同PA以避免冲突。因此数据接收方和数据发送方在初始化时挂在内核模块并调用接口建立IPA与PA的映射,并运行用户态守护进程,打开设备并调用mmap以将共享内存空间映射到用户态,从而数据发送方和数据接收方均可访问共享内存空间。
在本申请实施例中,环形队列中对应于待传输数据的至少一个目标队列项,为至少一个通过指针指向用于存储待传输数据的内存页的队列项。即在数据发送方需要发送待传输数据时,需要从环形队列中确定出用于管理存储待传输数据的至少一个内存页所对应的队列项。
具体地,可确定待传输数据的数据大小,基于数据大小,从共享内存空间中依次确定出用于存储待传输数据的至少一个内存页(为方便描述,以下称为目标内存页),进而将环形队列中通过指针指向各目标内存页的队列项,确定为对应于待传输数据的至少一个目标队列项,即将环形队列中用于管理各目标内存页的队列项确定为对应于待传输数据的至少一个目标队列项。
其中,用于存储待传输数据的至少一个目标内存页的可用存储空间之和大于或者等于待传输数据的数据大小,即基于各目标内存页可完全将待传输数据进行存储。
在基于数据大小,从共享内存空间中依次确定出用于存储待传输数据的至少一个目标内存页时,可先从共享内存空间中先确定出一个可用于存储数据的内存页(为方便描述,以下称为第一内存页)。进一步可将第一内存页的可用存储空间与该数据大小进行比较,若第一内存页的可用存储空间大于或者等于该数据大小,则将第一内存页确定为用于存储待传输数据的唯一一个目标内存页。
若第一内存页的可用存储空间小于该数据大小,继续从共享内存空间中确定出可用于存储数据的内存页(为方便描述,以下称为第二内存页),并将第二内存页的可用存储空间与此时的剩余数据大小(数据大小与第一内存页的可用存储空间的差值)进行比较。若第二内存页的可用存储空间大于或者等于剩余数据大小,则将第一内存页和第二内存页确定为用于存储待传输数据的一个目标内存页。
若第二内存页的可用存储空间仍小于此时的剩余数据大小,则继续基于上述方式从共享内存空间中确定出可用于存储数据的其他内存页,并在某一内存页的可用存储空间大于或者等于当前的剩余数据大小时,将该内存页以及先前确定出的其他内存页确定为用于存储待传输数据的多个目标内存页。
在本申请实施例中,对于确定出的每一目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息。
其中,第一指针指向该目标队列项对应的目标内存页,即该目标队列项通过第一指针指向对应的目标内存页。
其中,第一指示信息用于指示待传输数据为有效数据,具体可用于指示该目标队列项通过第一指针指向的目标内存页所存储的数据为有效数据。
其中,第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在环形队列中的索引。
其中,第二索引在小于或者等于预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项,即在确定出该目标队列项之后未确定出对应于待传输数据的其他目标队列项。
其中,上述预设阈值可以为-1,也可以为其他值,具体可基于实际应用场景需求确定,在此不做限制。
作为一示例,对于第一个确定出的目标队列项,该目标队列项可包括指向对应目标内存页的第一指针、用于指示待传输数据为有效数据的第二指示信息以及在该目标队列项之后第二个确定出的目标队列项在环形队列中的索引。
其中,示例性的,任一目标队列项的数据结构可如下表所示:
其中,poniter表示该目标队列项对应的第一指针,next_index表示第二索引,reserved表示第一指示信息,且各项信息的数据类型如上表所示,在此不再赘述。
步骤S12、确定待传输数据的属性信息。
在本申请实施例中,在确定出各目标队列项之后,可确定待传输数据的属性信息。其中,待传输数据的属性信息包括第一个确定出的目标队列项在环形队列中的第一索引以及待传输数据对应的消息名称。
即属性信息中的第一索引可用于指示环形队列中对应于待传输数据的第一个目标队列项,基于该目标队列项中的第二索引可用于指示在该目标队列项后下一个确定出的目标队列项,从而可指示出所有对应于待传输数据的目标队列项。
可选地,在确定出第一个对应于待传输数据的目标队列项之后,即可确定该目标队列项在环形队列中的索引,并将其作为待传输数据的属性信息中的第一索引。
作为一示例,待传输数据的属性信息的数据结构可如下表所示:
其中,name为消息名称,start_index为第一索引。
步骤S13、将待传输数据写入各目标队列项通过指针指向的目标内存页,并将属性信息添加至消息队列中,以使数据接收方基于消息名称、通过环形队列和消息队列从共享内存空间中获取待传输数据。
在本申请实施例中,在确定出所有对应于待传输数据的目标队列项之后,可将待传输数据写入各目标队列项通过指针指向的目标内存页之中。或者,可在每确定出一个目标队列项之后,就将待传输数据中的部分数据写入该目标队列项通过指针指向的目标内存页,从而在确定出各目标内存页之后完成待传输数据的写入。
进一步地,在将待传输数据写入各目标队列项通过指针指向的目标内存页之后,可将属性信息添加至消息队列中,从而可使得数据接收方可基于待传输数据的消息名称,通过环形队列和消息队列从共享内存空间中获取待传输数据。
其中,消息队列中的每一项为一个数据发送方所需要发送的待传输数据的一个属性信息,通过消息队列可记录所有待传输数据的数据流。
其中,消息队列可存储于共享内存空间中的预设内存页中,如存储于共享内存空间中的第一个内存页中,在此不做限制。
在本申请实施例中,数据发送方在需要发送待传输数据时,可获取消息队列锁以使消息队列处于锁定状态,此时其他数据发送方无法对消息队列采取任何处理操作。在消息队列处于锁定状态下,从环形队列中确定出对应于待传输数据的至少一个目标队列项,进一步地,将待传输数据写入各目标队列项通过指针指向的目标内存页,并将待传输数据的属性信息添加至消息队列之后,可释放消息队列锁以完成待传输数据的传输。
或者,数据发送方在需要发送待传输数据时,即可获取消息队列锁并在消息队列中新增一个队列项作为待传输数据的属性信息,并设置对应的消息名称。在确定出第一个目标队列项之后将该目标队列项在环形队列中的索引作为第一索引写入属性信息,进而在将待传输数据完全写入各目标队列项通过指针指向的目标内存页之后,释放消息队列锁即可。
在本申请实施例中,数据发送方在需要向指定数据接收方发送待传输数据,即数据发送方在sender-receiver模式下,可向数据接收方发送携带待传输数据对应的消息名称的数据传输请求,以使数据接收方基于消息名称从消息队列中获取待传输数据的属性信息,并基于属性信息和环形队列从共享内存空间中获取待传输数据。
其中,数据发送方可通过虚拟机监视器调用(hypervisor call,HVC)指令向数据发送方发送携带消息名称的数据传输请求,也可通过其他方式发送数据传输请求,具体可基于实际应用场景需求确定,在此不做限制。
在本申请实施例中,在数据发送方为发布者的情况下,即在 publisher-subscriber(发布-订阅)模式下数据发送方需要发送待传输数据时,待传输数据的属性信息还包括数据有效时间。即数据发送方在将待传输数据写入各目标队列项通过指针指向的各目标内存页之后,可在待传输数据的属性信息中写入数据有效时间。
作为一示例,待传输数据的属性信息的数据结构可如下表所示:
其中,name为消息名称,start_index为第一索引,ttl表示数据有效时间,且消息名称、第一索引以及数据有效时间的数据类型如上表所示,在此不再赘述。
进一步地,若待传输数据在共享内存空间中的存储时间超过数据有效时间,则可从消息队列中撤回待传输数据的属性信息,以使数据接收方(订阅者)无法获取待传输数据。和/或,将各目标队列中的第一指示信息修改为第二指示信息,以通过第二指示信息指示待传输数据为无效数据,从而数据接收方(订阅者)可基于第二指示信息确定待传输数据为无效数据。
在本申请实施例中,待传输数据的属性信息还可包括待传输数据的大小或者属性信在消息队列中的第三索引中的至少一项,也可包括其他信息,如与待传输数据相关联的其他数据对应的消息名称消息队列中的索引等,具体可基于实际应用场景需求确定,在此不做限制。
参见图2,图2是本申请实施例提供的数据传输方法的另一流程示意图。其中,图2所示的数据传输方法可适用于数据接收方,本实施例中数据接收方为接收数据的虚拟机,具体可包括如下步骤:
步骤S21、确定待传输数据对应的消息名称。
在本申请实施例中,数据接收方在接收待传输数据之前,可先确定待传输数据的消息名称。
具体地,在数据接收方为数据发送方所指定的接收待传输数据的虚拟机时,即在sender-receiver模式下,数据接收方可通过数据发送方通过HVC指令发送的数据传输请求,并进一步获取数据传输请求所携带的消息名称。
可选地,在数据接收方为订阅者时,即在publisher-subscriber(发布-订阅)模式下,数据接收方可基于订阅信息来确定需要获取的待传输数据的消息名称。
步骤S22、从消息队列中确定包括消息名称的属性信息,并确定属性信息所包括的第一索引。
在本申请实施例中,数据接收方可根据消息名称,从消息队列中确定包括该消息名称的属性信息,该属性信息即为待传输数据对应的属性信息。数据接收方可进一步确定属性信息所包括的第一索引。
其中,消息队列中的每一项为一个数据发送方所需要发送的待传输数据的一个属性信息,通过消息队列可记录所有待传输数据的数据流。消息队列可存储于共享内存空间中的预设内存页中,如存储于共享内存空间中的第一个内存页中,在此不做限制。
其中,第一索引为数据发送方从环形队列中第一个确定出的目标队列项在环形队列中的索引,环形队列包括多个队列项,每一队列项通过指针指向共享内存空间中用于存储数据的一个内存页。
步骤S23、基于第一索引确定环形队列中对应于待传输数据的至少一个目标队列项。
在本申请实施例中,数据接收方可确定环形队列中对应于第一索引的目标队列项,该目标队列项通过指针指向的目标内存页存储待传输数据。
进一步地,数据接收方可基于第一索引对应的目标队列项,从环形队列中确定出对应于待传输数据的至少一个目标队列项,每一目标队列项通过指针指向的目标内存页存储待传输数据。
在本申请实施例中,对于确定出的每一目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息。
其中,第一指针指向该目标队列项对应的目标内存页,即该目标队列项通过第一指针指向对应的目标内存页。
其中,第一指示信息用于指示待传输数据为有效数据,具体可用于指示该目标队列项通过第一指针指向的目标内存页所存储的数据为有效数据。
其中,第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在环形队列中的索引。
其中,第二索引在小于或者等于预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项,即在确定出该目标队列项之后未确定出对应于待传输数据的其他目标队列项。
其中,上述预设阈值可以为-1,也可以为其他值,具体可基于实际应用场景需求确定,在此不做限制。
作为一示例,对于第一个确定出的目标队列项,该目标队列项可包括指向对应目标内存页的第一指针、用于指示待传输数据为有效数据的第二指示信息以及在该目标队列项之后第二个确定出的目标队列项在环形队列中的索引。
其中,示例性的,任一目标队列项的数据结构可如下表所示:
其中,poniter表示该目标队列项对应的第一指针,next_index表示第二索引,reserved表示第一指示信息,且各项信息的数据类型如上表所示,在此不再赘述。
步骤S24、从各目标队列项通过指针指向的目标内存页中读取待传输数据。
在本申请实施例中,数据接收方在确定出环形队列中对应于第一索引的第一个目标队列项(为方便描述,以下称为第一目标队列项)之后,从第一目标队列项指向的目标内存页中读取待传输数据。进一步确定第一目标队列项中的第二索引,若第二索引小于或者等于预设阈值,如小于-1,则确定第一目标队列项为数据发送方唯一确定的用于存储待传输数据的目标内存页所对应的目标队列项,此时完成对待传输数据的读取。
若第二索引大于预设阈值,则基于第一目标队列项中的第二索引,从环形队列中确定出下一个目标队列项(为方便描述,以下称为第二目标队列项),并从第二目标队列项通过指针指向的目标内存页读取待传输数据。并在同时将第二目标队列项中的第二索引与预设阈值进行比较,在第二目标队列项的第二索引小于或者等于预设阈值时,完成对待传输数据的读取。在第二目标队列项中的第二索引大于预设阈值时,继续从环形队列中确定出对应于第二队列项中的第二索引的目标队列项(为方便描述,以下称为第三目标队列项),如此往复,指示某一目标队列项的第二索引小于或者等于预设阈值时,将从该目标队列项以及先前确定出的目标队列项通过指针指向的目标内存页读取的数据确定为待传输数据,从而完成对待传输数据的获取。
作为一示例,如图3所示,图3是本申请实施例提供的数据读取场景示意图。在图3所示的共享内存空间中存在包括多个属性信息的消息队列,且不同的属性信息中包括的消息名称分别为Topic1、Topic2、Topic3等。若数据接收方确定的消息名称为Topic2,则可确定消息队列中包括消息名称 Topic2的属性信息,并从中确定出第一索引start_index。
进一步地,数据接收方可从环形队列中确定出对应于第一索引start_index 的第一目标队列项,并从第一目标队列项通过指针(pointer)指向的内存页 (Page2)中读取数据。
假设第一索引start_index对应的第一目标队列项中的第二索引 (next_index)大于预设阈值,则可确定第一目标队列项中的第二索引(next_index)对应的第二目标队列项,并从第二目标队列项通过指针(pointer) 指向的内存页(Page3)中读取数据。
假设第二目标队列项中的第二索引小于预设阈值,则从内存页Page2和内存页Page3中读取的数据为消息名称Topic2对应的待传输数据。
在本申请实施例中,在数据接收方为数据发送方所指定的接收待传输数据的虚拟机时,即在sender-receiver模式下,数据接收方每从一个目标队列项通过指针指向的目标内存页读取完数据之后,可将该目标队列项中的第一指示信息修改为第二指示信息,以指示对应的目标内存页中所存储的数据为有效数据,从而其他任一数据接收方可基于该目标内存页存储其他数据以实现数据传输。
在本申请实施例中,在数据接收方为订阅者时,即在publisher-subscriber (发布-订阅)模式下,包括该消息名称的属性信息中还包括数据有效时间。其中,数据发送方在将待传输数据写入各目标队列项通过指针指向的各目标内存页之后,可在待传输数据的属性信息中写入数据有效时间。
作为一示例,待传输数据的属性信息的数据结构可如下表所示:
其中,name为消息名称,start_index为第一索引,ttl表示数据有效时间,且消息名称、第一索引以及数据有效时间的数据类型如上表所示,在此不再赘述。
在此情况下,数据接收方在从各目标队列项通过指针指向的目标内存页读取数据时,可确定待传输数据在共享内存空间中对应的目标内存页中的存储时间是否超过数据有效时间。若超过有效时间,则说明待传输数据为无效数据,此时数据接收方可停止从对应的目标内存页中读取待传输数据,若未超过有效时间,则说明待传输数据为有效数据,此时数据接收方可从对应的目标内存页中读取待传输数据。
在本申请实施例中,待传输数据的属性信息还可包括待传输数据的大小或者属性信在消息队列中的第三索引中的至少一项,也可包括其他信息,如与待传输数据相关联的其他数据对应的消息名称消息队列中的索引等,具体可基于实际应用场景需求确定,在此不做限制。
在本申请实施例中,数据发送方在发送待传输数据时,只需要将待传输数据存储于共享内存空间中的目标内存页,以使数据接收方从共享内存空间中获取待传输数据,从而对待传输数据的数据安全提供了有效保障。并且数据发送方在将待传输数据存储于环形队列中各目标队列项通过指针指向的目标内存页之后,可将包括第一个目标队列项的在环形队列中的索引以及待传输数据对应的消息名称的属性信息添加至消息队列,从而数据接收方可基于消息名称从消息队列中确定出待传输数据对应的属性信息,进而根据属性信息中的索引和环形队列从共享内存空间中读取待传输数据,减少数据传输双方的同步操作,实现了待传输数据的高效传输。
参见图4,图4是本申请实施例提供的数据传输装置的一结构示意图。本申请实施例提供的数据传输装置包括:
第一队列处理单元41,用于从环形队列中依次确定出对应于待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
属性确定单元42,用于确定上述待传输数据的属性信息,上述属性信息包括第一个确定出的目标队列项在上述环形队列中的第一索引以及上述待传输数据对应的消息名称;
数据处理单元43,用于将上述待传输数据写入各上述目标队列项通过指针指向的目标内存页,并将上述属性信息添加至消息队列中,以使数据接收方基于上述消息名称、通过上述环形队列和上述消息队列从上述共享内存空间中获取上述待传输数据,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中。
在一些可行的实施方式中,上述第一队列处理单元41,用于:
确定上述待传输数据的数据大小;
基于上述数据大小,从共享内存空间中依次确定出用于存储上述待传输数据的至少一个目标内存页;
将环形队列中通过指针指向各上述目标内存页的队列项,确定为对应于上述待传输数据的至少一个目标队列项。
在一些可行的实施方式中,对于每一上述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
上述第一指针指向该目标队列项对应的目标内存页;
上述第一指示信息用于指示上述待传输数据为有效数据;
上述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在上述环形队列中的索引,上述第二索引在小于或者等于上述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
在一些可行的实施方式中,上述属性信息还包括数据有效时间;
上述第一队列处理单元41,用于:
若上述待传输数据在上述共享内存空间中的存储时间超过上述数据有效时间,则从上述消息队列中撤回上述属性信息,和/或将各上述目标队列项中的第一指示信息修改为第二指示信息,上述第二指示信息用于指示上述待传输数据为无效数据。
具体实现中,上述装置可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图5,图5是本申请实施例提供的数据传输装置的另一结构示意图。本申请实施例提供的数据传输装置包括:
名称确定单元51,用于确定待传输数据对应的消息名称;
索引确定单元52,用于从消息队列中确定包括上述消息名称的属性信息,并确定上述属性信息所包括的第一索引;
第二队列处理单元53,用于基于上述第一索引确定环形队列中对应于上述待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一上述目标队列项通过指针指向上述共享内存空间中用于存储上述待传输数据的目标内存页,上述第一索引为数据发送方从上述环形队列中第一个确定出的目标队列项在上述环形队列中的索引,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中;
数据获取单元54,用于从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
在一些可行的实施方式中,对于每一上述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
上述第一指针指向该目标队列项对应的目标内存页;
上述第一指示信息用于指示上述待传输数据为有效数据;
上述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在上述环形队列中的索引,上述第二索引在小于或者等于上述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
在一些可行的实施方式中,上述属性信息还包括数据有效时间;上述数据获取单元54,用于:
若上述待传输数据在上述共享内存空间中的存储时间未超过上述数据有效时间,则从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
具体实现中,上述装置可通过其内置的各个功能模块执行如上述图3中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
参见图6,图6是本申请实施例提供的电子设备的结构示意图。如图6 所示,本实施例中的电子设备600可以包括:处理器601,网络接口604和存储器605,此外,上述电子设备600还可以包括:用户接口603,和至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速 RAM存储器,也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机可读存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的电子设备600中,网络接口604可提供网络通讯功能;而用户接口603主要用于为用户提供输入的接口;而处理器601应用于数据发送方时,可以调用存储器605中存储的设备控制应用程序,以实现:
从环形队列中依次确定出对应于待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
确定上述待传输数据的属性信息,上述属性信息包括第一个确定出的目标队列项在上述环形队列中的第一索引以及上述待传输数据对应的消息名称;
将上述待传输数据写入各上述目标队列项通过指针指向的目标内存页,并将上述属性信息添加至消息队列中,以使数据接收方基于上述消息名称、通过上述环形队列和上述消息队列从上述共享内存空间中获取上述待传输数据,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中。
在一些可行的实施方式中,上述处理器601用于:
确定上述待传输数据的数据大小;
基于上述数据大小,从共享内存空间中依次确定出用于存储上述待传输数据的至少一个目标内存页;
将环形队列中通过指针指向各上述目标内存页的队列项,确定为对应于上述待传输数据的至少一个目标队列项。
在一些可行的实施方式中,对于每一上述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
上述第一指针指向该目标队列项对应的目标内存页;
上述第一指示信息用于指示上述待传输数据为有效数据;
上述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在上述环形队列中的索引,上述第二索引在小于或者等于上述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
在一些可行的实施方式中,上述属性信息还包括数据有效时间;上述处理器601用于:
若上述待传输数据在上述共享内存空间中的存储时间超过上述数据有效时间,则从上述消息队列中撤回上述属性信息,和/或将各上述目标队列项中的第一指示信息修改为第二指示信息,上述第二指示信息用于指示上述待传输数据为无效数据。
其中,处理器601应用于数据接收方时,可以调用存储器605中存储的设备控制应用程序,以实现:
确定待传输数据对应的消息名称;
从消息队列中确定包括上述消息名称的属性信息,并确定上述属性信息所包括的第一索引;
基于上述第一索引确定环形队列中对应于上述待传输数据的至少一个目标队列项,上述环形队列包括多个队列项,每一上述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一上述目标队列项通过指针指向上述共享内存空间中用于存储上述待传输数据的目标内存页,上述第一索引为数据发送方从上述环形队列中第一个确定出的目标队列项在上述环形队列中的索引,上述环形队列和上述消息队列存储于上述共享内存空间中的预设内存页中;
从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
在一些可行的实施方式中,对于每一上述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
上述第一指针指向该目标队列项对应的目标内存页;
上述第一指示信息用于指示上述待传输数据为有效数据;
上述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在上述环形队列中的索引,上述第二索引在小于或者等于上述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
在一些可行的实施方式中,上述属性信息还包括数据有效时间;上述处理器601用于:
若上述待传输数据在上述共享内存空间中的存储时间未超过上述数据有效时间,则从各上述目标队列项通过指针指向的目标内存页中读取上述待传输数据。
应当理解,在一些可行的实施方式中,上述处理器601可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备600可通过其内置的各个功能模块执行如上述图1和/或图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图1和/或图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行时本申请实施例图1和/或图2中各个步骤所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种数据传输方法,其特征在于,应用于数据发送方,所述方法包括:
基于待传输数据的数据大小,从共享内存空间中依次确定出用于存储所述待传输数据的至少一个目标内存页,将环形队列中通过指针指向各所述目标内存页的队列项,确定为对应于所述待传输数据的至少一个目标队列项,所述环形队列包括多个队列项,每一所述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
确定所述待传输数据的属性信息,所述属性信息包括第一个确定出的目标队列项在所述环形队列中的第一索引以及所述待传输数据对应的消息名称;
将所述待传输数据写入各所述目标队列项通过指针指向的目标内存页,并将所述属性信息添加至消息队列中,以使数据接收方在确定所述待传输数据对应的消息名称之后,从所述消息队列中确定包括所述消息名称的属性信息,并基于所述属性信息和所述环形队列从所述共享内存空间中获取所述待传输数据,所述环形队列和所述消息队列存储于所述共享内存空间中的预设内存页中,所述数据发送方和所述数据接收方为运行于同一虚拟机监视器上的不同虚拟机。
2.根据权利要求1所述的方法,其特征在于,对于每一所述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
所述第一指针指向该目标队列项对应的目标内存页;
所述第一指示信息用于指示所述待传输数据为有效数据;
所述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在所述环形队列中的索引,所述第二索引在小于或者等于所述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
3.根据权利要求2所述的方法,其特征在于,所述属性信息还包括数据有效时间;所述方法还包括:
若所述待传输数据在所述共享内存空间中的存储时间超过所述数据有效时间,则从所述消息队列中撤回所述属性信息,和/或将各所述目标队列项中的第一指示信息修改为第二指示信息,所述第二指示信息用于指示所述待传输数据为无效数据。
4.一种数据传输方法,其特征在于,应用于数据接收方,所述方法包括:
确定待传输数据对应的消息名称;
从消息队列中确定包括所述消息名称的属性信息,并确定所述属性信息所包括的第一索引;
基于所述第一索引确定环形队列中对应于所述待传输数据的至少一个目标队列项,所述环形队列包括多个队列项,每一所述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一所述目标队列项通过指针指向所述共享内存空间中用于存储所述待传输数据的目标内存页,所述目标内存页由数据发送方基于所述待传输数据的数据大小确定,所述第一索引为所述数据发送方从所述环形队列中第一个确定出的目标队列项在所述环形队列中的索引,所述环形队列和所述消息队列存储于所述共享内存空间中的预设内存页中;
从各所述目标队列项通过指针指向的目标内存页中读取所述待传输数据,所述数据发送方和所述数据接收方为运行于同一虚拟机监视器上的不同虚拟机。
5.根据权利要求4所述的方法,其特征在于,对于每一所述目标队列项,该目标队列项包括第一指针、第二索引以及第一指示信息;
所述第一指针指向该目标队列项对应的目标内存页;
所述第一指示信息用于指示所述待传输数据为有效数据;
所述第二索引在大于预设阈值时用于指示在确定出该目标队列项之后下一个确定出的目标队列项在所述环形队列中的索引,所述第二索引在小于或者等于所述预设阈值时用于指示该目标队列项为最后一个确定出的目标队列项。
6.根据权利要求4所述的方法,其特征在于,所述属性信息还包括数据有效时间;所述从各所述目标队列项通过指针指向的目标内存页中读取所述待传输数据,包括:
若所述待传输数据在所述共享内存空间中的存储时间未超过所述数据有效时间,则从各所述目标队列项通过指针指向的目标内存页中读取所述待传输数据。
7.一种数据传输装置,其特征在于,所述装置包括:
第一队列处理单元,用于基于待传输数据的数据大小,从共享内存空间中依次确定出用于存储所述待传输数据的至少一个目标内存页,将环形队列中通过指针指向各所述目标内存页的队列项,确定为对应于所述待传输数据的至少一个目标队列项,所述环形队列包括多个队列项,每一所述队列项通过指针指向共享内存空间中用于存储数据的一个内存页;
属性确定单元,用于确定所述待传输数据的属性信息,所述属性信息包括第一个确定出的目标队列项在所述环形队列中的第一索引以及所述待传输数据对应的消息名称;
数据处理单元,用于将所述待传输数据写入各所述目标队列项通过指针指向的目标内存页,并将所述属性信息添加至消息队列中,以使数据接收方在确定所述待传输数据对应的消息名称之后,从所述消息队列中确定包括所述消息名称的属性信息,并基于所述属性信息和所述环形队列从所述共享内存空间中获取所述待传输数据,所述环形队列和所述消息队列存储于所述共享内存空间中的预设内存页中,所述待传输数据的数据发送方和所述数据接收方为运行于同一虚拟机监视器上的不同虚拟机。
8.一种数据传输装置,其特征在于,所述装置包括:
名称确定单元,用于确定待传输数据对应的消息名称;
索引确定单元,用于从消息队列中确定包括所述消息名称的属性信息,并确定所述属性信息所包括的第一索引;
第二队列处理单元,用于基于所述第一索引确定环形队列中对应于所述待传输数据的至少一个目标队列项,所述环形队列包括多个队列项,每一所述队列项通过指针指向共享内存空间中用于存储数据的一个内存页,每一所述目标队列项通过指针指向所述共享内存空间中用于存储所述待传输数据的目标内存页,所述目标内存页由数据发送方基于所述待传输数据的数据大小确定,所述第一索引为所述数据发送方从所述环形队列中第一个确定出的目标队列项在所述环形队列中的索引,所述环形队列和所述消息队列存储于所述共享内存空间中的预设内存页中;
数据获取单元,用于从各所述目标队列项通过指针指向的目标内存页中读取所述待传输数据,所述数据发送方和所述待传输数据的数据接收方为运行于同一虚拟机监视器上的不同虚拟机。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639946.9A CN114281484B (zh) | 2021-12-29 | 2021-12-29 | 数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111639946.9A CN114281484B (zh) | 2021-12-29 | 2021-12-29 | 数据传输方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281484A CN114281484A (zh) | 2022-04-05 |
CN114281484B true CN114281484B (zh) | 2022-08-26 |
Family
ID=80877986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111639946.9A Active CN114281484B (zh) | 2021-12-29 | 2021-12-29 | 数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281484B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996200B (zh) * | 2022-05-26 | 2024-05-07 | 中国联合网络通信集团有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
CN115291812B (zh) * | 2022-09-30 | 2023-01-13 | 北京紫光青藤微系统有限公司 | 一种通信芯片的数据存储方法及装置 |
CN116107762A (zh) * | 2023-04-11 | 2023-05-12 | 远江盛邦(北京)网络安全科技股份有限公司 | 内存分配方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110402568A (zh) * | 2018-02-24 | 2019-11-01 | 华为技术有限公司 | 一种通信的方法及装置 |
CN112214329A (zh) * | 2020-11-04 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、设备及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504617B (zh) * | 2009-03-23 | 2011-05-11 | 华为技术有限公司 | 一种基于处理器共享内存的数据发送方法及装置 |
US8463980B2 (en) * | 2010-09-30 | 2013-06-11 | Microsoft Corporation | Shared memory between child and parent partitions |
CN112698959A (zh) * | 2019-10-23 | 2021-04-23 | 普天信息技术有限公司 | 一种多核通信方法和装置 |
CN113672406B (zh) * | 2021-08-24 | 2024-02-06 | 北京天融信网络安全技术有限公司 | 数据传输处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-29 CN CN202111639946.9A patent/CN114281484B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110402568A (zh) * | 2018-02-24 | 2019-11-01 | 华为技术有限公司 | 一种通信的方法及装置 |
CN112214329A (zh) * | 2020-11-04 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 内存管理方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114281484A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281484B (zh) | 数据传输方法、装置、设备及存储介质 | |
WO2017008675A1 (zh) | 一种用于虚拟化环境下传输数据的方法与设备 | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US20180330081A1 (en) | Execution environment virtualization method and apparatus and virtual execution environment access method and apparatus | |
US10176007B2 (en) | Guest code emulation by virtual machine function | |
US8156503B2 (en) | System, method and computer program product for accessing a memory space allocated to a virtual machine | |
US9665534B2 (en) | Memory deduplication support for remote direct memory access (RDMA) | |
US7784060B2 (en) | Efficient virtual machine communication via virtual machine queues | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
US10089024B2 (en) | Memory deduplication protection for memory pages | |
US11853767B2 (en) | Inter-core data processing method, system on chip and electronic device | |
CN104205050A (zh) | 访问远程机器上的设备 | |
WO2021169129A1 (zh) | 虚拟机在线迁移方法、装置、设备及计算机可读存储介质 | |
CN112035272A (zh) | 进程间通信的方法、装置以及计算机设备 | |
CN114064302B (zh) | 一种进程间通信的方法及装置 | |
US10089247B2 (en) | System and method for coupling a host device to secure and non-secure devices | |
CN114945009A (zh) | PCIe总线连接的设备间进行通信的方法、设备及系统 | |
US9424114B2 (en) | Input/output (I/O) processing via a page fault doorbell mechanism | |
US8751724B2 (en) | Dynamic memory reconfiguration to delay performance overhead | |
US20130297881A1 (en) | Performing zero-copy sends in a networked file system with cryptographic signing | |
CN116860391A (zh) | Gpu算力资源调度方法、装置、设备和介质 | |
CN117349870B (zh) | 基于异构计算的透明加解密计算系统、方法、设备和介质 | |
US11113128B1 (en) | Circular queue for microkernel operating system | |
US10795739B1 (en) | Port configuration for microkernel operating system | |
CN108563492B (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 |