一种实现多操作系统共享存储介质的方法和装置制造方法及图纸

技术编号:4382588 阅读:170 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现多个操作系统共享存储介质的方法和装置。方法包括:多个操作系统中的一个指定的第一操作系统直接操作共享存储介质;多个操作系统中的任一第二操作系统需要对共享存储介质进行操作时,该第二操作系统通过核间通信机制,将操作请求通知第一操作系统;第一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知第二操作系统。本发明专利技术的技术方案简单而高效。

【技术实现步骤摘要】

本专利技术涉及多操作系统
,尤指多核多操作系统

技术介绍
多核处理器由多个核组成,每个核又由若干硬件线程组成。各硬件线程 既有各自独立的硬件资源,如寄存器、 一级緩存等,又有共享的硬件资源, 如内存、二级緩存、外设等。多核处理器的硬件线程在逻辑上相当于一个独立的CPU,硬件线程间的通信机制,如核间消息、核间中断等,使得硬件线程之间的交互变得非常方便。基于多核处理器的以上特点,只要对内存和外设等资源进行合理的规 划,在多核处理器上运行多操作系统是可行的。操作系统一般会使用文件系统,文件系统中的文件保存在闪存(Flash) 、 CF卡或硬盘等非易失性存储 介质中。与内存不同,非易失性存储介质在掉电后,存储的内容不会丢失,因此 非常适合存储操作系统相关的版本文件或日志等文件。但是,访问非易失性 存储介质需要遵循严格的时序关系,例如,擦除Flash需要遵循如图1所示 的时序关系。图1是现有技术中擦除Flash的流程图。如图l所示,擦除开始后,向 Flash芯片写擦除命令序列,轮询数据,判断擦除是否完成,是则擦除结束, 否则继续轮询数据,判断擦除是否完成。可以看出,在Flash的驱动程序中, 必须保证对Flash芯片的互斥访问。在多核系统中运行单操作系统时,不同硬件线程或核可以通过信号量或 自旋锁的方式来保证对Flash芯片等存储介质芯片的互斥访问。而在多核系统中运行多操作系统时,由于不同的硬件线程或核运行不同的操作系统,无 法通过信号量或自旋锁来保证互斥。然而在实际的运行多操作系统的多核处理器系统中,为了节约硬件成本或节省单板的布线空间,有时确实需要多操作系统共享Flash、 CF卡或硬盘 等存储介质,例如共享的存储介质中存放多个操作系统的版本文件或文件系统等。目前,有一种利用网络文件系统(NFS, Network File System)实现多 操作系统共享存储介质的方案。NFS是一项用于在不同机器、不同操作系统 之间通过网络互相共享各自的文件的技术。多操作系统之间利用各自的网口 使用NFS,以A、 B和C三个操作系统为例,搡作系统A作为对外提供NFS 服务的服务器,负责对共享存储介质的操作,操作系统B和C作为NFS客 户端,通过网络和NFS协议操作共享存储介质上的文件。 但是,上述方案存在如下缺点(1 )要求所有需要访问共享存储介质的操作系统都必须支持NFS协议, 然而有些操作系统本身是不支持NFS的,且NFS协议比较复杂,要支持NFS 协议需要开发工作量比较大;(2) NFS通过网络共享各自的文件,这就要牵涉到权限管理和用户管 理,维护复杂度高。(3 )无论是通过虚拟的网口还是物理的网口 ,都需要进行两次以上的 内存搬移,性能相对较低。因此,实现一种简单高效的多操作系统访问共享存储介质的方案,就显 得非常必要了。
技术实现思路
本专利技术提供了 一种实现多操作系统共享存储介质的方法,方法能够简单 高效地实现多搡作系统共享存储介质。本专利技术还提供了 一种实现多操作系统共享存储介质的装置,该装置能够简单高效地实现多操作系统共享存储介质。为达到上述目的,本专利技术的技术方案具体是这样实现的本专利技术公开了 一种实现多个操作系统共享存储介质的方法,该方法应用于运行在多核处理器上的多个操作系统之间,该方法包括所述多个操作系统中的 一个指定的第 一操作系统直接操作共享存储介质;所述多个操作系统中的任一 第二操作系统需要对共享存储介质进行操作时,该第二操作系统通过核间通信机制,将操作请求通知第一操作系统; 第 一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核 间通信机制将操作结果通知所述任一第二操作系统。本专利技术还公开了 一种实现多个操作系统共享存储介质的装置,所述多个 操作系统运行在多核处理器上,该装置包括属于所述多个操作系统中的一 个指定的第 一操作系统的第 一核间数据处理模块和存储介质访问模块,属于 所述多个操作系统中的任一第二操作系统的第二核间数据处理模块,其中, 存储介质访问模块,用于根据第 一核间数据处理模块的指令对共享存储 介质进行操作;第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储 介质进行操作时,通过核间通信机制,将所述任一第二操作系统的操作请求 通知第 一核间数据处理模块;第一核间数据处理模块,用于根据第二核间数据处理模块发送的操作请 求指令存储介质访问模块完成对共享存储介质的操作后,通过核间通信机制 将操作结果通知第二核间数据处理模块。由上述技术方案可见,本专利技术这种多个操作系统中的一个指定的第 一操 作系统直接操作共享存储介质,多个操作系统中的任一第二操作系统需要对 共享存储介质进行操作时,该第二操作系统通过核间通信机制,将操作请求通知第 一操作系统,然后由第一操作系统根据所述操作请求完成对共享存储 介质的操作后,通过核间通信机制将操作结果通知第二操作系统的技术方案相对于现有的利用NFS实现多操作系统共享存储介质的方案,简单而高效。 附图说明图1是现有技术中擦除Flash的流程图2是本专利技术实施例一种实现多操作系统共享存储介质的方法的原理 示意图3是图2中的操作系统B访问共享存储介质S的流程示意图; 图4是本专利技术实施例中操作系统A和操作系统B的共享内存的示意图; 图5是本专利技术实施例一种实现多个操作系统共享存储介质的装置的组 成结构框图。具体实施例方式本专利技术的核心思想是对于运行在多核处理器上的多个操作系统,指定 其中的一个操作系统直接操作共享存储介质,而其它操作系统需要对共享存 储介质进行操作时,通过核间通信机制,将操作请求通知指定的操作系统, 由该指定的操作系统根据所述操作请求完成对共享存储介质的操作后,通过 核间通信机制将搡作结果通知给发送操作请求的操作系统。为使本专利技术的目的、技术方案及优点更加清楚明白,以下对本专利技术进 4iS举细il明。图2是本专利技术实施例 一种实现多操作系统共享存储介质的方法的原理示 意图。如图2所示,在一个多核处理器中假设有三个核核A、核B和核C, 三个核上各自运行一个操作系统,分别为操作系统A、操作系统B和操作 系统C。这三个操作系统需要访问共享存储介质S, S可以是Flash、 CF卡或硬盘等。在图2中,为了保证对共享存储介质S访问的互斥性,本专利技术中只允许操 作系统A直接访问共享存储介质S ,而操作泉统B或C要访问共享存储介质S , 需要通过核间通信机制通知操作系统A,由操作系统A完成对共享存储介质的访问,然后再通过核间通信机制通知操作系统B或C。这样,就把对共享 存储介质的访问问题转换为核间通信问题。图2所示的方法可以使得多核处理器上的多操作系统能够共享 一 个存储 介质,且实现起来简单高效。下面以两个操作系统A和B为例来说明访问共享存储介质的交互过程,操作系统A为实际访问共享存储介质的操作系统,其自身访问共享存储介质的操作与单操作系统访问自身的存储介质相同,是现有技术,这里不再详述。以下重点描述操作系统B访问共享存储介质时的 过程,而操作系统C访问共享存储介质时的过程与操作系统B相同。图3是图2中的操作系统B访问共享存储介质S的流程示意图。如图3所 示,为了完成访问共享存储介质S操作,操作系统B包含核间数据处理模块B 和状态交本文档来自技高网
...

【技术保护点】
一种实现多个操作系统共享存储介质的方法,该方法应用于运行在多核处理器上的多个操作系统之间,其特征在于,该方法包括: 所述多个操作系统中的一个指定的第一操作系统直接操作共享存储介质; 所述多个操作系统中的任一第二操作系统需要对共享存储介质进行操作时,该任一第二操作系统通过核间通信机制,将操作请求通知第一操作系统; 第一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知所述任一第二操作系统。

【技术特征摘要】

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

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

1