CN101477511B - 一种实现多操作系统共享存储介质的方法和装置 - Google Patents

一种实现多操作系统共享存储介质的方法和装置 Download PDF

Info

Publication number
CN101477511B
CN101477511B CN2008102474524A CN200810247452A CN101477511B CN 101477511 B CN101477511 B CN 101477511B CN 2008102474524 A CN2008102474524 A CN 2008102474524A CN 200810247452 A CN200810247452 A CN 200810247452A CN 101477511 B CN101477511 B CN 101477511B
Authority
CN
China
Prior art keywords
operating system
inter
storage medium
internuclear
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008102474524A
Other languages
English (en)
Other versions
CN101477511A (zh
Inventor
朱而刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ziguang Communication Technology Group Co ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2008102474524A priority Critical patent/CN101477511B/zh
Publication of CN101477511A publication Critical patent/CN101477511A/zh
Application granted granted Critical
Publication of CN101477511B publication Critical patent/CN101477511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种实现多个操作系统共享存储介质的方法和装置。方法包括:多个操作系统中的一个指定的第一操作系统直接操作共享存储介质;多个操作系统中的任一第二操作系统需要对共享存储介质进行操作时,该第二操作系统通过核间通信机制,将操作请求通知第一操作系统;第一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知第二操作系统。本发明的技术方案简单而高效。

Description

一种实现多操作系统共享存储介质的方法和装置
技术领域
本发明涉及多操作系统技术领域,尤指多核多操作系统技术领域。
背景技术
多核处理器由多个核组成,每个核又由若干硬件线程组成。各硬件线程既有各自独立的硬件资源,如寄存器、一级缓存等,又有共享的硬件资源,如内存、二级缓存、外设等。多核处理器的硬件线程在逻辑上相当于一个独立的CPU,硬件线程间的通信机制,如核间消息、核间中断等,使得硬件线程之间的交互变得非常方便。
基于多核处理器的以上特点,只要对内存和外设等资源进行合理的规划,在多核处理器上运行多操作系统是可行的。操作系统一般会使用文件系统,文件系统中的文件保存在闪存(Flash)、CF卡或硬盘等非易失性存储介质中。
与内存不同,非易失性存储介质在掉电后,存储的内容不会丢失,因此非常适合存储操作系统相关的版本文件或日志等文件。但是,访问非易失性存储介质需要遵循严格的时序关系,例如,擦除Flash需要遵循如图1所示的时序关系。
图1是现有技术中擦除Flash的流程图。如图1所示,擦除开始后,向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是本发明实施例一种实现多个操作系统共享存储介质的装置的组成结构框图。
具体实施方式
本发明的核心思想是:对于运行在多核处理器上的多个操作系统,指定其中的一个操作系统直接操作共享存储介质,而其它操作系统需要对共享存储介质进行操作时,通过核间通信机制,将操作请求通知指定的操作系统,由该指定的操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知给发送操作请求的操作系统。
为使本发明的目的、技术方案及优点更加清楚明白,以下对本发明进行详细说明。
图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和状态交互模块B;而对于操作系统A而言,因为需要真正访问共享存储介质S,所以需要三个模块:存储介质访问模块、核间数据处理模块A和状态交互模块A。
其中,存储介质访问模块相当于存储介质的驱动程序,进行真正访问存储介质的操作,包括读写数据和获取存储介质信息等。
核间数据处理模块负责处理核间交互的数据,如共享内存的读写、核间消息的处理等。
状态交互模块用于在操作系统启动和关机时向对方通报自己当前的状态,只有操作系统A和B都完成初始化后,操作系统B才能进行访问共享存储介质S的操作。
这里共享内存是指操作系统A和操作系统B都可以访问的内存,在两个操作系统初始化时将物理内存映射到虚拟内存的重叠部分的内存即为共享内存。图4是本发明实施例中操作系统A和操作系统B的共享内存的示意图。共享内存的映射过程是现有技术,这里不再详述。
在本实施例中,在操作系统A和操作系统B的共享内存中存放两部分内容分别为:读写数据队别和共享存储介质信息。
在本实施例中,共享内存中的读数据队列和写数据队列都为头尾相接的环形队列,队列中为已分配好的内存块,一个内存快的大小一般为共享存储介质的一个访问单元的大小,这样可以避免内存分配和释放的开销。为了内存管理的方便,A和B两个操作系统约定,由操作系统B对读数据队列和写数据队列进行管理,将其中的内存块标记为空闲或已用。本实施例中,操作系统A操作共享内存中的读数据队列和写数据队列的条件如表1所示,操作系统B操作共享内存中的读数据队列和写数据队列的条件如表2所示:
  共享内存读数据队列   共享内存写数据队列
  收到写请求消息前   不操作   只读
  收到写请求消息后,发送写应答消息前   不操作   可读可写
  发送写应答消息后   不操作   只读
  收到读请求消息前   只读   不操作
  收到读请求消息后,发送读应答消息前   可读可写   不操作
  发送读应答消息后   只读   不操作
表1
  共享内存数据队列   共享内存写数据队列
  发送写请求消息前   不操作   可读可写
  发送写请求消息后,收到写应答消息前   不操作   只读
  收到写应答消息后   不操作   可读可写
  发送读请求消息前   可读可写   不操作
  发送读请求消息后,收到读应答消息前   只读   不操作
  收到读应答消息后   可读可写   不操作
表2
在本实施例中,共享存储介质信息由操作系统A在启动初始化时写入共享内存(由存储介质访问模块获取共享存储介质信息,并发送给核间数据处理模块A,再由核间数据处理模块A写入共享内存),用于操作系统B的初始化。共享存储介质信息包括:操作系统B使用的共享存储介质的起始地址,扇区号以及存储空间的大小等信息。
在本实施例中,由于读写都采用请求-应答机制,因此核间消息队列中包括:写请求队列、读请求队列、写应答队列和读应答队列,分别用于存放:写请求核间消息、读请求核间消息、写应答核间消息和读应答核间消息。存放核间消息队列的存储空间由核间通信机制提供,是现有技术,这里不再详述。
共享内存中的读数据队列和写数据队列的处理相当于数据平面的操作,而对核间消息队列的处理相当于控制平面的操作,用于访问共享存储介质时的逻辑控制。
在图3中,操作系统B对共享存储介质S访问可以分为如下几个阶段:操作系统启动时的初始化、共享存储介质的读操作、共享存储介质的写操作和操作系统关机时的处理,以下分别介绍:
一、操作系统启动时的初始化
操作系统A启动时的初始化流程包括:
√将物理的共享内存映射到虚拟内存;
√初始化共享内存中的读数据队列和写数据队列信息;
√清空核间消息队列中的读请求队列和写请求队列;
√初始化存储介质访问模块,以使共享存储介质S真正可以访问;
√将共享存储介质S的信息写入共享内存;
√状态交互模块A向操作系统B发送核间中断,通知操作系统B共享存储介质S已可用。
操作系统B启动时的初始化流程包括:
√将物理的共享内存映射到虚拟内存;
√初始化共享内存中的读数据队列和写数据队列,将读数据队列和写数据队列中的内存块都标记为空闲;
√清空核间消息队列中的读应答队列和写应答队列;
√如果有核间中断,在中断处理函数中将共享存储介质S的可用标志置位,以表示共享存储介质S可用;
√从共享内存中读取共享存储介质S的信息,上报给上层软件。
其中,读数据队列、写数据队列、读请求队列、写请求队列、读应答队列、写应答队列以及操作系统A和操作系统B的共享内存都是预先配置好的,操作系统A和操作系统B不需要同时启动。
二、共享存储介质的读操作
操作系统B对共享存储介质S的读操作在图3中用实线箭头表示,具体为:
步骤①,根据记录的共享内存中的读数据队列的信息,操作系统B的核间数据处理模块B从读数据队列中找到一块当前可用的内存块M,将其标记为已用,然后向操作系统A的核间数据处理模块A发送读请求核间消息;该读请求核间消息中包含:操作系统B所要读取的数据在共享存储介质中的起始地址、所要读取的数据长度和内存块M在共享内存中的读数据队列中的位置;
步骤②,核间数据处理模块A从读请求队列中取出所述读请求核间消息,从该核间消息中解析出操作系统B所要读取的数据在共享存储介质中的起始地址、所要读取的数据长度和内存块M在读数据队列中的位置;
步骤③、④和⑤,核间数据处理模块A调用存储介质访问模块的读函数,将操作系统B要读取的共享存储介质S的内容写入内存块M;
步骤⑥,核间数据处理模块A向核间数据处理模块B发送读应答核间消息,将该读应答核间消息写入读应答队列中,其中,该读应答核间消息中包含内存块M的读数据队列中的位置信息;
步骤⑦,核间数据处理模块B从读应答队列中取出读应答核间消息,解析出内存块M在读数据队列中的位置;
步骤⑧,核间数据处理模块B从共享内存的读数据队列中的内存块M中读出数据,交给操作系统B的上层软件处理,并将内存块M标记为空闲。
三、共享存储介质的写操作
步骤①,操作系统B的核间数据处理模块B从共享内存的写数据队列中找到当前第一块空闲的内存块N,将要写入共享存储介质S的数据写入内存块N,将内存块N标记为已用;
步骤②,核间数据处理模块B向核间数据处理模块A发送写请求核间消息,该写请求核间消息中包含:操作系统B所要写入的数据在共享存储介质S中的起始地址、所要写入的数据的长度和内存块N在共享内存中写数据队列中的位置;
步骤③,核间数据处理模块A从写请求队列中取出所述写请求核间消息,解析出操作系统B所要写入的数据在共享存储介质S中的起始地址、所要写入的数据的长度和内存块N在共享内存中写数据队列中的位置;
步骤④、⑤和⑥,核间数据处理模块A从内存块N中取出所要写入的数据,并调用存储介质访问模块的写函数,将从内存块N中取出的数据写入共享存储介质S中的相应位置;
步骤⑦,核间数据处理模块A向核间数据处理模块B发送写应答核间消息,通知操作系统B写操作已完成;其中,该写应答核间消息中包含内存块N在写数据队列中的位置信息;
步骤⑧,操作系统B的核间数据处理模块B从写应答队列中读出写应答核间消息,根据其中的内存块N在写数据队列中的位置,将内存块N标记为空闲。
三、操作系统关机时的处理
操作系统A关机时的处理流程包括:
√状态交互模块A向操作系统B发送核间中断,通知操作系统B禁止再发读请求核间消息和写请求核间消息;
√核间数据处理模块A将读请求队列和写请求队列中的读写请求核间消息处理完;
√操作系统A关机
操作系统B关机时的处理流程与现有技术相同,无特殊处理。
操作系统的重启可以看作是操作系统关机时的处理加上操作系统启动时的初始化,所以不再赘述
通过上述实施例可以看出,在本发明中,利用多核处理器的核间通信机制,解决了运行于多核处理器上的多操作系统访问共享存储介质的互斥问题;利用多核处理器的共享内存机制,解决了多操作系统访问共享存储介质的效率问题;利用多核处理器的核间中断,解决了操作系统启动和关机时如何通知对方操作系统的问题。
本发明是的上述方案,使得多核多操作系统能够共享使用存储介质,降低了硬件成本;实现本发明的方案只需要修改操作系统的底层驱动即可,不需要修改文件系统等上层软件;采用核间消息和共享内存的机制,使得不需要进行内存搬移,数据处理效率高;操作系统启动和关机时采用核间中断通知对方操作系统,提高了系统可靠性。
图5是本发明实施例一种实现多个操作系统共享存储介质的装置的组成结构框图。多个操作系统运行在多核处理器上,则实现该多个操作系统共享存储介质的装置包括:属于所述多个操作系统中的一个指定的第一操作系统的第一核间数据处理模块和存储介质访问模块,属于所述多个操作系统中的任一第二操作系统的第二核间数据处理模块,其中,
存储介质访问模块,用于根据第一核间数据处理模块的指令对共享存储介质进行操作;
第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行操作时,通过核间通信机制,将所述任一第二操作系统的操作请求通知第一核间数据处理模块;
第一核间数据处理模块,用于根据第二核间数据处理模块发送的操作请求指令存储介质访问模块完成对共享存储介质的操作后,通过核间通信机制将操作结果通知第二核间数据处理模块。
在图5中,第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行读操作时,在共享内存中的读数据队列中指定一块可用的内存块,并向第一核间数据处理模块发送读请求核间消息;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;所述读请求核间消息包括:所要读取的数据在共享存储介质中的起始地址、所要读取的数据长度和指定内存块在共享内存中的位置;
第一核间数据处理模块,用于根据所述读请求核间消息,指令存储介质访问模块对共享存储介质进行读访问操作,并将存储介质访问模块读取并返回的数据写入所述指定内存块中,然后向第二核间数据处理模块发送读应答核间消息;所述读应答核间消息中包括所述指定内存块在共享内存中的位置;
第二核间数据处理模块,用于根据所述读应答核间消息,从指定内存块中读取数据,并上交给所述任一第二操作系统的上层软件。
在图5中,第二核间数据处理模块,用于将所述读请求核间消息发送至核间消息队列中的读请求队列中;用于从核间消息队列中的读应答队列中读取所述读应答核间消息;
第一核间数据处理模块,用于从核间消息队列中的读请求队列中读取所述读请求核间消息;用于将所述读应答核间消息发送至核间消息队列中的读应答队列中。
在图5中,第二核间数据处理模块,用于在所述任一第二操作系统启动时的初始化过程中,将所述读数据队列中的内存块都标记为空闲;用于在读数据队列中指定一块可用的内存块时,将该指定内存块标记为已用;用于根据第一核间数据处理模块发送的所述读应答核间消息,从指定内存块中读取数据后,将该指定内存块标记为空闲。
在图5中,第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行写操作时,在共享内存中的写数据队列中指定一块可用的内存块,将要写入共享存储介质的数据写入指定内存块,然后向第一核间数据处理模块发送写请求核间消息;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;所述写请求核间消息包括:所要写入的数据在共享存储介质中的起始地址、所要写入的数据的长度和指定内存块在共享内存中的位置;
第一核间数据处理模块,用于根据第二核间数据处理模块发送的写请求核间消息,从指定内存块中读取数据并发送给存储介质访问模块,指令存储介质访问模块将数据写入共享存储介质中的相应位置,然后向第二核间数据处理模块发送写应答核间消息,以通知第二核间数据处理模块写操作已完成。
在图5中,所述第二核间数据处理模块,用于将所述写请求核间消息发送至核间消息队列中的写请求队列中;用于从核间消息队列中的写应答队列中读取所述写应答核间消息;
所述第一核间数据处理模块,用于从核间消息队列中的写请求队列中读取所述写请求核间消息;用于将所述写应答核间消息发送至核间消息队列中的写应答队列中。
在图5中,所述第二核间数据处理模块,用于在所述任一第二操作系统启动时的初始化过程中,将所述写数据队列中的内存块都标记为空闲;用于在将要写入共享存储介质的数据写入指定内存块时,将该指定内存块标记为已用;用于在接收到第一核间数据处理模块发送的写应答核间消息时,将所述指定内存块标记为空闲。
在图5中,所述第一核间数据处理模块,进一步用于在第一操作系统启动时的初始化过程中,将所述共享存储介质的信息发送到第一操作系统和所述任一第二操作系统的共享内存中;
所述第二核间数据处理模块,进一步用于在所述任一第二操作系统启动时的初始化过程中,从所述共享内存中获取所述共享存储介质的信息。
如图5所示,该装置进一步包括:属于第一操作系统的第一状态交互模块和属于所述任一第二操作系统的第二状态交互模块,其中,
第一状态交互模块,用于在第一操作系统启动时的初始化过程中,向第二状态交互模块发送核间中断,以通知共享存储介质可用;
第二状态交互模块,用于在所述任一第二操作系统启动时的初始化过程中,收到通知共享存储介质可用的核间中断时,将共享存储介质的可用标志置位。
在图5中,第一状态交互模块,用于在第一操作系统关机时,向第二状态交互模块发送核间中断,以禁止发送对共享存储介质的操作请求;
第二状态交互模块,用于在收到禁止发送对共享存储介质的操作请求的核间中断时,向第二核间数据处理模块发送禁止对共享存储介质进行操作的指定。
综上所述,本发明这种多个操作系统中的一个指定的第一操作系统直接操作共享存储介质,多个操作系统中的任一第二操作系统需要对共享存储介质进行操作时,该第二操作系统通过核间通信机制,将操作请求通知第一操作系统,然后由第一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知第二操作系统的技术方案相对于现有的利用NFS实现多操作系统共享存储介质的方案,简单而高效。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种实现多个操作系统共享存储介质的方法,该方法应用于运行在多核处理器上的多个操作系统之间,其特征在于,该方法包括:
所述多个操作系统中的一个指定的第一操作系统直接操作共享存储介质;
所述多个操作系统中的任一第二操作系统需要对共享存储介质进行操作时,该任一第二操作系统通过核间通信机制,将操作请求通知第一操作系统;
第一操作系统根据所述操作请求完成对共享存储介质的操作后,通过核间通信机制将操作结果通知所述任一第二操作系统。
2.如权利要求1所述的方法,其特征在于,所述任一第二操作系统需要对共享存储介质进行读操作时,所述任一第二操作系统通过核间通信机制,将读操作请求通知第一操作系统,以及所述第一操作系统根据所述读操作请求完成对共享存储介质的读操作后,通过核间通信机制将读操作结果通知所述任一第二操作系统包括:
所述任一第二操作系统在共享内存中的读数据队列中指定一块可用的内存块,并向第一操作系统发送读请求核间消息;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;所述读请求核间消息包括:所要读取的数据在共享存储介质中的起始地址、所要读取的数据长度和指定内存块在共享内存中的位置;
第一操作系统根据所述读请求核间消息,从共享存储介质中读取相应的数据,并写入所述指定内存块中;
第一操作系统向所述任一第二操作系统发送读应答核间消息;所述读应答核间消息中包括所述指定内存块在共享内存中的位置;
所述任一第二操作系统根据读应答核间消息,从指定内存块中读取数据。
3.如权利要求2所述的方法,其特征在于,
所述任一第二操作系统向第一操作系统发送读请求核间消息包括:所述任一第二操作系统将读请求核间消息发送至核间消息队列中的读请求队列中;所述第一操作系统从所述读请求队列中读取所述读请求核间消息;
所述第一操作系统向所述任一第二操作系统发送读应答核间消息包括:所述第一操作系统将读应答核间消息发送至核间消息队列中的读应答队列中;所述任一第二操作系统从所述读应答队列中读取所述读应答核间消息;
所述共享内存中的读数据队列是首尾相接的环形队列。
4.如权利要求2所述的方法,其特征在于,该方法进一步包括:
所述任一第二操作系统在启动时的初始化过程中,将所述读数据队列中的内存块都标记为空闲;
所述任一第二操作系统在读数据队列中指定一块可用的内存块时,将该指定内存块标记为已用;
所述任一第二操作系统根据读应答核间消息,从指定内存块中读取数据后,将该指定内存块标记为空闲。
5.如权利要求1所述的方法,其特征在于,所述任一第二操作系统需要对共享存储介质进行写操作时,所述任一第二操作系统通过核间通信机制,将写操作请求通知第一操作系统,以及所述第一操作系统根据所述写操作请求完成对共享存储介质的写操作后,通过核间通信机制将写操作结果通知所述任一第二操作系统包括:
所述任一第二操作系统在共享内存中的写数据队列中指定一块可用的内存块,将要写入共享存储介质的数据写入指定内存块;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;
所述任一第二操作系统向第一操作系统发送写请求核间消息;所述写请求核间消息包括:所要写入的数据在共享存储介质中的起始地址、所要写入的数据的长度和指定内存块在共享内存中的位置;
第一操作系统根据所述写请求核间消息,从指定内存块中读取数据并写入共享存储介质中的相应位置;
第一操作系统向所述任一第二操作系统发送写应答核间消息,以通知第二操作系统写操作已完成。
6.如权利要求5所述的方法,其特征在于,
所述任一第二操作系统向第一操作系统发送写请求核间消息包括:所述任一第二操作系统将写请求核间消息发送至核间消息队列中的写请求队列中;所述第一操作系统从所述写请求队列中读取所述写请求核间消息;
所述第一操作系统向所述任一第二操作系统发送写应答核间消息包括:所述第一操作系统将写应答核间消息发送至核间消息队列中的写应答队列中;所述任一第二操作系统从所述写应答队列中读取所述写应答核间消息;
所述共享内存中的写数据队列是首尾相接的环形队列。
7.如权利要求5所述的方法,其特征在于,该方法进一步包括:
所述任一第二操作系统在启动时的初始化过程中,将所述写数据队列中的内存块都标记为空闲;
所述任一第二操作系统将要写入共享存储介质的数据写入指定内存块时,将该指定内存块标记为已用;
所述任一第二操作系统在接收到第一操作系统发送的写应答核间消息时,将所述指定内存块标记为空闲。
8.如权利要求1至7中任一项所述的方法,其特征在于,该方法进一步包括:
所述第一操作系统在启动时的初始化过程中,将所述共享存储介质的信息发送到自身与所述任一第二操作系统的共享内存中;
所述任一第二操作系统在启动时的初始化过程中,从共享内存中获取所述共享存储介质的信息。
9.如权利要求8所述的方法,其特征在于,该方法进一步包括:
所述第一操作系统在启动时的初始化过程中,向所述任一第二操作系统发送核间中断,以通知所述任一第二操作系统共享存储介质可用;
所述任一第二操作系统收到所述核间中断后,将共享存储介质的可用标志置位;
所述第一操作系统在关机时,向所述任一第二操作系统发送核间中断,以禁止所述任一第二操作系统发送对共享存储介质的操作请求。
10.一种实现多个操作系统共享存储介质的装置,所述多个操作系统运行在多核处理器上,其特征在于,该装置包括:属于所述多个操作系统中的一个指定的第一操作系统的第一核间数据处理模块和存储介质访问模块,属于所述多个操作系统中的任一第二操作系统的第二核间数据处理模块,其中,
存储介质访问模块,用于根据第一核间数据处理模块的指令对共享存储介质进行操作;
第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行操作时,通过核间通信机制,将所述任一第二操作系统的操作请求通知第一核间数据处理模块;
第一核间数据处理模块,用于根据第二核间数据处理模块发送的操作请求指令存储介质访问模块完成对共享存储介质的操作后,通过核间通信机制将操作结果通知第二核间数据处理模块。
11.如权利要求10所述的装置,其特征在于,
第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行读操作时,在共享内存中的读数据队列中指定一块可用的内存块,并向第一核间数据处理模块发送读请求核间消息;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;所述读请求核间消息包括:所要读取的数据在共享存储介质中的起始地址、所要读取的数据长度和指定内存块在共享内存中的位置;
第一核间数据处理模块,用于根据所述读请求核间消息,指令存储介质访问模块对共享存储介质进行读访问操作,并将存储介质访问模块读取并返回的数据写入所述指定内存块中,然后向第二核间数据处理模块发送读应答核间消息;所述读应答核间消息中包括所述指定内存块在共享内存中的位置;
第二核间数据处理模块,用于根据所述读应答核间消息,从指定内存块中读取数据,并上交给所述任一第二操作系统的上层软件。
12.如权利要求11所述的装置,其特征在于,
所述第二核间数据处理模块,用于将所述读请求核间消息发送至核间消息队列中的读请求队列中;用于从核间消息队列中的读应答队列中读取所述读应答核间消息;
所述第一核间数据处理模块,用于从核间消息队列中的读请求队列中读取所述读请求核间消息;用于将所述读应答核间消息发送至核间消息队列中的读应答队列中。
13.如权利要求11所述的装置,其特征在于,
所述第二核间数据处理模块,用于在所述任一第二操作系统启动时的初始化过程中,将所述读数据队列中的内存块都标记为空闲;用于在读数据队列中指定一块可用的内存块时,将该指定内存块标记为已用;用于根据第一核间数据处理模块发送的所述读应答核间消息,从指定内存块中读取数据后,将该指定内存块标记为空闲。
14.如权利要求10所述的装置,其特征在于,
第二核间数据处理模块,用于在所述任一第二操作系统需要对共享存储介质进行写操作时,在共享内存中的写数据队列中指定一块可用的内存块,将要写入共享存储介质的数据写入指定内存块,然后向第一核间数据处理模块发送写请求核间消息;所述共享内存是第一操作系统和所述任一第二操作系统的共享内存;所述写请求核间消息包括:所要写入的数据在共享存储介质中的起始地址、所要写入的数据的长度和指定内存块在共享内存中的位置;
第一核间数据处理模块,用于根据第二核间数据处理模块发送的写请求核间消息,从指定内存块中读取数据并发送给存储介质访问模块,指令存储介质访问模块将数据写入共享存储介质中的相应位置,然后向第二核间数据处理模块发送写应答核间消息,以通知第二核间数据处理模块写操作已完成。
15.如权利要求14所述的装置,其特征在于,
所述第二核间数据处理模块,用于将所述写请求核间消息发送至核间消息队列中的写请求队列中;用于从核间消息队列中的写应答队列中读取所述写应答核间消息;
所述第一核间数据处理模块,用于从核间消息队列中的写请求队列中读取所述写请求核间消息;用于将所述写应答核间消息发送至核间消息队列中的写应答队列中。
16.如权利要求14所述的装置,其特征在于,
所述第二核间数据处理模块,用于在所述任一第二操作系统启动时的初始化过程中,将所述写数据队列中的内存块都标记为空闲;用于在将要写入共享存储介质的数据写入指定内存块时,将该指定内存块标记为已用;用于在接收到第一核间数据处理模块发送的写应答核间消息时,将所述指定内存块标记为空闲。
17.如权利要求10至16中任一项所述的装置,其特征在于,
所述第一核间数据处理模块,进一步用于在第一操作系统启动时的初始化过程中,将所述共享存储介质的信息发送到第一操作系统和所述任一第二操作系统的共享内存中;
所述第二核间数据处理模块,进一步用于在所述任一第二操作系统启动时的初始化过程中,从所述共享内存中获取所述共享存储介质的信息。
18.如权利要求17所述的装置,其特征在于,该装置进一步包括:属于第一操作系统的第一状态交互模块和属于所述任一第二操作系统的第二状态交互模块,其中,
第一状态交互模块,用于在第一操作系统启动时的初始化过程中,向第二状态交互模块发送核间中断,以通知共享存储介质可用;
第二状态交互模块,用于在所述任一第二操作系统启动时的初始化过程中,收到通知共享存储介质可用的核间中断时,将共享存储介质的可用标志置位;
第一状态交互模块,用于在第一操作系统关机时,向第二状态交互模块发送核间中断,以禁止发送对共享存储介质的操作请求;
第二状态交互模块,用于在收到禁止发送对共享存储介质的操作请求的核间中断时,向第二核间数据处理模块发送禁止对共享存储介质进行操作的指令。
CN2008102474524A 2008-12-31 2008-12-31 一种实现多操作系统共享存储介质的方法和装置 Active CN101477511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102474524A CN101477511B (zh) 2008-12-31 2008-12-31 一种实现多操作系统共享存储介质的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102474524A CN101477511B (zh) 2008-12-31 2008-12-31 一种实现多操作系统共享存储介质的方法和装置

Publications (2)

Publication Number Publication Date
CN101477511A CN101477511A (zh) 2009-07-08
CN101477511B true CN101477511B (zh) 2010-08-25

Family

ID=40838229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102474524A Active CN101477511B (zh) 2008-12-31 2008-12-31 一种实现多操作系统共享存储介质的方法和装置

Country Status (1)

Country Link
CN (1) CN101477511B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622329A (zh) * 2011-02-11 2012-08-01 微软公司 多核计算机中的远程核操作
CN105573825A (zh) * 2014-10-11 2016-05-11 华为技术有限公司 一种跨操作系统的任务间同步的方法及装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110196B (zh) * 2009-12-25 2015-04-29 中国长城计算机深圳股份有限公司 并行运行多用户操作系统间的数据安全传输方法及系统
CN102567275B (zh) * 2010-12-08 2014-01-08 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN102571912B (zh) * 2010-12-08 2014-09-10 中国科学院声学研究所 一种实现基于多核处理器和混合操作系统的卸载协议栈的方法
CN103324561B (zh) * 2012-03-19 2018-04-27 联想(北京)有限公司 信息提醒方法及应用该方法的电子系统
CN104426958B (zh) * 2013-08-29 2018-03-16 华为技术有限公司 一种通信方法、装置及系统
CN103942178A (zh) * 2014-03-03 2014-07-23 浙江大学 多核处理器上实时操作系统与非实时操作系统之间的通信方法
CN105474194B (zh) * 2014-07-31 2018-06-08 华为技术有限公司 通信系统和通信方法
CN105577904B (zh) * 2015-03-27 2019-04-12 酷派软件技术(深圳)有限公司 一种文件共享方法及移动终端
CN104951374A (zh) * 2015-06-15 2015-09-30 中国航空无线电电子研究所 一种基于多操作系统的多内核处理装置
JP6458146B2 (ja) * 2015-07-08 2019-01-23 株式会社日立製作所 計算機及びメモリ領域管理方法
CN107798016B (zh) * 2016-09-06 2019-06-07 北京百度网讯科技有限公司 用于机器人操作系统的数据传输方法和装置
CN106445702A (zh) * 2016-09-21 2017-02-22 乐视控股(北京)有限公司 多系统通信方法及终端
CN107077377B (zh) * 2016-12-29 2020-08-04 深圳前海达闼云端智能科技有限公司 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品
CN106933682A (zh) * 2017-02-10 2017-07-07 华为机器有限公司 消息处理的方法及终端
CN108932160A (zh) * 2017-10-10 2018-12-04 北京猎户星空科技有限公司 多操作系统控制方法、装置、电子设备和计算机存储介质
CN108108199A (zh) * 2017-12-21 2018-06-01 北京东土科技股份有限公司 一种多核cpu上多操作系统启动方法及装置
CN109347942B (zh) * 2018-10-09 2019-08-23 浙江明度智控科技有限公司 一种工业网关数据补报方法和工业网关
CN110119286A (zh) * 2019-04-11 2019-08-13 厦门亿联网络技术股份有限公司 一种基于模拟Flash芯片的固件引导实现方法
CN110134660A (zh) * 2019-05-22 2019-08-16 苏州浪潮智能科技有限公司 一种数据访问方法、装置、设备及计算机可读存储介质
CN110471870B (zh) * 2019-08-14 2022-01-07 Oppo广东移动通信有限公司 多系统运行的方法、装置、电子设备及存储介质
CN111062054A (zh) * 2019-12-13 2020-04-24 重庆擎华信息科技有限公司 一种数据处理的方法、装置及系统
CN111290973B (zh) * 2020-05-11 2020-11-27 深圳市科信通信技术股份有限公司 数据写入方法、装置、计算机设备及存储介质
CN111949371B (zh) * 2020-08-14 2022-07-22 苏州浪潮智能科技有限公司 一种命令信息传输方法、系统、装置及可读存储介质
CN113377703B (zh) * 2021-06-23 2024-04-09 上海擎昆信息科技有限公司 一种核间通信方法
CN114416387A (zh) * 2021-12-06 2022-04-29 合肥杰发科技有限公司 基于同构多核的多操作系统及通信方法、芯片
CN114579072A (zh) * 2022-03-02 2022-06-03 南京芯驰半导体科技有限公司 一种跨多操作系统的显示投屏方法及装置
CN115309715A (zh) * 2022-10-12 2022-11-08 亿咖通(湖北)技术有限公司 域间数据访问方法、车载系统、处理设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622329A (zh) * 2011-02-11 2012-08-01 微软公司 多核计算机中的远程核操作
CN102622329B (zh) * 2011-02-11 2015-12-02 微软技术许可有限责任公司 多核计算机中的远程核操作
US9471532B2 (en) 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
CN105573825A (zh) * 2014-10-11 2016-05-11 华为技术有限公司 一种跨操作系统的任务间同步的方法及装置

Also Published As

Publication number Publication date
CN101477511A (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
CN101477511B (zh) 一种实现多操作系统共享存储介质的方法和装置
CN109983449B (zh) 数据处理的方法和存储系统
US8924659B2 (en) Performance improvement in flash memory accesses
CN102340530B (zh) 一种存储空间接管和数据迁移的方法和系统
CN102308274B (zh) 一种访问关机硬盘的方法、网卡和硬盘卡
CN104346317B (zh) 共享资源访问方法和装置
CN105190567A (zh) 用于管理存储系统快照的系统和方法
CN104603739A (zh) 对并行存储的块级访问
CN103034616B (zh) 一种多个操作系统访问存储介质的方法、计算机
CN102298561A (zh) 一种对存储设备进行多通道数据处理的方法、系统和装置
EP3296836B1 (en) Computer device and data read-write method for computer device
CN104063331A (zh) 处理器、共享存储区域访问方法和锁管理器
CN103955441A (zh) 一种设备管理系统、方法及一种io扩展接口
CN111190749A (zh) 服务器以及bmc和bios之间数据交换的方法
CN109271110A (zh) 存储系统中存储数据的写入方法、写入系统及相关装置
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
CN102843435A (zh) 一种在集群系统中存储介质的访问、响应方法和系统
CN103500108A (zh) 系统内存访问方法、节点控制器和多处理器系统
CN103577469A (zh) 数据库连接复用方法和装置
CN112596669A (zh) 一种基于分布式存储的数据处理方法及装置
CN101251831B (zh) 支持主从设备互换的移动存储器和主从设备互换方法
CN108153489B (zh) 一种nand闪存控制器的虚拟数据缓存管理系统与方法
US10860334B2 (en) System and method for centralized boot storage in an access switch shared by multiple servers
US20230244390A1 (en) Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices
CN107480083A (zh) 数据存储访问设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230816

Address after: 24th Floor, Block B, Zhizhen Building, No. 7 Zhichun Road, Haidian District, Beijing, 100088

Patentee after: Beijing Ziguang Communication Technology Group Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right