一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种核间通信处理方法、装置及计算机系统与流程

2022-12-20 00:34:29 来源:中国专利 TAG:


1.本技术涉及计算机系统技术领域,尤其涉及一种核间通信处理方法、装置及计算机系统。


背景技术:

2.在计算机系统中,操作系统内核与物理服务器内核之间的通信,即核间通信,是实现计算机系统内软硬件数据交互的关键。
3.在常规的核间通信方案中,操作系统直接运行于服务服务器的硬件资源之上,操作系统可以直接与服务服务器内核进行数据通信。这种核间通信方式使得物理服务器硬件资源完全暴露,有暴露信息的风险,无法保障硬件资源的安全。


技术实现要素:

4.基于上述技术现状,本技术提出一种核间通信处理方法、装置及计算机系统,能够提高硬件资源在核间通信过程中的安全性。
5.本技术第一方面提供了一种核间通信处理方法,应用于虚拟机监视器,所述虚拟机监视器运行于物理服务器与操作系统之间,所述方法包括:获取目标操作系统发送的核间通信数据;将所述核间通信数据中的通信数据内容写入预设存储器,并触发目标cpu核从所述预设存储器读取通信数据内容;获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;将所述通信反馈数据反馈给所述目标操作系统。
6.本技术第二方面提供了一种核间通信处理方法,应用于cpu核,所述方法包括:响应于虚拟机监视器的触发操作,从预设存储器读取通信数据内容;其中,所述通信数据内容为所述虚拟机监视器在获取到目标操作系统发送的核间通信数据后,向所述预设存储器写入的通信数据内容;生成与所述通信数据内容对应的通信反馈数据;将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据,以使所述虚拟机监视器将所述通信反馈数据反馈至所述目标操作系统。
7.本技术第三方面提供了一种核间通信处理方法,应用于操作系统,所述操作系统基于虚拟机监视器所分配的物理服务器资源而运行,所述方法包括:将核间通信数据发送给所述虚拟机监视器,以使所述虚拟机监视器将所述核间通信数据中的通信数据内容写入预设存储器并触发目标cpu核从所述预设存储器读取通信数据内容,以及,获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;获取所述虚拟机监视器所获取的通信反馈数据。
8.本技术第四方面提供了一种计算机系统,包括:操作系统、虚拟机监视器以及物理服务器;所述虚拟机监视器运行于所述操作系统与所述物理服务器之间,所述虚拟机监视器为所述操作系统分配所述物理服务器的硬件资源,所述操作系统基于所述虚拟监视器分配的物理服务器资源而运行;所述操作系统将核间通信数据发送给所述虚拟机监视器,并
获取所述虚拟机监视器所获取的通信反馈数据;所述虚拟机监视器将所述操作系统发送的核间通信数据中的通信数据内容写入预设存储器,并触发所述物理服务器中的目标cpu核从所述预设存储器读取通信数据内容;获取通信反馈数据并将所述通信反馈数据反馈给所述目标操作系统,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;所述物理服务器中的所述目标cpu核响应于所述虚拟机监视器的触发操作,从预设存储器读取通信数据内容并生成与所述通信数据内容对应的通信反馈数据;将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据。
9.本技术第五方面提供了一种核间通信处理装置,应用于虚拟机监视器,所述虚拟机监视器运行于物理服务器与操作系统之间,所述装置包括:第一数据获取单元,用于获取目标操作系统发送的核间通信数据;第一数据发送单元,用于将所述核间通信数据中的通信数据内容写入预设存储器,并触发目标cpu核从所述预设存储器读取通信数据内容;第二数据获取单元,用于获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;数据反馈单元,用于将所述通信反馈数据反馈给所述目标操作系统。
10.本技术第六方面提供了一种核间通信处理装置,应用于cpu核,所述装置包括:第一数据读取单元,用于响应于虚拟机监视器的触发操作,从预设存储器读取通信数据内容;其中,所述通信数据内容为所述虚拟机监视器在获取到目标操作系统发送的核间通信数据后,向所述预设存储器写入的通信数据内容;数据生成单元,用于生成与所述通信数据内容对应的通信反馈数据;第二数据发送单元,用于将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据,以使所述虚拟机监视器将所述通信反馈数据反馈至所述目标操作系统。
11.本技术第七方面提供了一种核间通信处理装置,应用于操作系统,所述操作系统基于虚拟机监视器所分配的物理服务器资源而运行,所述装置包括:第三数据发送单元,用于将核间通信数据发送给所述虚拟机监视器,以使所述虚拟机监视器将所述核间通信数据中的通信数据内容写入预设存储器并触发目标cpu核从所述预设存储器读取通信数据内容,以及,获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;第三数据获取单元,用于获取所述虚拟机监视器所获取的通信反馈数据。
12.本技术提出的核间通信处理方法,在操作系统与物理服务器之间设置虚拟机监视器,并由虚拟机监视器主导操作系统与物理服务器cpu核之间的通信过程。该核间通信方案能够实现操作系统与硬件层的隔离,操作系统不能获取核间通信相应的硬件资源,因此能够保证硬件资源的安全性。
13.另外,虚拟机监视器的应用可以使得在同一套物理服务器硬件资源的基础上,支持多个操作系统的运行,各个操作系统只需要与虚拟机监视器进行通信,就可以实现与周边多核的通信,因此可以实现多核多操作系统的核间通信。
附图说明
14.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
15.图1为本技术实施例提供的一种计算机系统架构示意图;
16.图2为本技术实施例提供的另一种计算机系统架构示意图;
17.图3为本技术实施例提供的一种核间通信处理方法的流程示意图;
18.图4为本技术实施例提供的核间通信过程示意图;
19.图5为本技术实施例提供的操作系统与虚拟机监视器之间的通信过程示意图;
20.图6为本技术实施例提供的另一种核间通信处理方法的流程示意图;
21.图7为本技术实施例提供的另一种核间通信处理方法的流程示意图;
22.图8为本技术实施例提供的另一种核间通信处理方法的流程示意图;
23.图9为本技术实施例提供的一种核间通信处理装置的结构示意图;
24.图10为本技术实施例提供的另一种核间通信处理装置的结构示意图;
25.图11为本技术实施例提供的另一种核间通信处理装置的结构示意图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.示例性实施环境
28.图1示出了本技术实施例技术方案所适用的应用场景的示意图。参见图1所示,本技术实施例适用于操作系统 物理服务器的硬件实施环境,具体是适用于操作系统内核与物理服务器的cpu核之间进行通信的业务场景。
29.其中,图1中所示的操作系统,可以是任意的基于物理服务器的硬件资源而运行的操作系统,例如可以是虚拟机操作系统、物理机操作系统等。并且,图1中所示的操作系统的实际数量可以是一个或多个。
30.图1中所示的物理服务器中包括用于支持系统运行的各种硬件资源,例如磁盘、内存等,其中可以包括一个或多个cpu核。
31.目前常规的基于图1所示的应用场景的核间通信,多数是多核单操作系统之间的通信,即物理服务器中有多个cpu核,基于该物理服务器搭建一个操作系统,该操作系统内核与物理服务器的多个cpu核之间进行数据通信。
32.但是随着时代的进步,核间通信需求也在不断增加,对于核间通信安全性的要求越来越高,而且多核多操作系统的通信需求也在不断衍生。
33.传统核间通信多是基于非虚拟化环境下,大部分操作系统都没有将软硬件隔离开来,这样的通信方式会有暴露信息的安全隐患。而且,传统的如图1所示的业务场景都是单操作系统直接运行于物理服务器之上,未能实现多操作系统的场景。
34.基于上述现有技术现状和需求,本技术发明人经过研究,提出一种新的计算机系统架构,以及提出基于该架构的新的核间通信处理方案。
35.参见图2所示,本技术实施例提出一种新的计算机系统,该计算机系统在操作系统1和物理服务器3之间,增加了虚拟机监视器(hypervisor)2。
36.hypervisor是一种运行在物理服务器和操作系统之间的中间层软件,它可以允许多个操作系统和应用共享一套基础物理硬件。hypervisor提供虚拟平台来执行其他客体操作系统(guestos),管理其他客体操作系统的执行阶段,这些客体操作系统,共同分享虚拟化后的硬件资源,hypervisor可以访问服务器上所有物理设备包括磁盘和内存,还需要管理内存资源的访问以及分配给各个虚拟化后的客体操作系统,在虚拟化后的客体操作系统之间加以防护。
37.因此,在虚拟化系统中,hypervisor可以直接管理物理设备且支持在hypervisor上运行多个guestos,hypervisor会为每一个guestos提供接口服务,其中包括核间通信服务。
38.基于上述的hypervisor的设置,图2所示的计算机系统中的操作系统1,可以是一个或多个,具体可以是主体操作系统(hostos)或客体操作系统(guestos)。
39.作为一种可选的实施方式,本技术实施例将实时操作系统(real-time operating system,rtos)用作虚拟机监视器hypervisor。实时操作系统(real-time operating system,rtos),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。
40.实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。作为一种更加优选的实施方式,本技术实施例采用微内核架构的实施操作系统rtos,作为虚拟机监视器hypervisor。
41.示例性方法
42.基于图2所示的计算机系统,本技术实施例提出一种基于hypervisor的核间通信处理方法。基于图2所示的计算机系统架构,本技术实施例由hypervisor主导执行核间通信过程,因此,本技术实施例提出的核间通信方法,涉及操作系统、hypervisor以及物理服务器的cpu核之间的通信交互。下面结合图3、图4和图5,对该核间通信处理过程进行具体介绍。
43.参见图3所示,本技术实施例提出一种核间通信处理方法,该方法包括:
44.s101、目标操作系统向预设ram写入核间通信数据,并让出cpu,中断当前正在执行的程序。
45.其中,上述的目标操作系统,是指基于虚拟机监视器hypervisor分配的硬件资源而运行的操作系统,其可以是运行于hypervisor搭建的虚拟平台上的客体操作系统guestos,也可以是主操作系统hostos。在本技术实施例中,参见图4所示,虚拟机监视器hypervisor基于物理服务器的硬件资源,搭建虚拟平台,在该虚拟平台上运行多个客体操作系统guestos。其中,每一个guestos均可以发起核间通信请求,即,任意一个guestos均可以向预设ram写入核间通信数据。为便于区分,将任意的进行核间通信的操作系统作为目标操作系统。
46.上述的预设ram,是虚拟机监视器预先设置的专用于进行数据转移的ram。该ram可以被各个gusetos共享使用,但是hypervisor为该ram设置了gusetos不可读写的权限,即各
个guestos不能实际对该ram进行读写操作,任意guestos对该ram的读写操作均会触发该ram生成读写错误信号,该读写错误信号预先绑定了处理函数,该处理函数用于读取guestos预写入该ram的通信数据。
47.如图4所示,当任一操作系统guestos需要与周边多核中的任意一个cpu核进行核间通信时,先调用与虚拟机监视器hypervisor之间的通信接口,向上述的预设ram写入核间通信数据,同时让出cpu,中断正在执行的程序。如此,可以将核间通信数据发送给虚拟机监视器hypervisor。
48.上述的核间通信数据,具体包括通信源核信息、通信目的核信息和通信数据内容。
49.s102、虚拟机监视器采集到读写错误信号时,读取目标操作系统向预设ram写入的核间通信数据。
50.具体的,参见图5所示,当hypervisor采集到读写错误信号时,错误处理模块通过运行与该读写错误信号绑定的处理函数,读取guestos预写入该ram的通信数据。
51.参见图4和图5所示,上述的步骤s101和s102的处理,表示的是操作系统与虚拟机监视器hypervisor之间的数据通信过程,该过程主要在hypervisor的内存共享模块实现。
52.s103、虚拟机监视器获取并存储目标操作系统的执行程序上下文信息。
53.具体的,在步骤s101中介绍到,当目标操作系统向上述的预设ram写入核间通信数据时,会让出cpu,并中断正在执行的程序。相应的,虚拟机监视器hypervisor获取目标操作系统的程序执行上下文信息,并存储到目标操作系统当前的内核栈中,并将此内核栈保留到hypervisor。
54.s104、虚拟机监视器将核间通信数据中的通信数据内容写入预设ddr中的预设通信地址,以及,将核间通信数据中的通信源核信息写入预设的中断标志位寄存器。
55.参见图4所示,虚拟机监视器的内存共享模块读取到目标操作系统发送的核间通信数据后,调用核间通信模块,执行与目标cpu核的通信过程。
56.参见图4所示,核间通信模块将内存共享模块接收的核间通信数据中的通信数据内容写入预设ddr中的预设通信地址,以及,将核间通信数据中的通信源核信息写入预设的中断标志位寄存器。
57.其中,上述的预设ddr中的预设通信地址,是与目标cpu核对应的ddr中的特定通信地址,用于存储发送给目标cpu核的数据,以及存储由目标cpu核发出的数据。
58.上述的预设的中断标志位寄存器,是在虚拟机监视器hypervisor中设置的用于存储参与核间通信的核信息的寄存器。
59.hypervisor的核间通信模块将核间通信数据中的通信源核信息存储至上述的预设的中断标志位寄存器中,然后根据通信目的核信息,确定本次核间通信的目的cpu核,然后将核间通信数据中的通信数据内容存储至与该目的cpu核对应的ddr中的预设通信地址。
60.s105、虚拟机监视器向目标cpu核发送中断指令。
61.具体的,hypervisor的核间通信模块向gic发送中断指令,以使gic将中断指令传送至目标cpu核。该中断指令用于触发目标cpu核从中断标志位寄存器读取通信源核信息以及从预设ddr读取通信数据内容。
62.在本技术实施例技术方案中预先设定,hypervisor向目标cpu核发送中断指令时,目标cpu核从中断标志位寄存器中读取通信源核信息以及从与其对应的ddr中读取核间通
信数据内容。则,上述的hypervisor向目标cpu核发送中断指令的操作,可以达到触发目标cpu核从中断标志位寄存器中读取通信源核信息,以及从预设ddr中读取通信数据内容的目的。
63.s106、目标cpu核响应于虚拟机监视器发送的中断指令,从所述预设的中断标志位寄存器读取通信源核信息,以及从所述预设ddr读取通信数据内容。
64.具体的,目标cpu核接收到hypervisor发送的中断指令后,响应该中断指令,从预设的中断标志位寄存器中读取通信源核信息,然后从与该目标cpu核对应的上述预设ddr中读取核间通信数据内容。
65.其中,目标cpu核读取通信源核信息,是为了明确核间通信数据内容的来源,以便于确定是否响应以及如何响应该核间通信,而目标cpu核读取通信数据内容,则可以使目标cpu核
66.s107、目标cpu核清除中断。
67.具体的,目标cpu核读取到通信数据内容后,清除中断,此时hypervisor会检测到目标cpu核清除了中断,从而确定目标cpu核已经接收到核间通信的通信数据内容。
68.至此,实现了通信数据由hypervisor向目标cpu核的传输。
69.s108、目标cpu核生成与所述通信数据内容对应的通信反馈数据。
70.s109、目标cpu核将所述通信反馈数据写入所述预设ddr。
71.具体的,目标cpu核从与其对应的ddr读取到通信数据内容后,响应该通信数据内容,生成与该通信数据内容对应的通信反馈数据。然后,目标cpu核再将生成的通信反馈数据写入与其对应的预设ddr。
72.s110、目标cpu核向所述虚拟机监视器发送中断指令。
73.s111、虚拟机监视器响应于所述目标cpu核发送的中断指令,从预设的中断标志位寄存器中读取通信目的核信息。
74.s112、虚拟机监视器从与读取的通信目的核信息对应的ddr中读取通信反馈数据,并清除中断。
75.具体的,目标cpu核将通信反馈数据写入与其对应的ddr后,向虚拟机监视器发送中断指令。
76.在本技术实施例技术方案中预先设定,目标cpu核向hypervisor发送中断指令时,hypervisor从中断标志位寄存器中读取通信目的核信息,以及,从与读取到的目的cpu核对应的ddr中读取数据内容。
77.则,当hypervisor接收到目标cpu核发送的中断指令后,从中断标志位寄存器中读取通信目的核信息,即可取得到该目标cpu核的信息,然后从与该目标cpu核对应的ddr中读取数据内容,即可读取得到该目标cpu核写入的通信反馈数据。
78.上述的处理机制,可以使得当多个guestos同时与周边多核进行核间通信时,hypervisor能够有序、准确地从正确的ddr中读取到相应的核间通信数据。
79.hypervisor从与目标cpu核对应的ddr中读取到通信反馈数据后,清除中断,此时即完成了通信反馈数据从目标cpu核向hypervisor的发送过程。
80.s113、虚拟机监视器将所述通信反馈数据写入所述预设ram,并触发目标操作系统从所述预设ram读取所述通信反馈数据。
81.s114、目标操作系统读取虚拟机监视器存储的执行程序上下文信息,并基于所述执行程序上下文信息恢复执行程序。
82.具体的,目标操作系统从内核栈中读取hypervisor在执行步骤s103时存储的目标操作系统的执行程序上下文信息,并基于读取的上下文信息恢复执行程序。
83.s115、目标操作系统从所述预设ram读取通信反馈数据。
84.具体的,参见图4和图5所示,hypervisor的核间通信模块完成与目标cpu核的通信后,将获取的通信反馈数据发送给内存共享模块,内存共享模块仍以共享内存的方式,将获取的通信反馈数据反馈给目标操作系统。具体是,内存共享模块将获取的通信反馈数据写入上述的预设ram,并触发目标操作系统从该ram读取数据。
85.目标操作系统确定hypervisor向该ram写入数据时,从该ram读取该数据,即实现了通信反馈数据从hypervisor向目标操作系统的传输过程。
86.至此,完成了目标操作系统与目标cpu核的核间通信过程。
87.通过上述介绍可见,本技术实施例提出的核间通信处理方法,在操作系统与物理服务器之间设置虚拟机监视器,并由虚拟机监视器主导操作系统与物理服务器cpu核之间的通信过程。该核间通信方案能够实现操作系统与硬件层的隔离,操作系统不能获取核间通信相应的硬件资源,因此能够保证硬件资源的安全性。
88.另外,虚拟机监视器的应用可以使得在同一套物理服务器硬件资源的基础上,支持多个操作系统的运行,各个操作系统只需要与虚拟机监视器进行通信,就可以实现与周边多核的通信,因此可以实现多核多操作系统的核间通信。
89.基于图3所示的核间通信处理方法,本技术实施例提出一种应用于图2中所示的虚拟机监视器的核间通信处理方法,参见图6所示,该方法包括:
90.s201、获取目标操作系统发送的核间通信数据;
91.s202、将所述核间通信数据中的通信数据内容写入预设存储器,并触发目标cpu核从所述预设存储器读取通信数据内容;
92.s203、获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;
93.s204、将所述通信反馈数据反馈给所述目标操作系统。
94.同时,本技术实施例还提出一种应用于图2中所示的物理服务器的cpu核的核间通信处理方法,参见图7所示,该方法包括:
95.s301、响应于虚拟机监视器的触发操作,从预设存储器读取通信数据内容;其中,所述通信数据内容为所述虚拟机监视器在获取到目标操作系统发送的核间通信数据后,向所述预设存储器写入的通信数据内容;
96.s302、生成与所述通信数据内容对应的通信反馈数据;
97.s303、将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据,以使所述虚拟机监视器将所述通信反馈数据反馈至所述目标操作系统。
98.以及,本技术实施例还提出一种应用于图2中所示的操作系统的核间通信处理方法,参见图8所示,该方法包括:
99.s401、将核间通信数据发送给所述虚拟机监视器,以使所述虚拟机监视器将所述
核间通信数据中的通信数据内容写入预设存储器并触发目标cpu核从所述预设存储器读取通信数据内容,以及,获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;
100.s402、获取所述虚拟机监视器所获取的通信反馈数据。
101.具体的,上述的应用于虚拟机监视器、cpu核以及操作系统的核间通信处理方法中的各个步骤的具体处理内容,可参见图3所示的核间通信处理方法的相应处理步骤的介绍,此处不再重复。
102.示例性装置
103.相应的,本技术实施例还提供了一种核间通信处理装置,应用于虚拟机监视器,所述虚拟机监视器运行于物理服务器与操作系统之间,参见图9所示,所述装置包括:
104.第一数据获取单元001,用于获取目标操作系统发送的核间通信数据;
105.第一数据发送单元002,用于将所述核间通信数据中的通信数据内容写入预设存储器,并触发目标cpu核从所述预设存储器读取通信数据内容;
106.第二数据获取单元003,用于获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;
107.数据反馈单元004,用于将所述通信反馈数据反馈给所述目标操作系统。
108.作为一种可选的实施方式,所述获取目标操作系统发送的核间通信数据,包括:
109.当采集到读写错误信号时,读取目标操作系统向预设ram写入的核间通信数据;
110.其中,所述预设ram为所述目标操作系统不可读写的ram,当所述目标操作系统向所述预设ram写入所述核间通信数据时,所述预设ram触发生成所述读写错误信号。
111.作为一种可选的实施方式,当采集到读写错误信号时,第一数据获取单元001还用于:
112.获取并存储所述目标操作系统的执行程序上下文信息,以使所述目标操作系统根据所述执行程序上下文信息恢复执行程序。
113.作为一种可选的实施方式,所述将所述通信反馈数据反馈给所述目标操作系统,包括:
114.将所述通信反馈数据写入所述预设ram;
115.触发所述目标操作系统从所述预设ram读取所述通信反馈数据。
116.作为一种可选的实施方式,所述核间通信数据包括通信源核信息、通信目的核信息以及通信数据内容;
117.将所述核间通信数据中的通信数据内容写入预设存储器,并触发目标cpu核从所述预设存储器读取通信数据内容,包括:
118.将所述核间通信数据中的通信数据内容写入预设ddr中的预设通信地址,以及,将所述核间通信数据中的通信源核信息写入预设的中断标志位寄存器;其中,所述预设ddr中的预设通信地址是与所述目标cpu核绑定的ddr中的设定通信地址;
119.触发目标cpu核从所述中断标志位寄存器读取通信源核信息以及从所述预设ddr读取通信数据内容。
120.作为一种可选的实施方式,触发目标cpu核从所述中断标志位寄存器读取通信源核信息以及从所述预设ddr读取通信数据内容,包括:
121.向目标cpu核发送中断指令,以使所述目标cpu核响应该中断指令并从所述中断标志位寄存器读取通信源核信息以及从所述预设ddr读取通信数据内容。
122.作为一种可选的实施方式,所述获取通信反馈数据,包括:
123.响应于所述目标cpu核发送的中断指令,从预设的中断标志位寄存器中读取通信目的核信息;
124.从与读取的通信目的核信息对应的ddr中读取通信反馈数据,并清除中断;其中,与读取的通信目的核信息对应的ddr中的通信反馈数据,是与读取的通信目的核信息对应的cpu核在获取到所述核间通信数据中的通信数据内容后生成并写入的、与所述核间通信数据中的通信数据内容相应的反馈数据。
125.本技术实施例还提出另一种核间通信处理装置,应用于cpu核,所述cpu核在虚拟机监视器的控制下被所述虚拟机监视器所管理的操作系统调用,参见图10所示,所述装置包括:
126.第一数据读取单元011,用于响应于虚拟机监视器的触发操作,从预设存储器读取通信数据内容;其中,所述通信数据内容为所述虚拟机监视器在获取到目标操作系统发送的核间通信数据后,向所述预设存储器写入的通信数据内容;
127.数据生成单元012,用于生成与所述通信数据内容对应的通信反馈数据;
128.第二数据发送单元013,用于将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据,以使所述虚拟机监视器将所述通信反馈数据反馈至所述目标操作系统。
129.作为一种可选的实施方式,所述核间通信数据包括通信源核信息、通信目的核信息以及通信数据内容;所述虚拟机监视器在触发所述cpu核从预设存储器读取通信数据内容之前,将所述核间通信数据中的通信数据内容写入预设ddr中的预设通信地址,以及,将所述核间通信数据中的通信源核信息和通信目的核信息写入预设的中断标志位寄存器;其中,所述预设ddr中的预设通信地址是与所述目标cpu核绑定的ddr中的设定通信地址;
130.所述响应于虚拟机监视器的触发操作,从预设存储器读取通信数据内容,包括:
131.响应于虚拟机监视器发送的中断指令,从所述预设的中断标志位寄存器读取通信源核信息以及从所述预设ddr读取通信数据内容;
132.清除中断。
133.作为一种可选的实施方式,所述将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器获取所述通信反馈数据,包括:
134.将所述通信反馈数据写入所述预设ddr;
135.向所述虚拟机监视器发送中断指令,以使所述虚拟机监视器响应所述中断指令并从所述预设ddr读取所述通信反馈数据。
136.本技术实施例还提出另一种核间通信处理装置,应用于操作系统,所述操作系统基于虚拟机监视器所分配的物理服务器资源而运行,参见图11所示,所述装置包括:
137.第三数据发送单元021,用于将核间通信数据发送给所述虚拟机监视器,以使所述虚拟机监视器将所述核间通信数据中的通信数据内容写入预设存储器并触发目标cpu核从所述预设存储器读取通信数据内容,以及,获取通信反馈数据,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;
138.第三数据获取单元022,用于获取所述虚拟机监视器所获取的通信反馈数据。
139.作为一种可选的实施方式,所述将核间通信数据发送给所述虚拟机监视器,包括:
140.向预设ram写入核间通信数据,并让出cpu,中断当前正在执行的程序;其中,所述预设ram为所述操作系统不可读写的ram。
141.作为一种可选的实施方式,所述操作系统将核间通信数据发送给所述虚拟机监视器之后,所述虚拟机监视器还获取并存储所述操作系统的执行程序上下文信息;
142.在获取所述虚拟机监视器所获取的通信反馈数据之前,所述第三数据获取单元022还用于:
143.读取所述虚拟机监视器存储的所述执行程序上下文信息,并基于所述执行程序上下文信息恢复执行程序。
144.作为一种可选的实施方式,所述虚拟机监视器获取通信反馈数据后,将所述通信反馈数据写入预设ram,所述预设ram为所述操作系统不可读写的ram;
145.所述获取所述虚拟机监视器所获取的通信反馈数据,包括:
146.从所述预设ram读取通信反馈数据。
147.本实施例提供的各个核间通信处理装置,与本技术上述实施例所提供的核间通信处理方法属于同一申请构思,可执行本技术上述任意实施例所提供的核间通信处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术上述实施例提供的核间通信处理方法的具体处理内容,此处不再加以赘述。
148.示例性系统
149.本技术实施例还提供了一种计算机系统,参见图2所示,该系统由操作系统1、虚拟机监视器2和物理服务器3构成。
150.其中,所述虚拟机监视器2运行于所述操作系统1与所述物理服务器3之间,所述虚拟机监视器2为所述操作系统1分配所述物理服务器3的硬件资源,所述操作系统1基于所述虚拟监视器2分配的物理服务器资源而运行;
151.所述操作系统1将核间通信数据发送给所述虚拟机监视器2,并获取所述虚拟机监视器2所获取的通信反馈数据;
152.所述虚拟机监视2器将所述操作系统1发送的核间通信数据中的通信数据内容写入预设存储器,并触发所述物理服务器3中的目标cpu核从所述预设存储器读取通信数据内容;获取通信反馈数据并将所述通信反馈数据反馈给所述目标操作系统,其中,所述通信反馈数据是由所述目标cpu核发出的与所述通信数据内容对应的反馈数据;
153.所述物理服务器3中的所述目标cpu核响应于所述虚拟机监视器2的触发操作,从预设存储器读取通信数据内容并生成与所述通信数据内容对应的通信反馈数据;将所述通信反馈数据写入所述预设存储器,并触发所述虚拟机监视器2获取所述通信反馈数据。
154.作为一种可选的实施方式,所述操作系统1包括至少一个客体操作系统guestos,所述虚拟机监视器2为每一客体操作系统guestos分别提供服务接口,并为每个客体操作系统guestos分别分配不同的物理服务器硬件资源;
155.所述物理服务器3包括多个cpu核。
156.具体的,hypervisor提供虚拟平台来执行其他客体操作系统(guestos),管理其他客体操作系统的执行阶段,这些客体操作系统,共同分享虚拟化后的硬件资源,hypervisor
可以访问服务器上所有物理设备包括磁盘和内存,还需要管理内存资源的访问以及分配给各个虚拟化后的客体操作系统,在虚拟化后的客体操作系统之间加以防护。
157.因此,在虚拟化系统中,hypervisor可以直接管理物理设备且支持在hypervisor上运行多个guestos,hypervisor会为每一个guestos提供接口服务,其中包括核间通信服务。guestos可以是宏内核操作系统也可以是微内核操作系统。
158.作为一种可选的实施方式,本技术实施例将实时操作系统(real-time operating system,rtos)用作虚拟机监视器hypervisor。实时操作系统(real-time operating system,rtos),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。
159.实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。对于系统关键性功能,这种特性保证了核间通信的任务的及时执行。作为一种更加优选的实施方式,本技术实施例采用微内核架构的实施操作系统rtos,作为虚拟机监视器hypervisor。
160.本技术实施例将微内核的rtos作为hypervisor,hypervisor将guestos在物理上分离到不同的分区中,并且预先设置guestos的优先级,确保核间通信功能在系统上处于较高优先级,再根据guestos的优先级设置,由hypervisor管理各guestos所需的核间通信。
161.当多个guestos需要核间通信服务时,hypervisor直接接管核间通信所需的硬件资源。hypervisor为每个guestos分配相应的内存页地址空间,单个guestos的任务线程连接为其分配的地址空间,且只能访问和管理该地址空间。此机制确保了guestos之间的隔离,也保障了核间通信模块硬件资源的安全性。当单个guestos应用程序出现故障时,只会影响分配给他的内存,不会影响其他guestos或者hypervisor的内存池,保证了多guestos情况下,单个guestos核间通信的安全以及稳定性。
162.基于上述的系统架构设计,该计算机系统中的操作系统与物理服务器的核间通信过程,可参见上述的核间通信处理方法实施例的介绍,此处不再重复。
163.本技术实施例提出的计算机系统,将核间通信功能放在hypervisor层。多个操作系统进行核间通信所需要的硬件资源都是统一的,因此在hypervisor层也能实现硬件资源优化,guestos只需要通过与hypervisor层通信就可以实现核间通信,而且由于微内核的特性,核间通信优化的时候并不需要去更改整个操作系统,只需要将新旧模块替换即可,由此实现了兼容多操作系统。
164.而且,本技术实施例提出的计算机系统的核间通信由hypervisor层来完成,在整个通信过程中,guestos都不能获取核间通信相应的硬件资源,包括物理共享内存以及硬件中断。
165.在hypervisor层为guestos分配地址空间以及硬件中断的时候,不给予客体操作系统分配核间通信相关的硬件信息权限,客体操作系统无法直接获取硬件层的资源,这不仅实现了guestos与硬件层的隔离,保障了硬件信息的安全,提高了整个核间通信过程的安全性,还可以减轻软件对硬件设备以及驱动的依赖性。
166.另外,在传统的核间通信方案中,当需要核间通信的操作系统是宏内核时,操作系统其他内核驱动可以直接关闭整个系统中断,在通信过程中就存在中断不定时关闭或中断嵌套造成通信不同步或中断丢失的问题。而本技术实施例所提出的计算机系统由基于微内
核的rost作为虚拟机监视器,并由虚拟机监视器执行核间通信过程。在微内核中,对于硬件中断的处理是可控的,优先级可进行调整,因此在核间通信中断进来时,即使有其他低优先级中断处理程序正在运行,但是允许中断嵌套的情况下,是可以先进行高优先级中断处理的,等高优先级处理完后在进行低优先级中断处理,这样提高了基于微内核上的核间通信的实时性。
167.本实施例提供的计算机系统,与本技术上述实施例所提供的核间通信处理方法属于同一申请构思,该计算机系统可执行本技术上述任意实施例所提供的核间通信处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术上述实施例提供的核间通信处理方法的具体处理内容,此处不再加以赘述。
168.示例性计算机程序产品和存储介质
169.除了上述方法和设备以外,本技术的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的核间通信处理方法中的步骤。
170.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本技术实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c 等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
171.此外,本技术的实施例还可以是存储介质,其上存储有计算机程序,计算机程序被处理器执行本说明书上述“示例性方法”部分中描述的核间通信处理方法中的步骤。
172.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
173.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
174.本技术各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
175.本技术各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
176.本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
177.作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
178.另外,在本技术各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
179.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
180.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
181.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
182.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献