一种多核多操作系统之间的通信方法及系统技术方案

技术编号:2828093 阅读:217 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多核多操作系统之间的通信系统,所述操作系统之间通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的操作系统对应的虚拟接口(例如虚拟网口)。本发明专利技术还公开了一种多核多操作系统之间通信方法。本发明专利技术不使用硬件芯片,降低硬件成本;第三方软件不需要改动就可以移植,降低了软件移植成本;采用共享内存和核间消息实现数据收发,实现数据零拷贝,提高数据收发效率。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种多核多操作系统之间的通信方 法及系统。
技术介绍
多核芯片通常是将多个CPU (Center Process Unit,中央处理单元)集成 到同 一个物理芯片上,通常称为CMP ( On-Chip Multi Processor,片上多处理 器),多核内核可以共用系统中的外围设备,多核之间的互连主要有总线互连、 交叉开关和片上网络等方式。从拥有系统硬件资源多少的角度,多核可以划 分为逻辑上的多核(指一个内核颗粒中包括多个线程)和物理上的多核(指 多核芯片本身包括多个内核颗粒)。典型的多核芯片是拥有多个内核颗粒,而 每个内核颗粒又包括多个线程。目前多核的实际应用有以下两种方式 一种是多核单才喿作系统,多核的 多个线程完成共同完成某一任务,如Linux运行在SMP (Symmetric Multiple Processor,对称多处理器)^t式的应用,在这种应用下,用户感觉不到多核的 存在;另一种是多核单操作系统,某核的一个线程起控制平面作用,其他核 或线程运行业务,处理数据,起数据平面的作用。在多核单操作系统中,只有一个操作系统管理所有的资源,核间通信本 质上是任务之间的通信,操作系统提供多种接口,如消息队列、信号量、共 享内存、管道等,CPU本身也提供核间消息等硬件支持。现有技术中一种多操作系统硬件架构如图l所示,由路由器和OAP (Open Application Platform,开放应用平台)单板两部分组成,路由器的CPU运行 Comware操作系统,OAP单板的CPU运行Linux,第三方基于Linux开发的软件 很容易就可以集成到OAP单板上,操作系统之间的通信也就是CPU之间的通 信,通过以太网接口和串口等物理接口进行。当图1的软件架构移植到多核系统时,采用的就是多核多操作系统模式,每个核各运行一个操作系统,在一个CPU中运行多个操作系统。CPU的一个 核运行Comware操作系统,实现路由转发等功能;另外几个核运行其它操作 系统,如Linux操作系统,以便集成第三方软件。当采用多核CPU后,操作系统之间的通信仍然釆用物理接口之间的通信, 每个操作系统各管理一个以太网、串口等物理接口,软件的架构基本不变就 可以原来的OAA (Open Application Architecture,开》文应用架构)移4直到多核 CPU上,所不同的只是由CPU管理的物理接口变为了由CPU的各个核去管 理。使用以太网、串口等物理接口进行通信,其软件和硬件架构同多CPU系 统类似,但是硬件成本高,有的多核CPU只能共享物理接口,并不支持单个 核去管理物理接口,硬件局限性大。
技术实现思路
本专利技术提供了 一种多核操作系统之间的通信方法及系统,通过虛拟数据通道的方式实现多核多梯:作系统之间的通信,对上层软件屏蔽底层所作的修 改,降低硬件成本和软件移植的复杂度。本专利技术提供了 一种多核多操作系统之间的通信系统,所述操作系统之间 通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的操作系 统对应的虚拟-接口。其中,所述虚拟接口具体包括管理模块,用于进行虚拟接口的初始化,并在操作系统启动/关闭时向对方操作系统通报自身的状态;数据收发模块,用于利用共享内存和核间消息实现数据收发。 其中,所述管理模块具体包括 初始化子模块,用于进行虚拟接口的初始化; 注册子模块,用于向操作系统注册虛拟接口;管理子模块,用于管理虚拟接口的状态,在操作系统启动/关闭时向对方 操作系统通报自身的状态。其中,所述数据收发模块具体包括数据发送子模块,用于将数据写入共享内存后,通过核间消息将所述共 享内存的起始地址和数据长度发送给对端操作系统,使所述对端操作系统从 所述共享内存中读取所述数据;数据接收子模块,用于接收来自对端操作系统的核间消息,根据所述核 间消息携带的共享内存的起始地址和数据长度从所述共享内存中读取数据。其中,发送操作系统对所述共享内存具有读写和释放的权限;接收操作 系统对所述共享内存具有读的权限。本专利技术还提供了 一种多核多操作系统之间通信方法,应用于包括至少两 个操作系统的场景,包括以下步骤所述操作系统之间设置虚拟数据通道,所述虚拟数据通道包括相互连接 的才喿作系统对应的虚拟4妻口 。所述操作系统之间通过所述虚拟数据通道进行数据传输。其中,所述操作系统之间设置虚拟数据通道具体包括:操作系统在启动时,对所述虚拟网口进4亍初始化,并且各个虚拟网口向 各自对应的操作系统进行注册;在操作系统启动/关闭时向对方操作系统通报自身的状态以告知对方操作 系统自身可否通信。其中,所述操作系统之间通过所述虚拟数据通道进行数据传输具体包括发送操作系统获取共享内存,所述发送操作系统对所述共享内存可读写; 所述发送操作系统将数据写入所述共享内存后,通过核间消息将所述共享内 存的起始地址和数据长度发送给接收操作系统;接收操作系统对共享内存可读,接收处理完成后,所述接收操作系统通 过核间消息将所述共享内存起始地址发送给所述发送操作系统,所述发送操 作系统将所述共享内存回收。其中,所述发送操作系统获取共享内存之前还包括发送操作系统通过维护一个链表管理预先分配好的共享内存,所述发送 操作系统对所述共享内存具有读写和释放的权限;所述接收操作系统对所述共享内存具有读的权限。与现有技术相比,本专利技术具有以下优点本专利技术的实施例中,不使用硬件芯片,降低硬件成本;第三方软件不需 要改动就可以移植,降低了软件移植成本;采用共享内存和核间消息实现数 据收发,实现数据零拷贝,提高数据收发效率。附图说明图l是现有技术中多操作系统硬件架构图;图2是本专利技术中两个虚拟以太网口组成一个虚拟数据通道的示意图; 图3是本专利技术中同 一物理内存空间在逻辑上划分示意图; 图4是本专利技术中共享内存划分示意图; 图5是本专利技术中虚拟数据通道的整体处理流程图。具体实施方式本专利技术提供了 一种多核操作系统之间的通信系统,所述操作系统之间通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的#:作系统 对应的虚拟接口。虚拟数据通道通过软件模拟物理接口,替换掉相关的硬件 及驱动软件,使上层软件看到的仍然是物理接口,这样上层软件不需要改动 就可以移植到多核CPU上。虚拟数据通道可以虚拟以太网口、串口等多种物 理接口,下面以以太网口为例进行说明。虛拟数据通道从操作系统的角度看, 每个4喿作系统对应一个虚拟以太网口 ,两个虚拟以太网口组成一个虚拟数据通道^^莫块,如图2所示。每个虚拟以太网口又分为管理模块和数据收发模块。管理模块,用于进 行虚拟网口的初始化,并在操作系统启动/关闭时向对方操作系统通报自身的状态;数据收发模块,用于利用共享内存和核间消息实现数据收发。所述管理模块具体包括初始化子模块,用于进行虚拟网口的初始化, 类似于实际以太网口的硬件芯片初始化;注册子模块,用于向操作系统注册 为以太网口,注册流程同实际的以太网接口类似,这样l喿作系统或上层软件看到的接口仍然是以太网口,原来的上层软件可以直接移植过来;管理子模 块,用于管理虚拟网口的状态,在操作系统启动/关闭时向对方操作系统通报 自身的状态。所述数据收发模块是虚拟以太网口的核心,负责进行数据收发,完全用 软本文档来自技高网
...

