Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM OF COMMUNICATION AMONG MULTIPLE CORES
Document Type and Number:
WIPO Patent Application WO/2014/173119
Kind Code:
A1
Abstract:
The present invention is applicable to technical fields and provides a method of communication among multiple cores. The method comprises: a service management process applying for shared memory from a microkernel operation system, and mapping shared memory allocated by the microkernel operation system to a virtual address space of the service management process; receiving and recording a service identifier of a registered system service process and a second shared memory address corresponding to the service identifier; according to the service identifier carried in a system service request, searching for the second shared memory address corresponding to the service identifier carried in the system service request; and sending, to the user process, the service identifier carried in the system service request, a first shared memory address, and the second shared memory address corresponding to the service identifier. The present invention may solve a problem in the prior art that multiple times of context switching are needed for communication between a user process and a system service process in a microkernel multiple-core architecture.

Inventors:
WU XIAOKE (CN)
Application Number:
PCT/CN2013/087395
Publication Date:
October 30, 2014
Filing Date:
November 19, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
G06F15/163
Foreign References:
US20090144510A12009-06-04
CN1811717A2006-08-02
CN101246466A2008-08-20
Other References:
See also references of EP 2977909A4
Download PDF:
Claims:
权 利 要 求

1、 一种众核间通信方法, 其特征在于, 所述方法包括:

服务管理 Service Manager进程向微内核操作系统申请共享内存, 将所 述微内核操作系统分配的第一共享内存映射到所述 Service Manager进程的 虚拟地址空间;

Service Manager进程接收系统服务进程的注册消息, 记录所述注册消 息所携带的所述系统服务进程的服务标识和所述服务标识对应的第二共享 内存地址;

Service Manager进程向所述系统服务进程发送所述注册消息的响应消 息, 所述响应消息携带第一共享内存地址;

Service Manager进程接收用户进程的系统服务请求, 根据所述系统服 务请求所携带的服务标识, 查找到所述服务标识对应的第二共享内存地址; Service Manager进程^ 1所述月良务标识、 所述第一共享内存地址以及所 述服务标识对应的第二共享内存地址发送给所述用户进程, 以使得所述用户 进程把所述第一共享内存地址对应的第一共享内存和所述第二共享内存地 址对应的第二共享内存映射到用户进程的虚拟地址空间。

2、 如权利要求 1 所述的方法, 其特征在于, 在所述 Service Manager 进程接收系统服务进程的注册消息之前, 还包括:

Service Manager进程通过本地代理服务监控 Mon i tor 向所有远程 Monitor 发送 Service Manager进程的启动消息, 所述启动消息携带第一共 享内存地址, 以使得所述所有远程 Monitor将所述第一共享内存地址对应的 第一共享内存映射到所述所有远程 Monitor的虚拟地址空间, 建立 Service Manager进程和所述所有远程 Mon i tor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的 Mon i tor;

所述 Service Manager进程接收系统服务进程的注册消息, 包括:

22 所述 Service Manager进程通过系统月良务进程的 Monitor接收系统月良务 进程的注册消息;

所述 Service Manager进程向所述系统服务进程发送所述注册消息的响 应消息, 包括:

所述 Service Manager进程通过系统月良务进程的 Monitor向所述系统月良 务进程发送所述注册消息的响应消息;

所述 Service Manager进程接收用户进程的系统服务请求, 包括: 所述 Service Manager进程通过用户进程的 Monitor接收用户进程的系 统服务请求;

所述 Service Manager进程将所述服务标识、 所述第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送给所述用户进程, 包括: 所述 Service Manager进程通过用户进程的 Monitor ^!夺所述月良务标识、 所述第一共享内存地址以及所述服务标识对应的第二共享内存地址。

3、 如权利要求 1 所述的方法, 其特征在于, 所述方法还包括: 当系统服务进程迁移至目标微内核时, Service Manager进程接收并记 录系统服务进程的服务标识和所述服务标识对应的第三共享内存地址;

Service Manager进程接收用户进程的系统服务请求, 根据系统服务请 求所携带的服务标识, 查找到所述系统服务请求所携带的服务标识对应的第 三共享内存地址;

Service Manager进程将所述第三共享内存地址发送至用户进程, 以使 得用户进程将所述第三共享内存地址对应的第三共享内存映射到用户进程 的虚拟地址空间;

Service Manager进程将用户进程的系统服务请求转发给系统服务进 程, 以使得系统服务进程处理所述用户进程的系统服务请求并将处理结果发 送至用户进程。

4、 一种众核间通信方法, 其特征在于, 所述方法包括:

23 系统服务进程向微内核操作系统申请共享内存,将微内核操作系统分配 的第二共享内存映射到自己的虚拟地址空间;

系统服务进程向 Serv i ce Manager进程发送注册消息, 所述注册消息携 带系统服务进程的服务标识和所述服务标识对应的第二共享内存地址; 系统服务进程接收所述 Serv i ce Manager进程发送的注册消息的响应消 息, 并将所述响应消息携带的第一共享内存地址对应的第一共享内存对应映 射到所述系统服务进程的虚拟地址空间。

5、 如权利要求 4所述的方法, 其特征在于, 所述方法还包括: 当系统服务进程迁移至目标微内核时, 系统服务进程向微内核操作系统 申请共享内存,将所述微内核操作系统分配的第三共享内存映射到自己的虚 以地址空间;

系统服务进程将系统服务进程的服务标识和所述服务标识对应的第三 共享内存地址发送至 Serv i ce Manager进程。

6、 一种众核间通信系统, 其特征在于, 所述系统包括:

映射单元, 用于向微内核操作系统申请共享内存, 将所述微内核操作系 统分配的第一共享内存映射到 Serv i ce Manager进程的虚拟地址空间; 接收单元, 用于接收系统服务进程的注册消息, 记录所述注册消息所携 带的所述系统服务进程的服务标识和所述服务标识对应的第二共享内存地 址;

