一种众核间通信方法及系统技术方案

技术编号:10576709 阅读:127 留言:0更新日期:2014-10-29 10:39
本发明专利技术适用于技术领域,提供了一种众核间通信方法,所述方法包括:服务管理进程向微内核操作系统申请共享内存,将微内核操作系统分配的共享内存映射到自己的虚拟地址空间;接收并记录注册的系统服务进程的服务标识和与服务标识对应的第二共享内存地址;根据系统服务请求所携带的服务标识,查找系统服务请求所携带服务标识对应的第二共享内存地址;将系统服务请求所携带服务标识、第一共享内存地址以及所述服务标识对应的第二共享内存地址发送所述用户进程。通过本发明专利技术可以解决现有技术存在的,在微内核的众核架构下,用户进程和系统服务进程通信需要多次上下文切换的问题。

【技术实现步骤摘要】
【专利摘要】本专利技术适用于
,提供了一种众核间通信方法,所述方法包括:服务管理进程向微内核操作系统申请共享内存,将微内核操作系统分配的共享内存映射到自己的虚拟地址空间;接收并记录注册的系统服务进程的服务标识和与服务标识对应的第二共享内存地址;根据系统服务请求所携带的服务标识,查找系统服务请求所携带服务标识对应的第二共享内存地址;将系统服务请求所携带服务标识、第一共享内存地址以及所述服务标识对应的第二共享内存地址发送所述用户进程。通过本专利技术可以解决现有技术存在的,在微内核的众核架构下,用户进程和系统服务进程通信需要多次上下文切换的问题。【专利说明】-种众核间通信方法及系统
本专利技术属于计算机硬件
,尤其涉及一种众核间通信方法及系统。
技术介绍
微内核操作系统(英文:Microkernel Operating System)结构,是20世纪80年代 后期发展起来的,由于有效地支持多处理机运行,非常适用于分布式系统环境。微内核是一 种能够提供必要服务的操作系统内核,其中必要的服务包括任务、线程、进程间通信(英文: Inter Process Communication,简称:IPC)以及内存管理等。微内核的所有服务(包括设 备驱动)在用户态下运行,而处理服务与处理其它程序一样,并且每个服务都在自己的地址 空间中运行,服务彼此之间受到了保护。 图1是现有技术提供的微内核操作系统基于客户/服务器模型示意图,在图1中, 用户进程和系统服务都与微内核连接,用户需要请求系统服务时,首先用户通过用户进程 向所述微内核发送系统服务的请求信息,微内核响应接收到的请求信息,调度所请求信息 对应的系统服务进程,系统服务处理完用户请求后,会发送消息给内核,最后内核响应接收 到的消息,调度之前需要请求系统服务的用户进程。 在众核架构下,多个微内核实例同时存在,每个中央处理器(英文:Central Processing Unit,简称:CPU)运行一个独立的微内核实例,并且用户态的各个进程可以随 意放置在各个微内核实例上运行。因此用户进程和系统服务进程可能不在同一个微内核上 运行,此时两者之间的信息交换需要采用IPC核间通信机制。 图2是现有技术提供的众核架构用户进程与系统服务进程通信交互的一示意图, 如图2所示,IPC核间通信需要在每个微内核上运行一个代理服务监控(英文 :Monit〇r), Monitor负责管理微内核数据结构,以及协调核内和核间通信,并且系统启动完成后,系统 中所有Monitor构成全连接,两两相连。同时Monitor采用一个数组维护本微内核上的服 务列表,并且提供了每个服务在系统中全局唯一标识。 用户进程请求服务时,首先会发送消息给微内核,微内核调度Monitor运行, Monitor会根据消息内容来判断用户所请求系统服务是否在同一微内核上,若否,则根据图 2所示处理,即本地Monitor会发送消息给所请求系统服务所在的微内核上的Monitor,此 过程的消息通信是采用IPC核间通信机制,然后远程Monitor发送消息给所述远程Monitor 所在的微内核,微内核调度目标服务进程;目标服务处理完消息后,发送消息给微内核,然 后微内核调度Monitor,Monitor通过IPC核间通信将消息发送给所需要系统服务的微内核 上的Monitor, Monitor再发送消息给微内核,最后微内核调度用户进程,从而完成一次用 户进程和服务进程不在同一个微内核上的请求和响应的调度过程。 从图1和图2可以看出,当用户进程和系统服务进程都在同一微内核上时,至少需 要四次上下文切换,即四次消息交换过程。 图3是现有技术提供的众核架构用户进程与系统服务进程通信交互的另一示 意图,图3示出了当用户进程与系统服务进程不在同一微内核上时,至少需要八次上下 文切换和两次IPC核间通信,如果系统服务进程不能处理用户进程请求而需要调用其他 服务时,则需要更多次数的上下文切换和核间通信,而早期的宏内核(英文:M〇n〇lithic Kernel,简称:Mono Kernel)操作系统中,仅需要两次上下文切换。 因此现有技术存在的问题是,在微内核的众核架构下,用户进程和系统服务进程 通信需要多次上下文切换,微内核操作系统效率很低。
技术实现思路
本专利技术实施例提供一种众核间通信方法,以解决现有技术在微内核的众核架构 下,用户进程和服务进程通信需要多次上下文切换,微内核操作系统效率很低的问题。 第一方面,所述众核间通信方法包括: 服务管理Service Manager进程向微内核操作系统申请共享内存,将所述微内核 操作系统分配的第一共享内存映射到所述Service Manager进程的虚拟地址空间;Service Manager进程接收系统服务进程的注册消息,记录所述注册消息所携带的所述系统服务进 程的服务标识和所述服务标识对应的第二共享内存地址;Service Manager进程向所述系 统服务进程发送所述注册消息的响应消息,所述响应消息携带第一共享内存地址;Service Manager进程接收用户进程的系统服务请求,根据所述系统服务请求所携带的服务标识,查 找到所述服务标识对应的第二共享内存地址;Service Manager进程将所述服务标识、所述 第一共享内存地址以及所述服务标识对应的第二共享内存地址发送给所述用户进程,以使 得所述用户进程把所述第一共享内存地址对应的第一共享内存和所述第二共享内存地址 对应的第二共享内存映射到用户进程的虚拟地址空间。 在第一方面的第一种可能的实现方式中,在所述Service Manager进程接收系统 服务进程的注册消息之前还包括: Service Manager进程通过本地代理服务监控Monitor向所有远程Monitor发送 Service Manager进程的启动消息,所述启动消息携带第一共享内存地址,以使得所述所有 远程Monitor将所述第一共享内存地址对应的第一共享内存映射到所述所有远程Monitor 的虚拟地址空间,建立Service Manager进程和所述所有远程Monitor的连接; 所述所有远程Monitor包括用户进程的Monitor和系统服务进程的Monitor ; 所述Service Manager进程接收系统服务进程的注册消息,包括: 所述Service Manager进程通过系统服务进程的Monitor接收系统服务进程的注 册消息; 所述Service Manager进程向所述系统服务进程发送所述注册消息的响应消息, 包括: 所述Service Manager进程通过系统服务进程的Monitor向所述系统服务进程发 送所述注册消息的响应消息; 所述Service Manager进程接收用户进程的系统服务请求,包括: 所述Service Manager进程通过用户进程的Monitor接收用户进程的系统服务请 求; 所述Service Manager进程将所述服务标识、所述第一共享内存地址以及所述服 务标识对应的第二共享内存地址发送给所述用户本文档来自技高网
...
一种众核间通信方法及系统

【技术保护点】
一种众核间通信方法,其特征在于,所述方法包括:服务管理Service Manager进程向微内核操作系统申请共享内存,将所述微内核操作系统分配的第一共享内存映射到所述Service Manager进程的虚拟地址空间;Service Manager进程接收系统服务进程的注册消息,记录所述注册消息所携带的所述系统服务进程的服务标识和所述服务标识对应的第二共享内存地址;Service Manager进程向所述系统服务进程发送所述注册消息的响应消息,所述响应消息携带第一共享内存地址;Service Manager进程接收用户进程的系统服务请求,根据所述系统服务请求所携带的服务标识,查找到所述服务标识对应的第二共享内存地址;Service Manager进程将所述服务标识、所述第一共享内存地址以及所述服务标识对应的第二共享内存地址发送给所述用户进程,以使得所述用户进程把所述第一共享内存地址对应的第一共享内存和所述第二共享内存地址对应的第二共享内存映射到用户进程的虚拟地址空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴小科
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1