一种多个操作系统访问存储介质的方法、计算机的金沙现金网平台

文档序号:6383605
专利名称:一种多个操作系统访问存储介质的方法、计算机的金沙现金网平台
技术领域
本发明涉及多核处理领域,尤其涉及一种多个操作系统访问存储介质的方法、计算机。
背景技术
随着计算机技术的不断发展,出现了多核处理器技术,多核处理器整合多核低频率的处理核心并行工作,可以保证多任务并发处理,同时由于每个处理核心主频较低,可以降低处理器的功耗和发热,已经被广泛应用于网络技术、并行计算、嵌入式系统等多个计算机领域。为了最大程度的发挥多核处理器的性能,需要在多个处理核心上部署分层软件结构,包括控制层面数据层面。其中控制层面运行在通用操作系统上,数据层面运行在嵌入式系统或者不含文件系统的操作系统上。通用操作系统包含文件系统,可以使用各类第三方软件,用于管理多核处理器以及与各类外围扩展设备互联,嵌入式操作系统具有较高的实时性,可以高效的完成数据处理,但是不包含文件系统,不能运行第三发软件,无法直接访问其他的外围设备。因此,当多核处理器与磁盘阵列互联时,只有运行于控制层面的包含文件系统的通用操作系统可以通过文件系统连接、挂载、访问磁盘阵列,而运行于数据层面的嵌入式系统无法访问磁盘阵列。

发明内容
针对上述问题,本发明实施例提出一种多个操作系统访问存储介质的方法、计算机。在第一方面,本发明实施例提出一种多个操作系统访问存储介质的方法,所述多个操作系统运行在一颗多核处理器上,每个操作系统使用一个或多个处理核心,每个操作系统使用的处理核心互不相同,各个操作系统之间使用核间消息通讯,所述操作系统包含或不包含文件系统,包含文件系统的操作系统访问存储介质,将读取的数据写入不含文件系统的操作系统管理的内存空间,所述不含文件系统的操作系统通过所述内存空间接收和存储所述数据。在第二方面,本发明实施例提出一种计算机,所述计算机包含多个操作系统,所述多个操作系统运行在一颗多核处理器上,每个操作系统使用一个或多个处理核心,每个操作系统使用的处理核心互不相同,各个操作系统之间使用核间消息通讯,所述操作系统包含或不包含文件系统,所述包含文件系统的操作系统用于访问存储介质,将读取的数据写入不含文件系统的操作系统管理的内存空间,所述不含文件系统的操作系统用于通过所述内存空间接收和存储所述数据。本发明实施例通过共享文件系统,实现了多个操作系统共享存储介质,有效提高了存储介质的读取效率。