响应单元, 用于向所述系统服务进程发送注册消息的响应消息, 所述响 应消息携带第一共享内存地址;

接收单元, 还用于接收用户进程的系统服务请求, 根据所述系统服务请 求所携带的服务标识, 查找到所述服务标识对应的第二共享内存地址; 发送单元, 用于将所述服务标识、 所述第一共享内存地址以及所述服务 标识对应的第二共享内存地址发送至所述用户进程, 以使得所述用户进程把 所述第一共享内存地址对应的第一共享内存和第二共享内存地址对应的第 二共享内存映射到用户进程的虚拟地址空间。

7、 如权利要求 6所述的系统, 其特征在于,

所述发送单元还用于:

通过本地代理服务监控 Monitor向所有远程 Monitor 发送 Service Manager进程的启动消息, 所述启动消息携带第一共享内存地址, 以使得所 述所有远程 Monitor将所述第一共享内存地址对应的第一共享内存映射到 所述所有远程 Monitor的虚拟地址空间, 建立 Serv i ce Manager进程和所述 所有远程 Monitor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的 Monitor;

所述接收单元具体用于:通过所述系统服务进程的 Monitor接收系统服 务进程的注册消息, 记录所述注册消息所携带的所述系统服务进程的服务标 识和所述服务标识对应的第二共享内存地址; 以及,

通过所述用户进程的 Monitor接收用户进程的系统服务请求,根据所述 系统服务请求所携带的服务标识, 查找到所述服务标识对应的第二共享内存 地址;

所述响应单元具体用于:通过所述系统月良务进程的 Monitor 向所述系统 服务进程发送所述注册消息的响应消息;

所述发送单元具体用于: 通过所述用户进程的 Monitor将所述服务标 识、所述第一共享内存地址以及所述服务标识对应的第二共享内存地址发送 至所述用户进程。

8、 如权利要求 6所述的系统, 其特征在于,

所述接收单元, 还用于当系统服务进程迁移至目标微内核时, Service Manager进程接收并记录系统服务进程的服务标识和所述服务标识对应的第 三共享内存地址;

所述接收单元, 还用于接收用户进程的系统服务请求, 根据系统服务请

25 求所携带的服务标识, 查找到所述服务标识对应的第三共享内存地址; 所述发送单元, 还用于将所述第三共享内存地址发送至用户进程, 以使 得用户进程将所述第三共享内存地址对应的第三共享内存映射到用户进程 的虚拟地址空间;

所述发送单元, 还用于将用户进程的系统服务请求转发给系统服务进 程, 以使得系统服务进程处理所述用户进程的系统服务请求并将处理结果发 送至用户进程。

9、 一种的众核间通信系统, 其特征在于, 所述系统包括:

映射单元, 用于向微内核操作系统申请共享内存, 将微内核操作系统分 配的第二共享内存映射到自己的虚拟地址空间;

发送单元, 用于向 Serv i ce Manager进程发送注册消息, 所述注册消息 携带系统服务进程的服务标识和所述服务标识对应的第二共享内存地址; 接收单元, 用于接收注册消息的响应消息, 所述响应消息携带第一共享 内存地址,将所述第一共享内存地址对应的第一共享内存映射到系统服务进 程的虚拟地址空间。

1 0、 如权利要求 9所述的系统, 其特征在于,

所述映射单元, 还用于当系统服务进程迁移至目标微内核时, 向微内核 操作系统申请共享内存地址,将微内核操作系统分配的第三共享内存地址对 应的第三共享内存映射到自己的虚拟地址空间;

所述发送单元, 还用于将系统服务进程的服务标识和所述服务标识对 应的第三共享内存地址发送至 Serv i ce Manage r进程。

26

Description:
一种众核间通信方法及系统 技术领域 本发明属于计算机硬件技术领域,尤其涉及一 种众核间通信方法及系统。 背景技术

微内核操作系统 (英文: Microkernel Operating System) 结构, 是 20 世纪 80年代后期发展起来的, 由于有效地支持多处理机运行, 非常适用于分 布式系统环境。 微内核是一种能够提供必要服务的操作系统内 核, 其中必要 的月良务包括任务、 线程、 进程间通4言 (英文: Inter Process Communication, 简称: IPG) 以及内存管理等。 微内核的所有服务 (包括设备驱动) 在用户态 下运行, 而处理服务与处理其它程序一样, 并且每个服务都在自己的地址空 间中运行, 服务彼此之间受到了保护。

图 1 是现有技术提供的微内核操作系统基于客户 /服务器模型示意图,在 图 1 中, 用户进程和系统服务都与微内核连接, 用户需要请求系统服务时, 首先用户通过用户进程向所述微内核发送系统 服务的请求信息, 微内核响应 接收到的请求信息, 调度所请求信息对应的系统服务进程, 系统服务处理完 用户请求后, 会发送消息给内核, 最后内核响应接收到的消息, 调度之前需 要请求系统服务的用户进程。

在众核架构下, 多个微内核实例同时存在, 每个中央处理器 (英文:

Central Processing Unit, 简称: GPU) 运行一个独立的微内核实例, 并且 用户态的各个进程可以随意放置在各个微内核 实例上运行。 因此用户进程和 系统服务进程可能不在同一个微内核上运行, 此时两者之间的信息交换需要 采用 IPG核间通信机制。

图 2是现有技术提供的众核架构用户进程与系统 务进程通信交互的一 示意图, 如图 2所示, IPG核间通信需要在每个微内核上运行一个代理 服务 监控(英文: Monitor) , Monitor 负责管理微内核数据结构, 以及协调核内和 核间通信, 并且系统启动完成后, 系统中所有 Monitor构成全连接, 两两相 连。 同时 Monitor采用一个数组維护本微内核上的服务列 , 并且提供了每 个服务在系统中全局唯一标识。