【技术保护点】
一种多核多操作系统之间的通信系统,其特征在于,所述操作系统之间通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的操作系统对应的虚拟接口。

【技术特征摘要】
1、一种多核多操作系统之间的通信系统,其特征在于,所述操作系统之间通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的操作系统对应的虚拟接口。2、 如权利要求1所述多核多操作系统之间的通信系统,其特征在于,所 述虛拟,接口具体包括管理才莫块,用于进行虚拟接口的初始化,并在操作系统启动/关闭时向对 方操作系统通报自身的状态;数据收发模块,用于利用共享内存和核间消息实现数据收发。3、 如权利要求2所述多核多操作系统之间的通信系统,其特征在于,所 述管理模块具体包括初始化子模块,用于进行虚拟接口的初始化; 注册子模块,用于向搡作系统注册虚拟接口;管理子^t块,用于管理虚拟接口的状态,在4喿作系统启动/关闭时向对方 操作系统通报自身的状态。4、 如权利要求2所述多核多操作系统之间的通信系统,其特征在于,所 述数据收发模块具体包括数据发送子模块,用于将数据写入共享内存后,通过核间消息将所述共 享内存的起始地址和数据长度发送给对端操作系统,使所述对端操作系统从 所述共享内存中读取所述数据;数据接收子模块,用于接收来自对端操作系统的核间消息,根据所述核 间消息携带的共享内存的起始地址和数据长度从所述共享内存中读取数据。5、 如权利要求4所述多核多操作系统之间的通信系统,其特征在于,发 送操作系统对所述共享内存具有读写和释放的权限;接收搡作系统对所述共 享内存具有读的权限。6、 一种多核多操作系统之...

【专利技术属性】
技术研发人员:朱而刚
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1