CN117331712A - 跨域通信方法、装置、设备及存储介质 - Google Patents
跨域通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117331712A CN117331712A CN202311288107.6A CN202311288107A CN117331712A CN 117331712 A CN117331712 A CN 117331712A CN 202311288107 A CN202311288107 A CN 202311288107A CN 117331712 A CN117331712 A CN 117331712A
- Authority
- CN
- China
- Prior art keywords
- cross
- domain
- target
- lock
- waiting
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种跨域通信方法、装置、设备及存储介质,可用于计算机技术领域。本方法包括:确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信;若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;目标跨域锁的状态参数存储于共享内存中;通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。实现了多虚拟机之间的跨域通信,并且使写入的操作要等待读取操作完毕,而读取操作也要等待写入操作完毕,保证了跨域通信的读写互斥机制。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种跨域通信方法、装置、设备及存储介质。
背景技术
在汽车的中央集中式架构方案中,智能座舱和自动驾驶相关功能将集中到一个高性计算单元上,在这种中央集中式架构下,意味着一个计算单元上将同时运行智能座舱和自动驾驶等功能,且这些功能目前都是用不同的操作系统(Linux、QNX、Android等)去实现。
目前采用虚拟化关键技术Hypervisor在一个计算单元上部署多个不同的操作系统,并使多个不同的操作系统互相隔离、互不干扰。为实现多个不同的操作系统间的跨域通信,可以通过发布订阅实现共享内存来实现跨域的共享内存通信,但是现有方案难以实现多发布多订阅的跨域通信,难以适应各种通信场景。
发明内容
本申请提供一种跨域通信方法、装置、设备及存储介质,用以解决现有方案难以实现多发布多订阅的跨域通信,难以适应各种通信场景的问题。
第一方面,本申请提供一种跨域通信方法,包括:
确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;所述目标通信通道预先创建,所述目标通信通道用于与至少一个第二虚拟机进行通信;
若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;所述目标跨域锁的状态参数存储于共享内存中;
通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
可选地,所述确定共享内存中目标通信通道对应的目标跨域锁的状态参数是否为锁定之后,还包括:
若确定目标跨域锁的状态参数为锁定,则将目标跨域锁的等待参数由未等待更新为等待;将所述通信任务添加入目标跨域锁的任务队列中;所述目标跨域锁的等待参数及任务队列存储于第一虚拟机的非共享内存中。
可选地,所述通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信之后,还包括:
响应于读取或写入操作完成,将目标跨域锁的状态参数由锁定更新为未锁定。
可选地,所述响应于读取或写入操作完成之后,还包括:
调用虚拟机监视器hypervisor向至少一个第二虚拟机发送唤醒中断信号,以使第二虚拟机确定等待参数为等待的待唤醒跨域锁,并确定待唤醒跨域锁的状态参数是否为锁定。
可选地,所述将目标跨域锁的等待参数由未等待更新为等待之后,包括:
响应于接收到虚拟机监视器hypervisor发送的唤醒中断信号,确定等待参数为等待的待唤醒跨域锁,并将待唤醒跨域锁等待参数由等待更新为未等待;确定待唤醒跨域锁的状态参数是否为锁定;若确定待唤醒跨域锁的状态参数为未锁定,则将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务;若确定待唤醒跨域锁的状态参数为锁定,则将待唤醒跨域锁等待参数由未等待更新为等待。
可选地,所述目标跨域锁的类型为条件锁,所述将所述通信任务添加入目标跨域锁的任务队列中之后,还包括:
确定目标跨域锁的任务队列中的通信任务未执行的时长是否超过预设等待阈值;若确定通信任务未执行的时长超过预设等待阈值,则对通信任务进行报错处理。
可选地,所述方法还包括预先创建目标通信通道的步骤,所述目标通信通道的步骤包括:
发起创建目标通信通道请求,以对目标通道的传输数据区分配物理内存;从至少一个占用参数为未占用的跨域锁中确定目标通信通道对应的目标跨域锁,并将目标跨域锁的占用参数由未占用更新未已占用。
第二方面,本申请提供一种跨域通信装置,包括:
确定模块,用于确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;所述目标通信通道预先创建,所述目标通信通道用于与至少一个第二虚拟机进行通信;
更新模块,用于若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;所述目标跨域锁的状态参数存储于共享内存中;
读写模块,用于通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器及收发器;
所述存储器存储计算机执行指令;所述收发器用于收发数据;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述任一方面所述的跨域通信方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述任一方面所述的跨域通信方法。
第五方面,本申请提供一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时实现上述任一方面所述的跨域通信方法。
本申请提供的跨域通信方法、装置、设备及存储介质,确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信;若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;目标跨域锁的状态参数存储于共享内存中;通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。实现了多虚拟机之间的跨域通信,并且使写入的操作要等待读取操作完毕,而读取操作也要等待写入操作完毕,保证了跨域通信的读写互斥机制。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的跨域通信方法流程图;
图2为本申请实施例提供的一种跨域通信方法流程图;
图3为本申请实施例提供的一种跨域通信信令图;
图4为本申请实施例提供的跨域通信装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
首先对本发明所涉及的现有技术进行详细说明及分析。
目前采用虚拟化关键技术Hypervisor在一个计算单元上部署多个不同的操作系统,并使多个不同的操作系统互相隔离、互不干扰。为实现多个不同的操作系统间的跨域通信,可以通过发布订阅实现共享内存来实现跨域的共享内存通信。
现有方案难以实现多发布多订阅的跨域通信,可能仅能实现一对一的跨域通信,难以适应各种通信场景。
发明人在研究中发现,为使同一个跨域通信通道,可以同时存在多个发送方和多个接收方,可以将其通信的互斥及内存管理交由上层应用去决定,同时针对这一个跨域通信管道提供一套跨域锁,使用跨域锁保证多系统的跨域通信时的读写互斥等机制。所以本申请提供一种跨域通信方法,确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信;若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;目标跨域锁的状态参数存储于共享内存中;通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请跨域通信方法、装置、设备及存储介质可用于计算机技术领域,也可用于除计算机技术领域之外的任意领域,本申请跨域通信方法、装置、设备及存储介质的应用领域不做限定。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的跨域通信方法流程图,本申请实施例针对现有方案难以实现多发布多订阅的跨域通信,难以适应各种通信场景的问题,提供了跨域通信方法。本实施例中的方法应用于跨域通信装置,跨域通信装置可以位于电子设备中。其中,电子设备可以为表示各种形式的数字计算机或车载主机。诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。
如图1所示,该方法具体步骤如下:
步骤S101、确定目标通信通道对应的目标跨域锁的状态参数是否为锁定。
其中,目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信。
因理解的是,通过虚拟化技术,可以在一台物理服务器上模拟出多个具有完整硬件配置并运行在完全隔离环境中的计算机系统,模拟计算机系统也即虚拟机(英文简称:VM,英文全称:Virtual Machine)。
本申请实施例中,各隔离的系统运行于各虚拟机中,通过虚拟机间的跨域通信实现各隔离系统的跨域通信。
本申请实施例中,在预先创建目标通信通道之前,跨域通信各需要进行跨域通信的虚拟机可以加载跨域通信模块,采用跨域通信模块将设备树中静态分配的跨域通信内存段映射至本虚拟机。
在预先创建目标通信通道之后,第一虚拟机可以通过目标通信通道与订阅目标通信通道的第二虚拟机进行通信。本申请实施例中,第二虚拟机为加入目标通信通道的虚拟机,可以通过目标通信通道与第一通道进行跨域通信;第二虚拟机之间也可以通过目标通信通道进行跨域通信。
步骤S102、若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定。
其中,目标跨域锁的状态参数存储于共享内存中。
步骤S103、通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
本申请实施例中,创建目标通信通道时,指定目标通信通道对应的共享内存。
应理解的是,第一虚拟机可以为加入目标通信通道中的任一虚拟机,第二虚拟机为加入目标通信通道中的其余虚拟机。第一虚拟机可以读取第二虚拟机写入目标通信通道对应的共享内存中的数据,也可以在对应的共享内存中写入数据。
具体地,第一虚拟机在对对应的共享内存进行读取或写入操作之前,确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;若确定目标跨域锁的状态参数为未锁定,则确定可以通过目标通信通道对对应的共享内存进行读取或写入操作,并将目标跨域锁的状态参数由未锁定更新为锁定;若确定目标跨域锁的状态参数为锁定,则确定不可以通过目标通信通道对对应的共享内存进行读取或写入操作,等待目标跨域锁的状态由锁定更新为未锁定后,进行读取或写入操作。
本申请实施例提供的跨域通信方法,确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信;若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;目标跨域锁的状态参数存储于共享内存中;通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。实现了多虚拟机之间的跨域通信,并且使写入的操作要等待读取操作完毕,而读取操作也要等待写入操作完毕,保证了跨域通信的读写互斥机制。
本申请实施例提供的跨域通信方法还包括预先创建目标通信通道的步骤,目标通信通道的步骤包括:
步骤S201、发起创建目标通信通道请求,以对目标通道的传输数据区分配物理内存。
步骤S202、从至少一个占用参数为未占用的跨域锁中确定目标通信通道对应的目标跨域锁,并将目标跨域锁的占用参数由未占用更新未已占用。
本申请实施例中,可以预先创建多个跨域锁,并将占用参数确定为未占用;在创建目标通信通后,可以将占用参数确定为未占用的其中一个跨域锁确定为目标跨域锁,并将目标跨域锁的占用参数由未占用更新未已占用。
应理解的是,创建目标通信通道包括:对目标通道的传输数据区分配物理内存的步骤,还包括设置目标通信通道的属性等步骤。可以将传输数据区物理内存直接映射至用户态使用。
本申请实施例中,通过在跨域锁中设置占用参数,可以确定未被占用的跨域锁,将未被占用的跨域锁确定为目标跨域锁,避免多个通信通道使用同一跨域锁导致冲突。
下面结合一个具体的示例对上述实施例提供的跨域通信方法进行说明,图2为本申请实施例提供的一种跨域通信方法流程图,如图2所示,包括以下步骤:
步骤S301、确定目标通信通道对应的目标跨域锁的状态参数是否为锁定。
步骤S302、若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定,并通过目标通信通道对对应的共享内存进行读取或写入操作。
步骤S303、响应于读取或写入操作完成,将目标跨域锁的状态参数由锁定更新为未锁定。
本申请实施例中,在读取或写入操作完成后,将目标跨域锁的状态参数由锁定更新为未锁定,以使第二虚拟机可以通过目标通信通道对对应的共享内存进行读取或写入操作。
步骤S304、调用虚拟机监视器hypervisor向至少一个第二虚拟机发送唤醒中断信号,以使第二虚拟机确定等待参数为等待的待唤醒跨域锁,并确定待唤醒跨域锁的状态参数是否为锁定。
应理解的是,Hypervisor可以实现共享内存的映射以及中断的转发。由于第一虚拟机与第二虚拟机互相隔离,需要采用hypervisor向至少一个第二虚拟机发送唤醒中断信号。
具体地,第二虚拟机接收到中断信号后,可以确定等待参数为等待的待唤醒跨域锁,并确定待唤醒跨域锁的状态参数是否为锁定。若确定目标跨域锁的状态参数为锁定,则第二虚拟机可以执行步骤S309,将待唤醒跨域锁等待参数由未等待更新为等待;若确定目标跨域锁的状态参数为未锁定,则第二虚拟机可以执行步骤S308将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务。
其中,通信任务中包括待执行的读取或写入操作,以及对应的通信数据。
本申请实施例中,通过hypervisor向至少一个第二虚拟机发送唤醒中断信号,可以使第二虚拟机确定存在状态由锁定转变为未锁定的跨域锁,可以唤醒转变为未锁定的跨域锁并执行对应的通信任务。
步骤S305、若确定目标跨域锁的状态参数为锁定,则将目标跨域锁的等待参数由未等待更新为等待,并将通信任务添加入目标跨域锁的任务队列中。
具体地,若确定目标跨域锁的状态参数为锁定,则可以确定存在第二虚拟机证通过目标通信通道对对应的共享内存进行读取或写入操作,可以将目标跨域锁的等待参数由未等待更新为等待,并将通信任务添加入目标跨域锁的任务队列中。
本申请实施例中,若确定目标跨域锁的状态参数为锁定,则将目标跨域锁的等待参数由未等待更新为等待,并将通信任务添加入目标跨域锁的任务队列中,可以避免冲突,保持互斥,并在目标跨域锁未被锁定后,执行目标跨域锁的任务队列中的通信任务。
步骤S306、响应于接收到虚拟机监视器hypervisor发送的唤醒中断信号,确定等待参数为等待的待唤醒跨域锁,并将待唤醒跨域锁等待参数由等待更新为未等待。
步骤S307、确定待唤醒跨域锁的状态参数是否为锁定。
步骤S308、若确定待唤醒跨域锁的状态参数为未锁定,则将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务;
步骤S309、若确定待唤醒跨域锁的状态参数为锁定,则将待唤醒跨域锁等待参数由未等待更新为等待。
具体地,接收到虚拟机监视器hypervisor发送的唤醒中断信号后,确定等待参数为等待的待唤醒跨域锁;将待唤醒跨域锁等待参数由等待更新为未等待并确定待唤醒跨域锁的状态参数是否为锁定;若为未锁定,则执行步骤S308将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务;若为锁定,则执行步骤S309将待唤醒跨域锁等待参数由未等待更新为等待。
本申请实施例中,通过接收到的中断信号,确定存在状态由锁定转变为未锁定的跨域锁,可以唤醒转变为未锁定的跨域锁并执行对应的通信任务。
在一种可选地的实施例中,黑可以设置目标跨域锁的类型;若目标跨域锁的类型为非条件锁,则可以执行步骤S301至S309的跨域通信方法;若目标跨域锁的类型为条件锁,则可以在步骤S305之后,确定目标跨域锁的任务队列中的通信任务未执行的时长是否超过预设等待阈值;若确定通信任务未执行的时长超过预设等待阈值,则对通信任务进行报错处理。
具体地,若目标跨域锁的类型为条件锁,在确定通信任务未执行的时长超过预设等待阈值后,对通信任务进行报错处理。
本申请实施例中,可以将时限要求严格的跨域锁的类型确定为条件锁,并确定对应的预设等待阈值,可以在等待时长超过预设等待阈值后,进行报错处理,避免通信任务长时间等待执行。
图3为本申请实施例提供的一种跨域通信信令图,如图3所示,包括以下步骤:
步骤S401、第一虚拟机确定目标跨域锁的状态参数为未锁定,将目标跨域锁的状态参数由未锁定更新为锁定。
步骤S402、第一虚拟机通过目标通信通道对对应的共享内存进行读取或写入操作。
步骤S403、第二虚拟机确定目标跨域锁的状态参数为锁定。
步骤S404、第二虚拟机将目标跨域锁的等待参数由未等待更新为等待,并将通信任务添加入目标跨域锁的任务队列中。
步骤S405、第一虚拟机读取或写入操作完成,将目标跨域锁的状态参数由锁定更新为未锁定。
步骤S406、第一虚拟机监视器向虚拟机监视器发送唤醒指令,唤醒指令中包括待唤醒的至少第二虚拟机的标识。
步骤S407、虚拟机监视器向第二虚拟机发送唤醒中断信号。
步骤S408、第二虚拟机将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务。
图4为本申请实施例提供的跨域通信装置的结构示意图。本申请实施例提供的跨域通信装置可以执行跨域通信方法实施例提供的处理流程。如图4所示,该跨域通信装置50包括:确定模块501,更新模块502,读写模块503。
具体地,确定模块501,用于确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;目标通信通道预先创建,目标通信通道用于与至少一个第二虚拟机进行通信。
更新模块502,用于若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;目标跨域锁的状态参数存储于共享内存中。
读写模块503,用于通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
本申请实施例提供的装置可以具体用于执行上述实施例所提供的方法实施例,具体功能此处不再赘述。
可选地,更新模块502,还用于:若确定目标跨域锁的状态参数为锁定,则将目标跨域锁的等待参数由未等待更新为等待;将通信任务添加入目标跨域锁的任务队列中;目标跨域锁的等待参数及任务队列存储于第一虚拟机的非共享内存中。
可选地,更新模块502,还用于:响应于读取或写入操作完成,将目标跨域锁的状态参数由锁定更新为未锁定。
可选地,跨域通信装置50还包括:唤醒模块;唤醒模块用于:调用虚拟机监视器hypervisor向至少一个第二虚拟机发送唤醒中断信号,以使第二虚拟机确定等待参数为等待的待唤醒跨域锁,并确定待唤醒跨域锁的状态参数是否为锁定。
可选地,更新模块502,还用于:响应于接收到虚拟机监视器hypervisor发送的唤醒中断信号,确定等待参数为等待的待唤醒跨域锁,并将待唤醒跨域锁等待参数由等待更新为未等待;确定模块501,还用于确定待唤醒跨域锁的状态参数是否为锁定;若确定待唤醒跨域锁的状态参数为未锁定,更新模块502还用于将待唤醒跨域锁的状态参数由未锁定更新为锁定,并读写模块503还用于通过对应的通信通道执行对应的任务队列中的通信任务;若确定待唤醒跨域锁的状态参数为锁定,更新模块502还用于将待唤醒跨域锁等待参数由未等待更新为等待。
可选地,确定模块501,还用于:确定目标跨域锁的任务队列中的通信任务未执行的时长是否超过预设等待阈值;跨域通信装置50还包括:报错模块;报错模块用于:若确定通信任务未执行的时长超过预设等待阈值,则对通信任务进行报错处理。
可选地,跨域通信装置50还包括:创建模块;创建模块用于:发起创建目标通信通道请求,以对目标通道的传输数据区分配物理内存;从至少一个占用参数为未占用的跨域锁中确定目标通信通道对应的目标跨域锁,并将目标跨域锁的占用参数由未占用更新未已占用。
本申请实施例提供的装置可以具体用于执行上述方法实施例,具体功能此处不再赘述。
图5为本申请实施例提供的电子设备的结构示意图,如图5所示,本申请还提供了一种电子设备60,包括:处理器601,以及与处理器601通信连接的存储器602及收发器603。其中,存储器602存储计算机执行指令;收发器603用于收发数据;处理器601执行存储器602存储的计算机执行指令,以实现本申请任意一个实施例提供的方法。
具体地,程序可以包括程序代码,程序代码包括计算机执行指令。存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。其中,计算机执行指令存储在存储器602中,并被配置为由处理器601执行以实现本申请任意一个实施例提供的方法。相关说明可以对应参见附图中的步骤所对应的相关描述和效果进行理解,此处不做过多赘述。
其中,本申请实施例中,存储器602和处理器601通过总线连接。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component Interconnect,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请任意一个实施例提供的方法。
本申请实施例还提供一种计算机程序产品,包括计算机执行指令,计算机执行指令被处理器执行时实现本申请任意一个实施例提供的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程全路径轨迹融合装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种跨域通信方法,其特征在于,应用于第一虚拟机,包括:
确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;所述目标通信通道预先创建,所述目标通信通道用于与至少一个第二虚拟机进行通信;
若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;所述目标跨域锁的状态参数存储于共享内存中;
通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
2.根据权利要求1所述的方法,其特征在于,所述确定共享内存中目标通信通道对应的目标跨域锁的状态参数是否为锁定之后,还包括:
若确定目标跨域锁的状态参数为锁定,则将目标跨域锁的等待参数由未等待更新为等待;
将所述通信任务添加入目标跨域锁的任务队列中;所述目标跨域锁的等待参数及任务队列存储于第一虚拟机的非共享内存中。
3.根据权利要求1所述的方法,其特征在于,所述通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信之后,还包括:
响应于读取或写入操作完成,将目标跨域锁的状态参数由锁定更新为未锁定。
4.根据权利要求3所述的方法,其特征在于,所述响应于读取或写入操作完成之后,还包括:
调用虚拟机监视器hypervisor向至少一个第二虚拟机发送唤醒中断信号,以使第二虚拟机确定等待参数为等待的待唤醒跨域锁,并确定待唤醒跨域锁的状态参数是否为锁定。
5.根据权利要求2所述的方法,其特征在于,所述将目标跨域锁的等待参数由未等待更新为等待之后,包括:
响应于接收到虚拟机监视器hypervisor发送的唤醒中断信号,确定等待参数为等待的待唤醒跨域锁,并将待唤醒跨域锁等待参数由等待更新为未等待;
确定待唤醒跨域锁的状态参数是否为锁定;
若确定待唤醒跨域锁的状态参数为未锁定,则将待唤醒跨域锁的状态参数由未锁定更新为锁定,并通过对应的通信通道执行对应的任务队列中的通信任务;
若确定待唤醒跨域锁的状态参数为锁定,则将待唤醒跨域锁等待参数由未等待更新为等待。
6.根据权利要求2所述的方法,其特征在于,所述目标跨域锁的类型为条件锁,所述将所述通信任务添加入目标跨域锁的任务队列中之后,还包括:
确定目标跨域锁的任务队列中的通信任务未执行的时长是否超过预设等待阈值;
若确定通信任务未执行的时长超过预设等待阈值,则对通信任务进行报错处理。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括预先创建目标通信通道的步骤,所述目标通信通道的步骤包括:
发起创建目标通信通道请求,以对目标通道的传输数据区分配物理内存;
从至少一个占用参数为未占用的跨域锁中确定目标通信通道对应的目标跨域锁,并将目标跨域锁的占用参数由未占用更新未已占用。
8.一种跨域通信装置,其特征在于,包括:
确定模块,用于确定目标通信通道对应的目标跨域锁的状态参数是否为锁定;所述目标通信通道预先创建,所述目标通信通道用于与至少一个第二虚拟机进行通信;
更新模块,用于若确定目标跨域锁的状态参数为未锁定,则将目标跨域锁的状态参数由未锁定更新为锁定;所述目标跨域锁的状态参数存储于共享内存中;
读写模块,用于通过目标通信通道对对应的共享内存进行读取或写入操作,以进行与至少一个第二虚拟机的通信。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器及收发器;
所述存储器存储计算机执行指令;所述收发器用于收发数据;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311288107.6A CN117331712A (zh) | 2023-10-07 | 2023-10-07 | 跨域通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311288107.6A CN117331712A (zh) | 2023-10-07 | 2023-10-07 | 跨域通信方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117331712A true CN117331712A (zh) | 2024-01-02 |
Family
ID=89294819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311288107.6A Pending CN117331712A (zh) | 2023-10-07 | 2023-10-07 | 跨域通信方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331712A (zh) |
-
2023
- 2023-10-07 CN CN202311288107.6A patent/CN117331712A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9619308B2 (en) | Executing a kernel device driver as a user space process | |
CN106941516B (zh) | 基于工业互联网操作系统的异构现场设备控制管理系统 | |
US9122515B2 (en) | Completion notification for a storage device | |
US10198189B2 (en) | Data allocation among devices with different data rates | |
CN104866762B (zh) | 安全管理程序功能 | |
CN107577539B (zh) | 用于内核态和用户态通讯的共享内存结构及其应用 | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
KR20210154769A (ko) | 마이크로 커널에 기반한 확장 가능 하이퍼바이저 | |
CN115086438B (zh) | 任务处理方法、视频处理单元、部件及交通设备 | |
CN104731635A (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制系统 | |
WO2006120225A2 (en) | Dumping data in processing systems to a shared storage | |
CN115904761A (zh) | 片上系统、车辆及视频处理单元虚拟化方法 | |
CN112330229B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
EP4044058A1 (en) | Capability management method and computer device | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
CN117331712A (zh) | 跨域通信方法、装置、设备及存储介质 | |
US11972293B2 (en) | Data structure, memory means and device | |
US20180239627A1 (en) | Dynamic guest controlled halt polling | |
CN113391821A (zh) | 一种非对称多处理器嵌入式操作系统 | |
US10152341B2 (en) | Hyper-threading based host-guest communication | |
WO2020005984A1 (en) | Virtualization under multiple levels of security protections | |
CN117272412B (zh) | 中断控制寄存器保护方法、装置、计算机设备及存储介质 | |
US11216372B2 (en) | Execution manager for binary objects operating across private address spaces | |
WO2020179344A1 (ja) | 車両制御装置 | |
EP3255544B1 (en) | Interrupt controller |
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 |