用户进程请求服务时, 首先会发送消息给微内核, 微内核调度 Monitor 运行, Mon i tor会根据消息内容来判断用户所请求系统服务 是否在同一微内 核上, 若否, 则根据图 2所示处理, 即本地 Monitor会发送消息给所请求系 统服务所在的微内核上的 Mon i tor, 此过程的消息通信是采用 I PG核间通信 机制, 然后远程 Monitor 发送消息给所述远程 Monitor所在的微内核, 微内 核调度目标服务进程; 目标服务处理完消息后, 发送消息给微内核, 然后微 内核调度 Mon i tor, Mon i tor通过 I PG核间通信将消息发送给所需要系统服务 的微内核上的 Monitor, Monitor再发送消息给微内核, 最后微内核调度用户 进程, 从而完成一次用户进程和服务进程不在同一个 微内核上的请求和响应 的调度过程。

从图 1 和图 2可以看出, 当用户进程和系统服务进程都在同一微内核上 时, 至少需要四次上下文切换, 即四次消息交换过程。

图 3是现有技术提供的众核架构用户进程与系统 务进程通信交互的另 一示意图, 图 3示出了当用户进程与系统服务进程不在同一 内核上时, 至 少需要八次上下文切换和两次 IPC核间通信, 如果系统服务进程不能处理用 户进程请求而需要调用其他服务时, 则需要更多次数的上下文切换和核间通 信, 而早期的宏内核 (英文: Monol ithic Kernel , 简称: Mono Kernel ) 操 作系统中, 仅需要两次上下文切换。

因此现有技术存在的问题是, 在微内核的众核架构下, 用户进程和系统 服务进程通信需要多次上下文切换, 微内核操作系统效率很低。 发明内容

本发明实施例提供一种众核间通信方法, 以解决现有技术在微内核的众 核架构下, 用户进程和服务进程通信需要多次上下文切换 , 微内核操作系统 效率很低的问题。

第一方面, 所述众核间通信方法包括:

服务管理 Service Manager进程向微内核操作系统申请共享内存, 将所 述微内核操作系统分配的第一共享内存映射到 所述 Service Manager进程的 虚拟地址空间; Serv i ce Manager进程接收系统服务进程的注册消息, 记录 所述注册消息所携带的所述系统服务进程的服 务标识和所述服务标识对应的 第二共享内存地址; Service Manager进程向所述系统服务进程发送所述注 册消息的响应消息, 所述响应消息携带第一共享内存地址;

Service Manager进程接收用户进程的系统服务请求, 根据所述系统服务 请求所携带的服务标识, 查找到所述服务标识对应的第二共享内存地址 ; Service Manager进程将所述服务标识、 所述第一共享内存地址以及所述服 务标识对应的第二共享内存地址发送给所述用 户进程, 以使得所述用户进程 把所述第一共享内存地址对应的第一共享内存 和所述第二共享内存地址对应 的第二共享内存映射到用户进程的虚拟地址空 间。

在第一方面的第一种可能的实现方式中, 在所述 Service Manager进程 接收系统服务进程的注册消息之前还包括:

Service Manager进程通过本地代理服务监控 Mon i tor 向所有远程

Monitor 发送 Service Manager进程的启动消息, 所述启动消息携带第一共 享内存地址, 以使得所述所有远程 Monitor将所述第一共享内存地址对应的 第一共享内存映射到所述所有远程 Monitor的虚拟地址空间, 建立 Service Manager进程和所述所有远程 Mon i tor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的

Mon i tor; 所述 Service Manager进程接收系统服务进程的注册消息, 包括: 所述 Service Manager进程通过系统月良务进程的 Monitor接收系统月良务 进程的注册消息;

所述 Service Manager进程向所述系统服务进程发送所述注册 息的响 应消息, 包括:

所述 Service Manager进程通过系统月良务进程的 Monitor 向所述系统月良 务进程发送所述注册消息的响应消息;

所述 Service Manager进程接收用户进程的系统服务请求, 包括: 所述 Service Manager进程通过用户进程的 Monitor接收用户进程的系 统^^务请求;

所述 Service Manager进程^ 1 所述月良务标识、 所述第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 给所述用户进程, 包括:

所述 Service Manager进程通过用户进程的 Monitor ^!夺所述月良务标识、 所述第一共享内存地址以及所述服务标识对应 的第二共享内存地址。

在第一方面的第二种可能的实现方式中, 所述方法包括:

当系统服务进程迁移至目标微内核时, Service Manager进程接收并记 录系统服务进程的服务标识和所述服务标识对 应的第三共享内存地址;

Service Manager进程接收用户进程的系统服务请求, 根据系统服务请 求所携带的服务标识, 查找到所述系统服务请求所携带的服务标识对 应的第 三共享内存地址;

Service Manager进程将所述第三共享内存地址发送至用 进程, 以使 得用户进程将所述第三共享内存地址对应的第 三共享内存映射到用户进程的 虚拟地址空间;

Service Manager进程将用户进程的系统服务请求转发给 统服务进 程, 以使得系统服务进程处理所述用户进程的系统 服务请求并将处理结果发 送至用户进程。 第二方面, 所述众核间通信方法包括:

系统服务进程向微内核操作系统申请共享内存 , 将微内核操作系统分配 的第二共享内存映射到自己的虚拟地址空间;

系统服务进程向 Serv i ce Manager进程发送注册消息, 所述注册消息携 带系统服务进程的服务标识和所述服务标识对 应的第二共享内存地址;

系统服务进程接收所述 Se rv i ce Manager进程发送的注册消息的响应消 息, 并将所述响应消息携带的第一共享内存地址对 应的第一共享内存对应映 射到所述系统服务进程的虚拟地址空间。

在第二方面的第一种可能的实现方式中, 所述方法还包括:

