共享内存的管理方法、虚拟机监控器和计算设备技术

技术编号:38706590 阅读:12 留言:0更新日期:2023-09-08 14:47
一种共享内存的管理方法、虚拟机监控器和计算设备,计算设备中部署虚拟机监控器、虚拟机和TEE,虚拟机和TEE中各自运行目标应用程序的非可信部分和可信部分;虚拟机和虚拟机监控器中配置有共享内存的地址信息,分别维护有非可信部分的第一页表和可信部分的第二页表。虚拟机监控器在可信部分请求访问第一地址而发生缺页错误,并且根据地址信息确定第一地址属于共享内存时,向虚拟机发送中断通知,使得虚拟机在根据地址信息确定出第一地址属于共享内存后,确保第一页表中已生效第一页表项,并向虚拟机监控器返回响应消息,第一页表项包括第一地址所属第一页面的地址映射信息;相应的是虚拟机监控器可以根据地址映射信息在第二页表中生效第二页表项。页表中生效第二页表项。页表中生效第二页表项。

【技术实现步骤摘要】
共享内存的管理方法、虚拟机监控器和计算设备


[0001]本说明书一个或多个实施例涉及计算机领域,尤其涉及一种共享内存的管理方法、虚拟机监控器和计算设备。

技术介绍

[0002]虚拟化技术解决方案提供在相同硬件平台上承载异构系统的灵活性,同时实现了良好的高可靠性和故障控制机制,以保证不同应用程序或者属于相同应用程序的不同组件之间的安全隔离。基于虚拟化技术的可信执行环境(trusted execution environment,TEE),可以通过虚拟机监控器(virtual machine monitor,VMM;或称为Hypervisor),实现对目标应用程序的可信部分和非可信部分进行内存隔离。

技术实现思路

