【技术实现步骤摘要】
进程间通信的方法、装置以及计算机设备
本申请涉及计算机技术,尤其涉及一种进程间通信的方法、装置以及计算机设备等。
技术介绍
基于微内核的操作系统架构(简称微内核架构)被广泛使用在云平台、嵌入式设备、移动设备、无人驾驶等场景中。微内核架构将自己真正的核心功能减少到非常少,将传统的操作系统内核(例如宏内核架构Linux)中的众多的组件,比如文件系统和网络协议栈等都放在用户态的进程中运行。相比传统的操作系统内核,微内核架构能够保证任何承担复杂功能的模块都可以被放在用户态的进程中,并能够使不同的进程隔离运行。这种方式能够极大增强操作系统的隔离性和可靠性。比如,文件系统在微内核架构中仅仅是一个应用程序,当一个恶意的应用程序攻击了一个文件系统后,只有这个文件系统能够访问的文件可能被恶意应用程序访问到,而其它的文件系统以及其它的系统组件(比如内存管理组件)仍然是处于被保护的状态。此外,如果是某个文件系统触发了内部的漏洞导致文件系统崩溃,也只会影响到这个文件系统本身,而不会影响到整个操作系统的正确性。并且管理员可以很容易地重新启动一个文件系统来继续提供服务。这也提供了相比传统的操作系统内核更加好的可靠性。然而,微内核架构也带来了巨大的性能损失。微内核架构下,一个应用程序获取系统服务的时候,需要通过进程间通信(Inter-ProcessCommunication,IPC)的方式。例如:如图1所示,在宏内核架构中,作为被调用者(callee)的文件系统部署在内核态,当一个调用者(caller)即数据库应用程序需要与文件系 ...
【技术保护点】
1.一种进程间通信的方法,其特征在于,所述方法应用于计算机设备,所述计算机设备包括硬件层以及运行在所述硬件层上的操作系统,所述操作系统上运行有待通信的调用者和被调用者,所述计算机设备还包括通信引擎;所述方法包括:/n所述调用者调用第一指令,所述第一指令由所述通信引擎执行以实现从所述调用者的上下文到所述被调用者的上下文的切换;或者/n所述被调用者调用第二指令,所述第二指令由所述通信引擎执行以实现从所述被调用者的上下文到所述调用者的上下文的切换。/n
【技术特征摘要】
20190603 CN 20191047812581.一种进程间通信的方法,其特征在于,所述方法应用于计算机设备,所述计算机设备包括硬件层以及运行在所述硬件层上的操作系统,所述操作系统上运行有待通信的调用者和被调用者,所述计算机设备还包括通信引擎;所述方法包括:
所述调用者调用第一指令,所述第一指令由所述通信引擎执行以实现从所述调用者的上下文到所述被调用者的上下文的切换;或者
所述被调用者调用第二指令,所述第二指令由所述通信引擎执行以实现从所述被调用者的上下文到所述调用者的上下文的切换。
2.根据权利要求1所述的方法,其特征在于,所述通信引擎执行所述第一指令实现上下文切换的过程包括:
根据所述第一指令中的被调用者标识确定所述被调用者的上下文;
保存所述调用者的上下文;
切换到所述被调用者的上下文。
3.根据权利要求2所述的方法,其特征在于,所述通信引擎在执行所述第一指令时还包括:
获取所述调用者的能力信息,所述能力信息用于指示所述调用者是否有权限调用所述被调用者;
当根据所述能力信息确定所述调用者有权限调用所述被调用者时,执行所述上下文切换的过程。
4.根据权利要求1-3任意一项所述的方法,其特征在于,在所述调用者调用第一指令之前,所述方法还包括:保存所述调用者的上下文,所述上下文为所述调用者的部分上下文。
5.根据权利要求2-4任意一项所述的方法,其特征在于,所述通信引擎执行所述第二指令实现上下文切换的过程包括:
读取保存的所述调用者的上下文,并切换到所述调用者的上下文。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述方法还包括:
所述调用者申请内存区域,并将所述内存区域的地址设置在所述通信引擎包含的寄存器中;
所述调用者将待传输给所述被调用者的数据存储在所述内存区域中,所述被调用者用于通过所述寄存器中存储的地址来访问所述内存区域以获得所述数据。
7.一种实现进程间通信的方法,其特征在于,所述方法包括:
接收调用者发送的第一指令,所述第一指令中包含被调用者的标识;
根据所述被调用者标识在第一寄存器指示的服务集合中确定所述被调用者的上下文,所述第一寄存器用于存储所述服务集合的内存地址,所述服务集合包括一个或多个被调用者的上下文信息;
将所述调用者的上下文保存在第二寄存器指示的返回信息集合中,所述第二寄存器用于存储所述返回信息集合的内存地址,所述返回信息集合包括一个或多个调用者的上下文信息;
切换到所述被调用者的上下文。
8.根据权利要求7所述的方法,其特征在于,在所述根据所述被调用者标识在第一寄存器指示的服务集合中确定所述被调用者的上下文之前,所述方法还包括:
根据第三寄存器指示的能力信息确定所述调用者有权限调用所述被调用者,所述第三寄存器用于存储所述能力信息的地址,所述能力信息用于指示所述调用者是否有权限调用所述被调用者。
9.根据权利要求7或8所述的方法,其特征在于,还包括:
将以下信息中的任意一项或两项预取到缓存中:所述服务集合中包括的一个或多个被调用者的上下文信息、或所述能力信息。
10.根据权利要求7-9任意一项所述的方法,其特征在于,采用异步的方式执行以下步骤:将所述调用者的上下文保存在第二寄存器指示的返回信息集合中。
11.根据权利要求7-10任意一项所述的方法,其特征在于,所述被调用者的上下文的确定步骤或所述调用者的上下文的保存步骤采用被标记的转换检测缓冲区TLB实现。
12.根据权利要求7-11任意一项所述的方法,其特征在于,所述方法还包括:
将第四寄存器指示的内存区域的访问权限赋予所述被调用者,其中,所述第四寄存器用于存储所述内存区域的地址信息,所述内存区域是所述调用者申请的,所述内存区域用于存储所述调用者待传输给所述被调用者的数据。
13.根据权利要求7-11任意一项所述的方法,其特征在于,所述方法还包括:
将第四寄存器和第五寄存器指示的第二内存区域的访问权限赋予所述被调用者,其中所述第四寄存器用于存储第一内存区域的地址信息,所述第五寄存器则存储有用于缩小所述第一内存区域的信息,所述第二内存区域为缩小后的第一内存区域。
14.根据权利要求7-13任意一项所述的方法,其特征在于,所述方法还包括:
接收所述被调用者发送的第二指令,所述第二指令用于指示返回所述调用者的上下文;
从所述第二寄存器指示的所述返回信息集合中获取所述调用者的上下文;
切换到所述调用者的上下文。
15.根据权利要求7-14任意一项所述的方法,其特征在于,保存的所述调用者的上下文为选择的所述调用者的部分上下文。
16.一种内存管理方法,...
【专利技术属性】
技术研发人员:杜东,陈海波,夏虞斌,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。