当系统服务进程迁移至目标微内核时, 系统服务进程向微内核操作系统 申请共享内存, 将所述微内核操作系统分配的第三共享内存映 射到自己的虚 以地址空间;

系统服务进程将系统服务进程的服务标识和所 述服务标识对应的第三共 享内存地址发送至 Serv i ce Manager进程。

第三方面, 一种众核间通信系统, 所述通信系统包括:

映射单元, 用于向微内核操作系统申请共享内存, 将所述微内核操作系 统分配的第一共享内存映射到 Serv i ce Manage r进程的虚拟地址空间;

接收单元, 用于接收系统服务进程的注册消息, 记录所述注册消息所携 带的所述系统服务进程的服务标识和所述服务 标识对应的第二共享内存地 址;

响应单元, 用于向所述系统服务进程发送注册消息的响应 消息, 所述响 应消息携带第一共享内存地址;

接收单元, 还用于接收用户进程的系统服务请求, 根据所述系统服务请 求所携带的服务标识, 查找到所述服务标识对应的第二共享内存地址 ;

发送单元, 用于将所述服务标识、 所述第一共享内存地址以及所述服务 标识对应的第二共享内存地址发送至所述用户 进程, 以使得所述用户进程把 所述第一共享内存地址对应的第一共享内存和 第二共享内存地址对应的第二 共享内存映射到用户进程的虚拟地址空间。

在第三方面的第一种可能的实现方式中,

所述发送单元还用于:

通过本地代理服务监控 Monitor向所有远程 Monitor 发送 Service

Manager进程的启动消息, 所述启动消息携带第一共享内存地址, 以使得所 述所有远程 Mon i tor将所述第一共享内存地址对应的第一共享内 存映射到所 述所有远程 Monitor的虚拟地址空间, 建立 Service Manager进程和所述所 有远程 Monitor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的

Mon i tor;

所述接收单元具体用于: 通过所述系统服务进程的 Monitor接收系统服 务进程的注册消息, 记录所述注册消息所携带的所述系统服务进程 的服务标 识和所述服务标识对应的第二共享内存地址; 以及,

通过所述用户进程的 Monitor接收用户进程的系统服务请求, 根据所述 系统服务请求所携带的服务标识, 查找到所述服务标识对应的第二共享内存 地址;

所述响应单元具体用于: 通过所述系统月良务进程的 Monitor 向所述系统 服务进程发送所述注册消息的响应消息;

所述发送单元具体用于:通过所述用户进程的 Monitor将所述服务标识、 所述第一共享内存地址以及所述服务标识对应 的第二共享内存地址发送至所 述用户进程。

在第三方面的第二种可能的实现方式中,

所述接收单元, 还用于当系统服务进程迁移至目标微内核时, Service Manager进程接收并记录系统服务进程的服务标 和所述服务标识对应的第 三共享内存地址; 所述接收单元, 还用于接收用户进程的系统服务请求, 根据系统服务请 求所携带的服务标识, 查找到所述服务标识对应的第三共享内存地址 ;

所述发送单元, 还用于将所述第三共享内存地址发送至用户进 程, 以使 得用户进程将所述第三共享内存地址对应的第 三共享内存映射到用户进程的 虚拟地址空间;

所述发送单元,还用于将用户进程的系统服务 请求转发给系统服务进程, 以使得系统服务进程处理所述用户进程的系统 服务请求并将处理结果发送至 用户进程。

第四方面, 一种众核间通信系统, 所述通信系统包括:

映射单元, 用于向微内核操作系统申请共享内存, 将微内核操作系统分 配的第二共享内存映射到自己的虚拟地址空间 ;

发送单元, 用于向 Serv i ce Manager进程发送注册消息, 所述注册消息 携带系统服务进程的服务标识和所述服务标识 对应的第二共享内存地址; 接收单元, 用于接收注册消息的响应消息, 所述响应消息携带第一共享 内存地址, 将所述第一共享内存地址对应的第一共享内存 映射到系统服务进 程的虚拟地址空间。

在第四方面的第一种可能的实现方式中,

所述映射单元, 还用于当系统服务进程迁移至目标微内核时, 向微内核 操作系统申请共享内存地址, 将微内核操作系统分配的第三共享内存地址对 应的第三共享内存映射到自己的虚拟地址空间 ;

所述发送单元,还用于将系统服务进程的服务 标识和所述服务标识对应 的第三共享内存地址发送至 Serv i ce Manage r进程。 附图说明

为了更清楚地说明本发明实施例中的技术方案 , 下面将对实施例或现有 技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附 图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创 造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1 是现有技术提供的微内核操作系统基于客户 /服务器模型示意图; 图 2是现有技术提供的众核架构用户进程与系统 务进程通信交互的一 示意图;

图 3是现有技术提供的众核架构用户进程与系统 务进程通信交互的另 一示意图;

图 4是本发明一实施例提供的众核间通信方法所 用的场景示意图; 图 5是本发明另一实施例提供的众核间通信方法 实现流程图; 图 6是本发明另一实施例提供的众核间通信方法 实现流程图; 图 7是本发明另一实施例提供的操作共享内存方 的示意图;

图 8是本发明另一实施例提供的众核间通信系统 组成结构图; 图 9是本发明另一实施例提供的众核间通信系统 组成结构图; 图 1 0是本发明另一实施例提供的网络设备的组成 构图;

图 1 1 是本发明另一实施例提供的网络设备的组成结 构图。 具体实施方式

为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及 实施例, 对本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施 例仅仅用以解释本发明, 并不用于限定本发明。

图 4示出了本发明一实施例提供的众核间通信方 所适用的场景。

