(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 101847105 A
(43)申请公布日 2010.09.29
(21)申请号 CN200910080933.5
(22)申请日 2009.03.26
(71)申请人 联想(北京)有限公司
    地址 100085 北京市海淀区上地信息产业基地创业路6号
(72)发明人 陈军 席振新
(74)专利代理机构 北京银龙知识产权代理有限公司
    代理人 许静
(51)Int.CI
      G06F9/455
      G06F12/08
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      一种计算机及多操作系统共享内存的方法
(57)摘要
      本发明提供一种计算机及多操作系统共享内存的方法,其中计算机包括:硬件平台;运行在硬件平台上的虚拟机管理器;运行在虚拟机管理器上的第一操作系统和第二操作系统;虚拟机管理器包括:分配模块,用于在物理内存中为第一操作系统和第二操作系统分配一具有连续内存地址的共享内存;第一操作模块用于接收第一操作系统发出的访问数据,并将访问数据直接存储在共享内存中,或者将共享内存中存储的访问结果数据发送至第一操作系统;第二操作模块用于将访问数据发送至第二操作系统,接收第二操作系统根据访问数据返回的访问结果数据,并将访问结果数据直接存储在共享内存中。本发明的方案大大提高了计算机的多操作系统之间数据传输的效率。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种计算机,包括:
硬件平台,具有物理内存和硬件设备;
虚拟机管理器,运行在所述硬件平台上;
第一操作系统,运行在所述虚拟机管理器上;
第二操作系统,运行在所述虚拟机管理器上;其特征在于,
两台电脑如何共享
所述虚拟机管理器包括:
分配模块,用于在所述物理内存中,为所述第一操作系统和所述第二操作系统分配一共享内存,所述共享内存具有连续内存地址;
第一操作模块,用于接收所述第一操作系统发出的访问数据,并将所述访问数据直接存储在所述共享内存中,或者将所述共享内存中存储的访问结果数据发送至所述第一操作系统;
第二操作模块,用于将所述访问数据发送至所述第二操作系统,接收所述第二操作系统根据所述访问数据返回的所述访问结果数据,并将所述访问结果数据直接存储在所述共享内存中。
2.根据权利要求1所述的计算机,其特征在于,所述第一操作系统包括:
第一获取模块,用于获取所述共享内存的机器物理地址,并将所述共享内存的机器物理地址映射成所述第一操作系统能够直接访问的第一虚拟地址;
第一处理模块,用于根据所述第一虚拟地址将所述访问数据发送给所述第一操作模块,并存储到所述共享内存中,或者从所述第一操作模块接收所述访问结果数据。
3.根据权利要求2所述的计算机,其特征在于,所述第二操作系统包括:
第二获取模块,用于获取所述共享内存的机器物理地址,并将所述共享内存的机器物理地址映射成所述第二操作系统能够直接访问的第二虚拟地址;
第二处理模块,用于根据所述第二虚拟地址从所述第二操作模块接收所述访问数据,或者将所述访问结果数据发送给所述第二操作模块,并存储到所述共享内存中。
4.根据权利要求1所述的计算机,其特征在于,所述第一操作系统包括:
第三获取模块,用于获取所述共享内存中一连续内存段的机器物理地址,并将所述内存段的机器物理地址映射成所述第一操作系统能够直接访问的第三虚拟地址;
第三处理模块,用于根据所述第三虚拟地址将所述访问数据发送给所述第一操作模块,并存储到所述内存段中,或者从所述第一操作模块接收所述访问结果数据。
5.根据权利要求4所述的计算机,其特征在于,所述第二操作系统包括:
第四获取模块,用于从所述第三获取模块获取所述内存段的机器物理地址,并将所述内存段的机器物理地址映射成所述第二操作系统能够直接访问的第四虚拟地址;
第四处理模块,用于根据所述第四虚拟地址从所述第二操作模块接收所述访问数据,或者将所述访问结果数据发送给所述第二操作模块,并存储到所述内存段中。
6.根据权利要求1-5任一项所述的计算机,其特征在于,所述访问数据为:所述第一操作系统对所述硬件设备的访问数据,所述访问结果数据为:所述第二操作系统根据所述访问数据从所述硬件设备返回的访问结果数据;或者
所述访问数据为:所述第一操作系统对所述第二操作系统的访问数据,所述访问结果数据为:根据所述访问数据从所述第二操作系统返回的访问结果数据。
7.一种多操作系统共享内存的方法,所述方法运用在包括有第一操作系统、第二操作系统和虚拟机管理器的计算机中,其特征在于,包括:
接收所述第一操作系统发出的访问数据;
将所述访问数据直接存储在一共享内存中,所述共享内存是所述虚拟机管理器在所述计算机的物理内存中,为所述第一操作系统和所述第二操作系统分配的一块具有连续内存地址的内存;
将所述访问数据发送至所述第二操作系统;
接收访问结果数据,所述访问结果数据是所述第二操作系统根据所述访问数据返回的访问结果数据;
将所述访问结果数据直接存储在所述共享内存中;
将所述共享内存中的访问结果数据直接发送至所述第一操作系统。
8.根据权利要求7所述的方法,其特征在于,所述将所述访问数据直接存储在一共享内存中的步骤之前还包括:
从所述虚拟机管理器中获取所述共享内存的机器物理地址;
将所述共享内存的机器物理地址映射成所述第一操作系统能够直接访问的第一虚拟地址;
所述将所述访问数据直接存储在一共享内存中的步骤具体为:
根据所述第一虚拟地址将所述访问数据直接存储在所述共享内存中。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一虚拟地址将所述访问数据直接存储在所述共享内存中的步骤之后还包括:
所述第二操作系统获取所述共享内存的机器物理地址,并将所述共享内存的机器物理地址映射成所述第二操作系统能够直接访问的第二虚拟地址;