图1是本发明实施例多个操作系统共享文件系统读取存储介质的示意图;图2是本发明实施例数据写入运行流程图;图3是本发明实施例数据发送运行流程图;图4是本发明实施例数据接收运行流程图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。实施例选用Cavium Networks公司的OCTEON系列处理器平台。使用Linux操作系统作为本发明中的包含文件系统的操作系统,提供文件系统以连接、读取存储介质,使用Cavium Networks公司提供的简单执行环境SE (Simple Executive)作为本发明中的不含文件系统的操作系统,提供共享内存和传输内存。Linux操作系统108和简单执行环境SE (Simple Executive) 126所运行的处理核心互不相交,且这2个操作系统分别管理独立、不重叠的内存空间。其中Linux操作系统108可运行在处理器的一个或多个处理核心上,通过文件系统102连接存储介质101,同时运行数据写入模块105和数据发送模块115。数据写入模块负责建立共享数据队列111,通过文件系统102读取存储介质101中的数据,将数据写入共享数据队列111中单元结构体110包含的共享内存116。数据发送模块115负责读取共享数据队列111中单元结构体110包含的共享内存116,并将数据写入传输内存125,发送给简单执行环境 SE (Simple Executive) 126。简单执行环境SE (Simple Executive) 126可运行在处理器的一个或多个处理核心上,提供共享内存121和传输内存125,并运行数据接收模块124。数据接收模块124负责维护传输内存125和共享内存121,并相应Linux操作系统108的核间消息,由传输内存125中读取数据。Linux操作系统108向简单执行环境SE (Simple Executive) 126传输数据的步骤是步骤201、Linux操作系统108通过文件系统102连接存储介质101。步骤202、数据写入模块105向简单执行环境SE (Simple Executive)126发送核间消息申请共享内存121。步骤401、数据接收模块124读取核间消息。步骤403、数据接收模块124确认为Linux操作系统108申请共享内存121的核间消息。步骤406、数据接收模块124分配共享内存121,并将共享内存121的物理地址通过核间消息返回给Linux操作系统108。步骤203、数据写入模块105解析核间消息中的共享内存121物理地址,将物理地址存入共享数据队列111中的单元结构体110。步骤204、数据写入模块124判断共享数据队列111中单元结构体110的数量是否为N,如果为N则表示共享数据队列111建立完成,可以进行下一步骤,否则返回执行步骤202。
步骤205、数据写入模块124根据写指针107定位到对应的单元结构体110,如果该单元结构体110中的共享内存加锁位118为0,则表示单元结构体110中的共享内存121可以写入数据,否则重复执行步骤205。步骤206、数据写入模块124通过文件系统102从存储介质101中读取数据。步骤207、数据写入模块124将数据写入共享内存121。步骤208、数据写入模块124将共享内存加锁位118设置为I。步骤209、数据写入模块124将写指针107指向下一个单元结构体110,并重复执行步骤205。步骤301、数据发送模块115等待数据写入模块105完成共享数据队列111的建立。步骤302、数据发送模块115根据读指针109定位到对应的单元结构体110,如果该单元结构体110中的共享内存加锁位118为I,则表示单元结构体110中的共享内存121可以读出数据,否则重复执行步骤302。步骤303、数据发送模块115向简单执行环境SE (Simple Executive)126发送核间消息122申请传输内存125。步骤401、数据接收模块124读取核间消息。步骤404、数据接收模块124确认为Linux操作系统108申请传输内存125的核间消息。步骤407、数据接收模块124分配传输内存125,并将传输内存125的物理地址通过核间消息返回给Linux操作系统108。步骤304、数据发送模块115解析核间消息中的传输内存125物理地址。步骤305、数据发送模块115读取单元结构体110中共享内存121中的数据。步骤306、数据发送模块115将数据复制到传输内存125中。步骤307、数据发送模块115发送核间消息122通知简单执行环境SE (SimpleExecutive) 126 接收数据。步骤308、数据发送模块115将共享内存加锁位118设置为O。步骤309、数据发送模块115将读指针109指向下一个单元结构体110,并重复执行步骤302。步骤405、数据接收模块124确认为Linux操作系统108返回传输内存125的核间消息,并解析核间消息中传输内存的物理地址。步骤408、数据接收模块124读取传输内存125中的数据,释放传输内存125,重复执行步骤401。本发明实施例通过共享文件系统,实现了多个操作系统共享存储介质,有效提高了存储介质的读取效率。需要指出的是,以上所述仅为本发明在多核处理器上多操作系统通过共享文件系统读取存储介质方法的较佳实施例,并非用来限定本发明的实施范围,具有专业知识基础的技术人员可以由以上实施实例实现本发明,因此凡是根据本发明的精神和原则之内所做的任何的变化、修改与改进,都被本发明的专利范围所覆盖。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种多个操作系统访问存储介质的方法,所述多个操作系统运行在一颗多核处理器上,其特征在于每个操作系统使用一个或多个处理核心,每个操作系统使用的处理核心互不相同,各个操作系统之间使用核间消息通讯,所述操作系统包含或不包含文件系统,包含文件系统的操作系统访问存储介质,将读取的数据写入不含文件系统的操作系统管理的内存空间,所述不含文件系统的操作系统通过所述内存空间接收和存储所述数据。
2.如权利要求1所述的一种多个操作系统访问存储介质的方法,其特征在于包含文件系统的操作系统建立共享数据队列,共享数据队列由单元结构体链表构成,单元结构体包含共享内存物理地址、共享内存加锁位、指向下一个单元结构体的指针,所述共享内存由传送数据的包含文件系统的操作系统向接收数据的不含文件系统的操作系统申请。
3.如权利要求2所述的一种多个操作系统访问存储介质的方法,其特征在于由包含文件系统的操作系统发起数据传输,将共享数据队列中共享内存的数据拷贝至不含文件系统的操作系统提供的传输内存,以及通知所述不含文件系统的操作系统读取所述数据。
4.如权利要求2-3之一所述的一种多个操作系统访问存储介质的方法,其特征在于所述包含文件系统的操作系统传输数据包含以下步骤 通过核间消息向不含文件系统的操作系统申请共享内存,将共享内存物理地址存入共享数据队列; 使用写指针轮询所述共享数据队列,写指针指向所述共享数据队列的首部或者上一次轮询结束时写指针的位置,向加锁位为O的共享内存中写入数据,写入后将该加锁位设置为1,将写指针指向下一个单元结构体并重复上述写入过程,当访问到加锁位为I的单元结构体时结束所述轮询,所述加锁位为O表示该共享内存未写入数据或者写入的数据已经传递完毕,所述加锁位为I表示该共享内存已经写入数据或者写入的数据传递尚未完毕; 使用读指针轮询共享数据队列,读指针指向所述共享数据队列的首部或者上一次轮询结束时读指针的位置,如果加锁位为1,向不含文件系统的操作系统申请传输内存,将共享内存中的数据拷贝至传输内存,通知不含文件系统的操作系统读取数据,拷贝后将加锁位设置为O,将读指针指向下一个单元结构体并重复上述读取过程,当访问到加锁位为I的单元结构体时结束所述轮询。
5.根据权利要求2-3之一所述的一种多个操作系统访问存储介质的方法,其特征在于不含文件系统的操作系统接收数据的步骤为 响应包含文件系统的操作系统申请传输内存的核间消息,并将传输内存的物理地址返回给所述包含文件系统的操作系统; 响应包含文件系统的操作系统的数据传输核间消息,从传输内存中读取数据,并释放传输内存。
6.一种计算机,所述计算机包含多个操作系统,所述多个操作系统运行在一颗多核处理器上,其特征在于每个操作系统使用一个或多个处理核心,每个操作系统使用的处理核心互不相同,各个操作系统之间使用核间消息通讯,所述操作系统包含或不包含文件系统,所述包含文件系统的操作系统用于访问存储介质,将读取的数据写入不含文件系统的操作系统管理的内存空间,所述不含文件系统的操作系统用于通过所述内存空间接收和存储所述数据。
7.如权利要求6所述的一种计算机,其特征在于所述包含文件系统的操作系统包括 共享数据队列建立模块,用于建立共享数据队列,所述共享数据队列由单元结构体链表构成,单元结构体包含共享内存物理地址、共享内存加锁位、指向下一个单元结构体的指针,所述共享内存由传送数据的包含文件系统的操作系统向接收数据的不含文件系统的操作系统申请; 数据写入模块,用于通过核间消息向不含文件系统的操作系统申请共享内存,将共享内存物理地址存入共享数据队列,以及使用写指针轮询所述共享数据队列,写指针指向所述共享数据队列的首部或者上一次轮询结束时写指针的位置,向加锁位为O的共享内存中写入数据,写入后将该加锁位设置为1,将写指针指向下一个单元结构体并重复上述写入过程,当访问到加锁位为I的单元结构体时结束所述轮询,所述加锁位为O表示该共享内存未写入数据或者写入的数据已经传递完毕,所述加锁位为I表示该共享内存已经写入数据或者写入的数据传递尚未完毕; 数据发送模块,用于使用读指针轮询共享数据队列,读指针指向所述共享数据队列的首部或者上一次轮询结束时读指针的位置,如果加锁位为1,向不含文件系统的操作系统申请传输内存,将共享内存中的数据拷贝至传输内存,通知不含文件系统的操作系统读取数据,拷贝后将加锁位设置为O,将读指针指向下一个单元结构体并重复上述读取过程,当访问到加锁位为I的单元结构体时结束所述轮询。
8.如权利要求6所述的一种计算机,其特征在于所述不含文件系统的操作系统包括 数据接收模块,用于响应包含文件系统的操作系统申请传输内存的核间消息,并将传输内存的物理地址返回给所述包含文件系统的操作系统,以及响应包含文件系统的操作系统的数据传输核间消息,从传输内存中读取数据,并释放传输内存。
全文摘要
本发明实施例涉及一种多个操作系统访问存储介质的方法、计算机。所述多个操作系统运行在一颗多核处理器上,每个操作系统使用一个或多个处理核心,每个操作系统使用的处理核心互不相同,各个操作系统之间使用核间消息通讯,所述操作系统包含或不包含文件系统,包含文件系统的操作系统访问存储介质,将读取的数据写入不含文件系统的操作系统管理的内存空间,所述不含文件系统的操作系统通过所述内存空间接收和存储所述数据。本发明实施例通过共享文件系统,实现了多个操作系统共享存储介质,有效提高了存储介质的读取效率。
文档编号G06F15/167GK103034616SQ20121052650
公开日2013年4月10日 申请日期2012年12月7日 优先权日2012年12月7日
发明者郭秀岩, 张武, 尚秋里, 王劲林 申请人:中国科学院声学研究所, 北京中科智网科技有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1