在本实施例中, 所有的微内核使用同一微内核操作系统, 在系统中指定 一特定的微内核, 以单核单线程的方式运行特定的服务管理 (英文: Se rv i ce Manage r ) 进程, 用来系统提供的所有服务, 并管理用户所请求的系统服务进 程与用户进程之间建立通信连接, 用户进程包括用户进程 A和用户进程 B, 系统服务进程包括: 进程服务、 设备驱动、 文件服务、 虚拟内存和其它服务。 在本实施例中, 当一个系统服务进程调用另外一个系统服务进 程时, 主 动调用的系统服务进程作为用户进程, 而被调用的进程作为系统服务进程。

每个微内核上运行一个代理服务 Monitor, 所有的 Monitor之间可以建 立全连接, 即所有的 Monitor之间两两连接。

图 5示出了本发明一实施例提供的众核间通信方 的实现流程, 该实施 例的执行主体是 Service Manager, 该方法过程详述如下:

在步骤 S501 中, Service Manager进程向微内核操作系统申请共享内 存, 将微内核操作系统分配的第一共享内存映射到 Service Manager进程的 虚拟地址空间。

需要说明的是, 在 Service Manager进程启动时, 会向微内核操作系统 申请共享内存, 上述微内核操作系统是 Service Manager进程所在微内核使 用的操作系统。

在本文中, "第一"、 "第二" 和 "第三" 并不指代先后顺序, 而是用 于区分共享内存和共享内存地址, 所述第一共享内存是微内核操作系统内存 管理模块为 Service Manager进程分配的共享内存, 第一共享内存的地址为 第一共享内存地址。

在本实施例中, Service Manager进程、 系统月良务进程和用户进程位于 同一处理器的不同微内核或者位于多个不同处 理器的微内核。

如表 1 所示, 微内核操作系统内存管理模块会将线性内存地 址分成 3部 分, 包括: 内核空间、 用户空间和共享内存空间, 共享内存空间是从 0xf"-f 开始分配, 并且第一块的特定共享内存区域是专门分配给 Service Manager 进程使用的, 剩余的共享内存空间分配给系统服务进程。 系统服务进程启动 后向微内核操作系统申请一块固定大小的内存 , 这里称为系统服务进程的共 享内存, 也就是第二共享内存, 或者系统服务进程迁移至目标微内核后, 系 统服务进程重新向微内核操作系统申请一块固 定大小的内存, 这里也称为系 统服务进程的共享内存, 也就是第三共享内存。 系统服务进程 系统服务进程 特定共享 内核空间 用户空间

的共享内存 的共享内存 内存区域 表 1

在步骤 S502中, Serv i ce Manager进程接收系统服务进程的注册消息, 记录所述注册消息所携带的系统服务进程的服 务信息和第二共享内存地址。

在本实施例中, 系统服务进程启动完成后, 首先向微内核操作系统申请 系统服务进程的共享内存地址, 也就是第二共享内存地址, 然后向 Service Manager进程进行注册, 注册时把系统服务进程的服务信息和所述第二 共享 内存地址发送给 Service Manager进程, 所述服务信息包括服务标识, 所述 服务标识与第二共享内存地址对应。

需要说明的是, 服务标识用于区分不同的系统服务进程, 这里服务标识 可以用数字、 字母或者其它方式来实现。 系统服务进程的服务标识和第二共 享内存地址是对应关系, 每个系统服务进程都有对应服务标识, 每个系统服 务进程都有被分配的第二共享内存, 所述第二共享内存的地址为第二共享内 存地址, 因此系统服务进程的服务标识和第二共享内存 地址是——对应的关 系, Service Manager进程记录系统服务进程的服务标识和所 服务标识对 应的第二共享内存地址。

具体地, Service Manager进程接收系统服务进程的注册消息的实 方 式包括:

方式一: 系统服务进程的 Monitor从系统服务进程接收系统服务进程的 注册消息, Service Manager进程的 Mon i tor从系统月良务进程的 Mon i tor接 系统月良务进程的注册消息, Service Manager进程从 Serv i ce Manager进 程的 Mon i to r接收系统服务进程的注册消息;

方式二: Service Manager进程通过系统月良务进程的 Mon i tor接^ 系统 服务进程的注册消息。

需要说明的是, 方式二省略了 Service Manager进程的 Monitor这一中 间环节, 效率更高。

在步骤 S503中, Service Manager进程向系统服务进程发送注册消息的 响应消息, 所述响应消息携带第一共享内存地址。

在本实施例中, 系统服务进程根据第一共享内存地址, 将第一共享内存 映射到自己的虚拟地址空间, 可以实现 Service Manager进程与系统服务进 程直接通信。

具体地, Service Manager进程向系统服务进程发送注册消息的响 消 息的实现方式包括:

方式一: Service Manager进程向 Service Manager进程的 Monitor 发 送所述注册消息的响应消息, Service Manager进程的 Mon i tor 向系统服务 进程的 Monitor 发送所述注册消息的响应消息, 系统服务进程的 Monitor将 所述注册消息的响应消息发送给系统服务进程 ;

方式二: Service Manager进程通过系统月良务进程的 Mon i tor 向系统月良 务进程发送所述注册消息的响应消息。

需要说明的是, 方式二是 Service Manager进程直接与系统服务进程的

Monitor进行通信, 省略了 Service Manager进程的 Monitor这一中间环节。

在步骤 S504中, Service Manager进程接收用户进程的系统服务请求, 根据系统服务请求所携带的服务标识, 查找到所述服务标识对应的第二共享 内存地址。

具体地, Service Manager进程接收用户进程的系统服务请求的实 方 式包括:

方式一: 用户进程的 Monitor从用户进程接收所述用户进程的系统服 请求, Service Manager进程的 Mon i tor从用户进程的 Mon i tor接收所述用 户进程的系统月良务请求, Service Manager ϋ λ Service Manager进程的 Monitor接收所述用户进程的系统服务请求;

方式二: Service Manager进程通过用户进程的 Mon i tor接收用户进程

11 的系统服务请求。

