Page 71 - 《软件学报》2025年第9期
P. 71
3982 软件学报 2025 年第 36 卷第 9 期
而对于 hypervisor 而言, 该段内存仍然被该虚拟机占有, 并不会用于保存其他数据. 而被 hypervisor 回收的页面一
定会通过其引用计数保证其不会存在于影子页表映射中. 因此虚拟机并不会越权访问宿主机内存.
对于快速路径机制, 在最高特权级引入的代码都是属于 hypervisor 的实现, 虚拟机仅能通过刷新 TLB 的指令
进入该段代码. 该段代码的输入仅包含客户机虚拟地址, 然后遍历由 hypervisor 维护的影子页表, 无效化该地址对
应的影子页表项. 通过简单的边界检查即可保证虚拟地址没有越界, 并且该段代码不会执行虚拟机提供的任何内
存地址, 仅作为一段插入最高特权级的只访问可信数据的快速代码片段. 当然, 若在该段代码中添加其他功能, 该
代码明确的功能也能够快速地完成形式化验证, 只需要验证对于所有虚拟地址的输入都能够产生合法的结果
即可.
5.2 懒惰影子页表限制
懒惰影子页表是针对 RISC-V 架构定制的内存虚拟化解决方案, 需要利用 RISC-V 架构中的最高特权级, 细粒
度刷新 TLB, 异常委托等特性来加速页表同步的上下文切换开销. 而对于没有该特性的架构, 例如 x86 或者 ARM
架构, 懒惰影子页表无法发挥出最大的效率. 同时, 懒惰影子页表要求 TLB 刷新指令需要明确指出刷新的虚拟地
址以便无效化影子页表项, 而对于刷新全局 TLB 的指令将触发全局主动同步, 造成更高的开销. 因此, 懒惰影子页
表的高效需要客户机操作系统保持细粒度刷新 TLB, 尽量避免全局刷新 TLB. 因此懒惰影子页表更适用于一些有
性能要求的定制化的场景, 客户机操作系统以该模式刷新 TLB 能够获得最高的地址翻译效率.
6 总 结
懒惰影子页表模型尝试在 RISC-V 架构下解决虚拟化技术中的内存虚拟化导致的性能瓶颈. 本文利用 RISC-V
架构中的特权级模型和硬件特性在地址翻译开销和页表同步开销之间获得了更好的权衡. 懒惰影子页表模型通过
分析虚拟机操作系统对页表项的修改行为, 将通过写保护触发的同步绑定到了 TLB 刷新时刻. 然后, 懒惰影子页
表模型通过将页表同步操作延迟到使用时刻来避免复杂的软件开销, 在修改时刻仅进行轻量级的影子页表项无效
化操作. 懒惰影子页表模型还对修改时刻产生的虚拟机退出实现了快速路径, 进一步降低了上下文切换的开销. 最
终, 通过在 RISC-V 基础架构和虚拟化扩展下的实验表明, 本文所提出的懒惰影子页表模型在保留高效地址翻译
效率的同时, 降低了页表同步开销, 提升了虚拟机的性能.
References:
[1] Bhardwaj S, Jain L, Jain S. Cloud computing: A study of infrastructure as a service (IAAS). Int’l Journal of Engineering and Information
Technology, 2010, 2(1): 60–63.
[2] Bhargava R, Serebrin B, Spadini F, Manne S. Accelerating two-dimensional page walks for virtualized systems. In: Proc. of the 13th Int’l
Conf. on Architectural Support for Programming Languages and Operating Systems. Seattle: Association for Computing Machinery,
2008. 26–35. [doi: 10.1145/1346281.1346286]
[3] Cervone HF. An overview of virtual and cloud computing. OCLC Systems & Services: Int’l Digital Library Perspectives, 2010, 26(3):
162–165. [doi: 10.1108/10650751011073607]
[4] Li YK, Lin YY, Wang Y, Ye KJ, Xu CZ. Serverless computing: State-of-the-art, challenges and opportunities. IEEE Trans. on Services
Computing, 2023, 16(2): 1522–1539. [doi: 10.1109/TSC.2022.3166553]
[5] Li ZJ, Guo LS, Cheng JG, Chen Q, He BS, Guo MY. The serverless computing survey: A technical primer for design architecture. ACM
Computing Surveys (CSUR), 2022, 54(10S): 220. [doi: 10.1145/3508360]
[6] Adams K, Agesen O. A comparison of software and hardware techniques for x86 virtualization. ACM SIGPLAN Notices, 2006, 41(11):
2–13. [doi: 10.1145/1168918.1168860]
[7] Ryoo JH, Gulur N, Song S, John LK. Rethinking TLB designs in virtualized environments: A very large part-of-memory TLB. ACM
SIGARCH Computer Architecture News, 2017, 45(2): 469–480. [doi: 10.1145/3140659.3080210]
[8] Gandhi J, Basu A, Hill MD, Swift MM. Efficient memory virtualization: Reducing dimensionality of nested page walks. In: Proc. of the
47th Annual IEEE/ACM Int’l Symp. on Microarchitecture. Cambridge: IEEE, 2014. 178–189. [doi: 10.1109/MICRO.2014.37]
[9] Wang XL, Zang JR, Wang ZL, Luo YW, Li XM. Selective hardware/software memory virtualization. ACM SIGPLAN Notices, 2011,