[0003]本说明书一个或多个实施例中提供了一种计算设备中共享内存的管理方法、虚拟机监控器和计算设备。
[0004]第一方面,提供了一种计算设备中共享内存的管理方法,所述计算设备中部署有虚拟机监控器、虚拟机和TEE,所述虚拟机和所述TEE中分别运行有目标应用程序的非可信部分和可信部分,所述虚拟机和所述虚拟机监控器中配置有共享内存的地址信息,所述虚拟机维护所述非可信部分的第一页表,所述虚拟机监控器维护所述可信部分的第二页表;所述方法包括:所述虚拟机监控器在所述可信部分请求访问第一地址而发生缺页错误的情况下,根据所述地址信息确定所述第一地址是否属于所述共享内存,如果是则向所述虚拟机发送中断通知;所述虚拟机响应于所述中断通知,在根据所述地址信息确定出所述第一地址属于所述共享内存的情况下,确保所述第一页表中已生效第一页表项,并向所述虚拟机监控器返回响应消息,所述第一页表项包括所述第一地址所属第一页面的地址映射信息;所述虚拟机监控器响应于所述响应消息,根据所述地址映射信息在所述第二页表中生效所述第一页面对应的第二页表项。
[0005]在一种可能的实施方式中,所述虚拟机监控器维护有第一状态信息,所述第一状态信息的取值包括第一状态值或第二状态值,所述第一状态值用于指示允许在所述第二页表中生效新的页表项,所述第二状态值用于指示禁止在所述第二页表中生效新的页表项;其中,在根据所述地址映射信息在所述第二页表中生效所述第一页面对应的第二页表项之前,所述方法还包括:根据所述第一状态信息确定是否允许生效所述第二页表项。
[0006]在一种可能的实施方式中,所述方法还包括:所述虚拟机向所述虚拟机监控器发送第一起始消息,其中指示所述虚拟机监控器将要无效的第三页表项所对应的第二页面,所述第二页面属于所述共享内存;所述虚拟机监控器将所述第一状态信息设置为所述第二状态值,并在所述第二页表中无效所述第二页面对应的第三页表项;所述虚拟机在所述第一页表中无效所述第二页面对应的第四页表项,并向所述虚拟机监控器发送第一结束消息;所述虚拟机监控器响应于所述第一结束消息,将所述第一状态信息设置为所述第一状
态值。
[0007]在一种可能的实施方式中,所述虚拟机包括操作系统和页表项同步驱动;其中,所述方法还包括:所述页表项同步驱动从所述操作系统接收第二起始消息,其中指示所述操作系统将要无效的第五页表项对应的第三页面;所述页表项同步驱动响应于所述第二起始消息,根据所述地址信息确定所述第二起始消息所指示的第三页面是否为属于所述共享内存的第二页面;所述向所述虚拟机监控器发送第一起始消息,包括:在所述第二起始消息所指示的第三页面是属于所述共享内存的第二页面的情况下,向所述虚拟机监控器发送第一起始消息。
[0008]在一种可能的实施方式中,所述方法还包括:所述页表项同步驱动从所述操作系统接收第二结束消息,其中指示所述操作系统已无效的第五页表项对应的第三页面;所述页表项同步驱动响应于所述第二结束消息,根据所述地址信息确定所述第二结束消息所指示的第三页面是否为属于所述共享内存的第二页面;所述向所述虚拟机监控器发送第一结束消息,包括:在所述第二结束消息所指示的第三页面是属于所述共享内存的第二页面的情况下,向所述虚拟机监控器发送第一起始消息。
[0009]在一种可能的实施方式中,所述页表项同步驱动维护有第二状态信息,所述第二状态信息的取值包括第三状态值或第四状态值,所述第三状态值用于指示允许更新所述共享内存的地址信息,所述第四状态值用于指示禁止更新所述共享内存的地址信息;其中,所述方法还包括:所述页表项同步驱动响应于所述第二起始消息,将所述第二状态信息设置为所述第四状态值;所述页表项同步驱动响应于所述第二结束消息,将所述第二状态信息设置为所述第三状态值。
[0010]在一种可能的实施方式中,所述方法还包括:所述虚拟机获取地址更新请求,用于请求更新所述共享内存的地址信息;所述虚拟机根据所述第二状态信息确定是否允许更新所述共享内存的地址信息;所述虚拟机在允许更新所述共享内存的地址信息的情况下,根据所述地址更新请求更新所述虚拟机中配置的所述共享内存的地址信息,以及向所述虚拟机监控器发送与所述地址更新请求对应的地址更新通知;所述虚拟机监控器根据所述地址更新通知更新其配置的所述共享内存的地址信息。
[0011]第二方面,提供了一种计算设备中共享内存的管理方法,所述计算设备中部署有虚拟机监控器、虚拟机和TEE,所述虚拟机和所述TEE中分别运行有目标应用程序的非可信部分和可信部分,所述虚拟机和所述虚拟机监控器中配置有共享内存的地址信息,所述虚拟机维护所述非可信部分的第一页表,所述虚拟机监控器维护所述可信部分的第二页表;所述方法由所述虚拟机监控器执行,所述方法包括:在所述可信部分请求访问第一地址而发生缺页错误的情况下,根据所述地址信息确定所述第一地址是否属于所述共享内存,如果是则向所述虚拟机发送中断通知,使得所述虚拟机在根据所述地址信息确定出所述第一地址属于所述共享内存的情况下,确保所述第一页表中已生效第一页表项,并向所述虚拟机监控器返回响应消息,所述第一页表项包括所述第一地址所属第一页面的地址映射信息;响应于所述响应消息,根据所述地址映射信息在所述第二页表中生效所述第一页面对应的第二页表项。
[0012]第三方面,提供了一种虚拟机监控器,所述虚拟机监控器部署在计算设备中,所述计算设备中还部署有虚拟机和TEE,所述虚拟机和所述TEE中分别运行有目标应用程序的非
可信部分和可信部分,所述虚拟机和所述虚拟机监控器中配置有共享内存的地址信息,所述虚拟机维护所述非可信部分的第一页表,所述虚拟机监控器维护所述可信部分的第二页表;包括:缺页处理单元,配置为在所述可信部分请求访问第一地址而发生缺页错误的情况下,根据所述地址信息确定所述第一地址是否属于所述共享内存,如果是则向所述虚拟机发送中断通知,使得所述虚拟机在根据所述地址信息确定出所述第一地址属于所述共享内存的情况下,确保所述第一页表中已生效第一页表项,并向所述虚拟机监控器返回响应消息,所述第一页表项包括所述第一地址所属第一页面的地址映射信息;页表管理单元,配置为响应于所述响应消息,根据所述地址映射信息在所述第二页表中生效第二页表项。
[0013]第四方面,提供了一种计算设备,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算设备中共享内存的管理方法,所述计算设备中部署有虚拟机监控器、虚拟机和可信执行环境TEE,所述虚拟机和所述TEE中分别运行有目标应用程序的非可信部分和可信部分,所述虚拟机和所述虚拟机监控器中配置有共享内存的地址信息,所述虚拟机维护所述非可信部分的第一页表,所述虚拟机监控器维护所述可信部分的第二页表;所述方法包括:所述虚拟机监控器在所述可信部分请求访问第一地址而发生缺页错误的情况下,根据所述地址信息确定所述第一地址是否属于所述共享内存,如果是则向所述虚拟机发送中断通知;所述虚拟机响应于所述中断通知,在根据所述地址信息确定出所述第一地址属于所述共享内存的情况下,确保所述第一页表中已生效第一页表项,并向所述虚拟机监控器返回响应消息,所述第一页表项包括所述第一地址所属第一页面的地址映射信息;所述虚拟机监控器响应于所述响应消息,根据所述地址映射信息在所述第二页表中生效第二页表项。2.根据权利要求1所述的方法,所述虚拟机监控器维护有第一状态信息,所述第一状态信息的取值包括第一状态值或第二状态值,所述第一状态值用于指示允许在所述第二页表中生效新的页表项,所述第二状态值用于指示禁止在所述第二页表中生效新的页表项;其中,在根据所述地址映射信息在所述第二页表中生效第二页表项之前,所述方法还包括:根据所述第一状态信息确定是否允许生效所述第二页表项。3.根据权利要求2所述的方法,所述方法还包括:所述虚拟机向所述虚拟机监控器发送第一起始消息,其中指示所述虚拟机监控器将要无效的第三页表项所对应的第二页面,所述第二页面属于所述共享内存;所述虚拟机监控器将所述第一状态信息设置为所述第二状态值,并在所述第二页表中无效所述第二页面对应的第三页表项;所述虚拟机在所述第一页表中无效所述第二页面对应的第四页表项,并向所述虚拟机监控器发送第一结束消息;所述虚拟机监控器响应于所述第一结束消息,将所述第一状态信息设置为所述第一状态值。4.根据权利要求3所述的方法,所述虚拟机包括操作系统和页表项同步驱动;其中,所述方法还包括:所述页表项同步驱动从所述操作系统接收第二起始消息,其中指示所述操作系统将要无效的第五页表项对应的第三页面;所述页表项同步驱动响应于所述第二起始消息,根据所述地址信息确定所述第二起始消息所指示的第三页面是否为属于所述共享内存的第二页面;所述向所述虚拟机监控器发送第一起始消息,包括:在所述第二起始消息所指示的第三页面是属于所述共享内存的第二页面的情况下,向所述虚拟机监控器发送第一起始消息。5.根据权利要求4所述的方法,所述方法还包括:所述页表项同步驱动从所述操作系统接收第二结束消息,其中指示所述操作系统已无效的第五页表项对应的第三页面;
所述页表项同步驱动响应于所述第二结束消息,根据所述地址信息确定所述第二结束消息所指示的第三页面是否为属于所述共享内存的第二页面;所述向所述虚拟机监控器发送第一结束消息,包括:在所述第二结束消息所指示的第三页面是属于所述共享内存的第二页面的情况下,向所述虚拟机监控器发送第一起始消息。6.根据权利要求5所述的方法,所述页表项同步驱动维护有第二状态信息,所述第二状态信息的取值包括第三状态值或第四状态值,所述第三状态值用于指示允许更新所述共享内存的地址信息,所述第四状态值用于指示禁止更新所述共享内存的地址信息;其中,所述方法还包括:所述页表项同步驱动响应于所述第二起始消息,将所述第二状态信息设置为所述第四状态值;所述页表项同步驱动响应于所述第二结束消息,将所述第二状态信息设置为所述第三状态值。7.根据权利要求6所述的方法,所述方法还包括:所述虚拟机获取地址更新请求,用于请求更新所述共享内存的地址信息;所述虚拟机根据所述第二状态信息确定是否允许更新所述共享内存的地址信息;所述虚拟机在允许更新所述共享内存的地址信息的情况下,根据所述地址更新请求更新所述虚拟机中配置的所述共享内存的地址信息,以及向所述虚拟机监控器发送与所述地址更新请求对应的地址更新通知;所述虚拟机监控器根据所述地址更新通知更新其配置的所述共享内存的地址信息。8.一种计算设备中共享内存的管理方法,所述计算设备中部署有虚拟机监控器、虚拟机和可信执行环境TEE,所述虚拟机和所述TEE中分别运行有目标应用程序的非可信部分和可信部分,所述虚拟机和所述虚拟机监控器中配置有共享内存的地址信息,所述虚拟机维护所述非可信部分的第一页表,所述虚拟机监控器维护所述可信部分的第二页表;所述方法由所述虚拟机监控器执行,所述方法包括:在所述可信部分请求访问第一地址而发生缺页错误的情况下,根据所述地址信息确定所述第一地址是否属于所述共享内存,如果是则向所述虚拟机发送中断通知,使得所述虚拟机在根据所述地址信息确定出所述第一地址属于所述共享内存的情况下,确保所述第一页表中已生效第一页表项,并向所述虚拟机监控器返回响应消息,所述第一页表项包括所述第一地址所属第一页面的地址映射信息;响应于所述响应消息,根据所述地址映射信息在所述第二页表中生效第二页表项。9.一种虚拟机监控器,所述虚拟机监控器部署在计算设备中,所...

【专利技术属性】
技术研发人员:徐依凌刘双段然闫守孟
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1