需要说明的是, 方式二是 Serv i ce Manager进程直接与用户进程进行通 讯, 省略了 Serv i ce Manager进程的 Mon i tor这一中间环节。

在步骤 S505中, Serv i ce Manager进程将所述服务标识、 第一共享内存 地址以及所述服务标识对应的第二共享内存地 址发送至所述用户进程, 以使 得所述用户进程把所述第一共享内存地址对应 的第一共享内存和第二共享内 存地址对应的第二共享内存映射到用户进程的 虚拟地址空间。

需要说明的是, 发送服务标识至用户进程的目的是, 为了让用户进程能 够区分第一共享内存地址和第二共享内存地址 。

在本实施例中, 用户进程接收第一共享内存地址和第二共享内 存地址, 根据所述第一共享内存地址和第二共享内存地 址, 将第一共享内存和第二共 享内存映射到自己的虚拟地址空间, 实现了用户进程可以直接与 Serv i ce Manager进程和系统服务进程直接通信, 解决了现有技术中用户进程和系统 服务进程通信需要多次上下文切换的问题。

具体地, 用户进程与系统服务进程通信的实现方式如表 2所示, 每个系 统服务进程的共享内存存储的消息分为两部分 , 包括头部和消息体, 头部用 于设置系统服务的标识, 消息体部分包括分配位图、 准备位图和消息块, 分 配位图用于表示消息块处于空闲状态或者被使 用, 准备位图用于表示消息块 是否准备好被处理的消息。

每次用户请求服务时, 首先查询分配位图来申请一个空闲的消息块, 申 请成功后修改分配位图中对应的标识位, 并且操作该消息块填写消息内容, 同时也修改准备位图对应的标识位。 系统服务进程查询到准备位图有标识位 的消息块, 读取该消息块中的内容, 提供服务, 完成后复位分配位图和准备 位图中对应的标识位。

12 表 2

具体地, Service Manager进程将所述服务标识、 第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 至所述用户进程的实现方式包 括:

方式一: Service Manager进程将所述服务标识、 第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 至 Service Manager进程的 Monitor, Serv i ce Manager进程的 Mon i tor ^!夺所述月良务才示 口、、 第一共享内存 地址以及所述服务标识对应的第二共享内存地 址发送至用户进程的

Monitor, 用户进程的 Mon i tor将所述服务标识、 第一共享内存地址以及所述 服务标识对应的第二共享内存地址发送至用户 进程。

方式二: Service Manager进程将所述服务标识、 第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 至用户进程的 Monitor, 用户 进程的 Monitor将所述服务标识、 第一共享内存地址以及所述服务标识对应 的第二共享内存地址发送至用户进程。

可选的, 在步骤所述 S501 之后, 在步骤 S502之前还包括:

Service Manager进程通过本地代理月良务 Mon i tor 向所有远程 Monitor 发送 Service Manager进程启动消息, 所述启动消息携带第一共享内存地址, 以使得所述所有远程 Mon i tor将所述第一共享内存地址对应的第一共享内 存 映射到所述所有远程 Monitor的虚拟地址空间, 建立 Service Manager进程 和所述所有远程 Monitor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的 Mon i tor;

所述 Service Manager进程接收系统服务进程的注册消息具体 所述 Service Manager进程通过系统月良务进程的 Monitor接收系统月良务进程的注 册消息;

所述 Service Manager进程向所述系统服务进程发送所述注册 息的响

13 应消息具体为所述 Service Manager进程通过系统月良务进程的 Monitor 向所 述系统服务进程发送所述注册消息的响应消息 ;

所述 Service Manager进程接收用户进程的系统服务请求具体 所述 Service Manager进程通过用户进程的 Monitor接收用户进程的系统服务请 求;

所述 Service Manager进程^ 1 所述月良务标识、 所述第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 给所述用户进程具体为所述 Service Manager进程通过用户进程的 Mon i tor ^!夺所述月良务标识、 所述第一 共享内存地址以及所述服务标识对应的第二共 享内存地址。

在本实施例中, 通过上述方法, 使得 Service Manager进程向系统月良务 进程发送消息或者从系统服务进程接收消息都 直接通过系统服务进程的 Monitor, Service Manager进程向用户进程发送消息或者从用户进 接收消 息都直接通过用户进程的 Monitors

在本实施例中, 通过上述方法使得 Service Manager进程直接与用户进 程的 Mon i tor和系统服务进程的 Mon i tor通信, 避免每次用户进程和系统服 务进程与 Service Manager进程通信还必须通过 Serv i ce Manager进程的 Monitor, 提高了系统的通信效率。

可选的, 所述方法还包括:

当系统服务进程迁移至目标微内核时, Service Manager进程接收并记 录系统服务进程的服务标识和所述服务标识对 应的第三共享内存地址;

Service Manager进程接收用户进程的系统服务请求, 根据系统服务请 求所携带的服务标识, 查找到所述服务标识对应的第三共享内存地址 ;

Service Manager进程将所述第三共享内存地址发送至用 进程, 以使 得用户进程将所述第三共享内存地址对应第三 共享内存映射到用户进程的虚 拟地址空间;

Service Manager进程将用户进程的系统服务请求转发给 统服务进程,

14 以使得系统服务进程处理所述用户进程的系统 服务请求并将处理结果发送至 用户进程。

在本实施例中, 系统服务进程发生迁移时, 系统服务进程的服务标识不 变, 但是系统服务进程需要通过迁移后的目标微内 核, 向微内核操作系统重 新申请系统服务进程的共享内存, 也就是上述的第三共享内存, 第三共享内 存的地址为第三共享内存地址, 这里的第三共享内存地址是为了与原有的第 二共享内存地址进行区分。

在本实施例中, 当系统服务进程迁移时, 用户进程不能根据原有的第二 共享内存地址与系统服务进程进行通信, 而是将系统服务请求发送给

Serv i ce Manager进程, 由 Serv i ce Manage r进程查 ^到系统月良务进程更新 注册的第三共享内存地址, 将第三共享内存地址发送给用户进程, 使得用户 进程可以直接与迁移后的系统服务进程进行通 信, Serv i ce Manager进程将 用户的系统服务请求转发给迁移后的系统服务 进程, 通过简单的步骤就可以 实现用户进程与迁移后的系统服务进程进行通 信。

图 6示出了本发明另一实施例提供的众核间通信 法的实现流程, 该实 施例的执行主体是系统服务进程, 该方法过程详述如下:

在步骤 S601 中, 系统服务进程向微内核操作系统申请共享内存 , 将微内 核操作系统分配的第二共享内存映射到自己的 虚拟地址空间。

需要说明的是, 微内核操作系统是指系统服务进程所在微内核 使用的操 作系统。

在步骤 S602中, 系统服务进程向 Serv i ce Manage r进程发送注册消息, 所述注册消息携带系统服务进程的服务信息和 第二共享内存地址。

在本实施例中,系统服务进程的服务信息包括 系统服务进程的服务标识, 且服务标识与第二共享内存地址对应。

在步骤 S603中, 系统服务进程接收注册消息的响应消息, 所述响应消息 携带第一共享内存地址, 将所述第一共享内存地址对应的第一共享内存 映射

15 到系统服务进程的虚拟地址空间。

可选的, 所述方法还包括:

当系统服务进程迁移至目标微内核时, 系统服务进程向微内核操作系统 申请共享内存, 将所述微内核操作系统分配的第三共享内存映 射到自己的虚 4以地址空间;

系统服务进程将系统服务进程的服务标识和服 务标识对应的第三共享内 存地址发送至 Service Manager进程。

图 7示出了本发明另一实施例提供的操作共享内 方法, 该方法详述如 下:

微内核操作系统提供了一个 I ibc来操作系统共享内存,本发明提供了一 套应用程序编程接口 (英文: Appl ication Programming Interface, 简称: API) 来实现微内核操作系统操作共享内存的方法。

用户进程、 Monitor, 系统服务进程和 Serv i ce Manager进程分別将 Service Manager进程的共享内存, 也就是第一共享内存映射自己的虚拟地 址空间, 使得 Service Manager进程可以直接和用户进程、 Monitor 以及系 统服务进程通信。

需要说明的是, 这里的 Monitor指上述所有远程 Monitors

用户进程和系统服务进程将系统服务进程的共 享内存, 也就是第二共享 内存或者是第三共享内存, 分別映射到自己虚拟地址空间, 使得用户进程和 系统服务进程可以直接通信。

图 8示出了本发明另一实施例提供的众核间通信 统的组成结构, 为了 便于说明, 仅示出了与本发明实施例相关的部分。

该众核间通信系统包括:

映射单元 81, 用于向微内核操作系统申请共享内存, 将微内核操作系统 分配的第一共享内存映射到 Service Manager进程的虚拟地址空间。

接收单元 82, 用于接收系统服务进程的注册消息, 记录所述注册消息所

16 携带的系统服务进程的服务信息和第二共享内 存地址。

响应单元 83, 用于向所述系统服务进程发送注册消息的响应 消息, 所述 响应消息携带第一共享内存地址。

所述接收单元 82, 还用于接收用户进程的系统服务请求, 根据系统服务 请求所携带的服务标识, 查找所述服务标识对应的第二共享内存地址。

发送单元 84, 用于将所述服务标识、 所述第一共享内存地址以及所述服 务标识对应的第二共享内存地址发送至所述用 户进程, 以使得所述用户进程 把所述第一共享内存地址对应的第一共享内存 和第二共享内存对应的第二共 享内存映射到用户进程的虚拟地址空间。

可选的, 所述发送单元 84还用于:

通过本地代理服务 Monitor 向所有远程 Monitor 发送 Service Manager 进程的启动消息, 所述启动消息携带第一共享内存地址, 以使得所述所有远 程 Mon i tor将所述第一共享内存地址对应的第一共享内 存映射到所述所有远 程 Monitor的虚拟地址空间, 建立 Service Manager进程和所述所有远程 Monitor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的 Mon i tor。

可选的,

所述接收单元 82,还用于当系统服务进程迁移至目标微内核 , Service Manager进程接收并记录系统服务进程的服务标 和所述服务标识对应的第 三共享内存地址;

所述接收单元 82, 还用于接收用户进程的系统服务请求, 根据系统服务 请求所携带的服务标识, 查找所述服务标识对应的第三共享内存地址;

所述发送单元 84, 还用于将所述第三共享内存地址发送至用户进 程, 以 使得用户进程将所述第三共享内存地址对应的 第三共享内存映射到用户进程 的虚拟地址空间;

17 所述发送单元 84, 还用于将用户进程的系统服务请求转发给系统 服务进 程, 以使得系统服务进程处理所述用户进程的系统 服务请求并将处理结果发 送至用户。

本实施例提供的众核间通信系统可以使用在前 述对应的众核间通信方 法, 详情参见上述众核间通信方法图 5对应的实施例的相关描述, 在此不再 赘述。

图 9示出了本发明另一实施例提供的众核间通信 统的组成结构, 为了 便于说明, 仅示出了与本发明实施例相关的部分。

该众核间通信系统包括:

映射单元 91, 用于向微内核操作系统申请系统服务共享内存 , 将微内核 操作系统分配的第二共享内存映射到自己的虚 拟地址空间。

发送单元 92, 用于向 Serv i ce Manage r进程发送注册消息, 所述注册消 息携带系统服务进程的服务信息和服务标识对 应的第二共享内存地址。

接收单元 93, 用于接收注册消息的响应消息, 所述响应消息携带第一共 享内存地址, 将所述第一共享内存地址对应的第一共享内存 映射到系统服务 进程的虚拟地址空间。

可选的,

所述映射单元 91, 还用于当系统服务进程迁移至目标微内核时, 向微内 核操作系统申共享内存地址, 将微内核操作系统分配的第三共享内存地址对 应的第三共享内存映射到自己的虚拟地址空间 ;

所述发送单元 92, 还用于将系统服务进程的服务标识和所述服务 标识对 应的第三共享内存地址发送至 Serv i ce Manage r进程。

本实施例提供的众核间通信系统可以使用在前 述对应的众核间通信方 法, 详情参见上述众核间通信方法图 6对应的实施例的相关描述, 在此不再 赘述。

图 1 0示出了本发明另一实施例提供的网络设备的 成结构,为了便于说 明, 仅示出了与本发明实施例相关的部分。

该网络设备包括处理器 1001、存储器 1002、通信接口 1003和总线 1004。 处理器 1001、 存储器 1002、 通信接口 1003通过总线 1004相互连接; 总 线 1004可以是工业标准架构体系 (英文: Industry Standard Architecture, 简称: ISA)总线或夕卜围组件互联(英文: Per iphera I Component Interconnect, 简称: PGI) 总线等。

上述的处理器 1001 是多内核通用处理器或者是多个处理器,包括 中央处 理器 (英文: Central Processing Unit, 简称 GPU) 、 网络处理器 (英文: Network Processor , 简称 ΝΡ) 等。

所述处理器 1001 用于:

控制 Service Manager进程向微内核操作系统申请共享内存, 将微内核 操作系统分配的第一共享内存映射到 Serv i ce Manager进程的虚拟地址空间; 控制系统服务进程向 Service Manager进程发送系统服务进程的注册消 息;

控制 Service Manager进程接收并记录所述注册消息所携带的 统服务 进程的服务标识和所述服务标识对应的第二共 享内存地址;

控制 Service Manager进程向所述系统服务进程发送所述注册 息的响 应消息, 所述响应消息携带第一共享内存地址;

控制用户进程向 Service Manager进程发送系统服务请求;

控制 Service Manager进程根据所述系统服务请求所携带的服 标识, 查找到所述服务标识对应的第二共享内存地址 ;

控制 Service Manager进程将所述服务标识、 所述第一共享内存地址以 及所述服务标识对应的第二共享内存地址发送 所述用户进程;

控制用户进程把所述第一共享内存地址对应的 第一共享内存和所述第二 共享内存地址对应的第二共享内存映射到用户 进程的虚拟地址空间。

可选的, 所述处理器 1001 还用于:

19 控制 Service Manager进程通过本地代理服务监控 Monitor 向所有远程 Monitor 发送 Service Manager进程的启动消息, 所述启动消息携带第一共 享内存地址;

控制所述所有远程 Monitor将所述第一共享内存地址对应的第一共 内 存映射到所述所有远程 Monitor的虚拟地址空间, 建立 Serv i ce Manager进 程和所述所有远程 Monitor的连接;

所述所有远程 Monitor 包括用户进程的 Monitor和系统服务进程的 Mon i tor。

可选的, 所述控制器 1001 还用于:

当系统服务进程迁移至目标微内核时, 控制系统服务进程向 Serv i ce

Manager进程发送系统服务进程的服务标识和 述服务标识对应的第三共享 内存地址;

控制 Service Manager进程接收并记录系统服务进程的服务标 和所述 服务标识对应的第三共享内存地址;

控制 Service Manager进程将所述第三共享内存地址发送至用 进程, 以使得用户进程将所述第三共享内存地址对应 的第三共享内存映射到用户进 程的虚拟地址空间;

控制 Service Manager进程将用户进程的系统服务请求转发给 统服务 进程;

控制系统服务进程处理所述用户进程的系统服 务请求, 并将处理结果发 送至用户进程。

图 11 示出了本发明另一实施例提供的网络设备的组 成结构,为了便于说 明, 仅示出了与本发明实施例相关的部分。

该网络设备包括处理器 1101、存储器 1102、通信接口 1103和总线 1104。 处理器 1101、 存储器 1102、 通信接口 1103通过总线 1104相互连接; 总 线 1104可以是工业标准架构体系 (英文: Industry Standard Architecture,

20 简称: ISA)总线或夕卜围组件互联(英文: Per iphera I Component Interconnect, 简称: PGI) 总线等。

上述的处理器 1101 是多内核通用处理器或者多个处理器,包括中 央处理 器(英文: Central Processing Unit, 简称 GPU)、 网络处理器(英文: Network Processor, 简称 NP) 等。

所述处理器 1101 用于:

控制系统服务进程向微内核操作系统申请共享 内存, 将微内核操作系统 分配的第二共享内存映射到自己的虚拟地址空 间;

控制系统服务进程向 Service Manager进程发送注册消息, 所述注册消 息携带系统服务进程的服务标识和所述服务标 识对应的第二共享内存地址; 控制 Serv i ce Manager进程处理系统服务进程的注册消息, 并向系统服 务进程发送注册消息的响应消息, 所述响应消息携带第一共享内存地址; 控制系统服务进程接收所述响应消息, 将所述第一共享内存地址对应的 第一共享内存对应映射到系统服务进程的虚拟 地址空间。

可选的, 所述处理器 1101 还用于:

当系统服务进程迁移至目标微内核时, 控制系统服务进程向微内核操作 系统申请共享内存, 将所述微内核操作系统分配的第三共享内存映 射到自己 的虚拟地址空间;

控制系统服务进程将系统服务进程的服务标识 和所述服务标识对应的第 三共享内存地址发送至 Service Manager进程。

本领域普通技术人员还可以理解, 实现上述实施例方法中的全部或部分 步骤是可以通过程序来指令相关的硬件来完成 , 所述的程序可以在存储于可 读取存储介质中, 所述的存储介质, 包括 ROM/RAM等。

以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本 发明的精神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本 发明的保护范围之内。