当前位置: 首页 > news >正文

[A-19][V06]ARMv8/v9-内存虚拟化原理

ver0.2

[看前序文章有惊喜,关注W\X\G=Z+H=“浩瀚架构师”,可以解锁全部文章]

前言

前一篇文章,我们介绍了ARM内存的属性,算是一个小小的里程碑点,接下来我们会把注意力重新拉回虚拟化的赛道。我们从[V-05] 虚拟化基础-异常模型(Exception model)之后,花了很多笔墨介绍了ARM体系的Cache和内存相关的机制作为我们进一步研究虚拟化的基础知识,今天终于回归到我们的虚拟化主线继续小马奔腾。内存空间的管理也是虚拟化技术体系中的核心课题之一,下面我们就进入内存虚拟化的世界。

正文

1.1 内存资源的管理

我们在前序文章[V-00] 虚拟化概论-思想 中介绍过,虚拟化的思想的核心要义就是:对底层的硬件资源在时间和空间上做分割,进行二次分配给GuestOS使用。完成这个资源再分配的角色就是Hypervisor,而它对内存资源以及其他设备资源的分配靠的就是对内存空间的精准的管理,如图1-1所示。

1-1

图1-1 High-Level 虚拟化座舱系统架构

先来看一段手册中的描述:

An ordinary OS manages the memory that the applications run in, and the memory where the OS is located. The hypervisor is responsible for memory management for itself and for the guest operating systems it manages. The entire physical memory is at the direct disposal of the hypervisor. The MMU in EL2 is used by the hypervisor to translate the virtual addresses that the hypervisor uses to address physical memory.

通过手册中的描述并结合图1-1,我们可以总结几点如下:
(1) 首先要搞清楚,内存资源其实内存空间资源,覆盖设备类型(IO)和Normal类型(SDRAM)。
(2) 内存资源的分配是经过两级控制的:
• 第一级:从App的视角向底层看去,它要使用内存资源需要受到当前运行的操作系统的控制,比如Linux系统中的Kernel。
• 第二级:在虚拟化架构下光有第一级控制是不行的,因为内存资源是各个VM共享的,因此需要Hypervisor介入进行二次控制并分配。
(3) 在虚拟化的架构下,ARM体系还是要依赖MMU完成VA到PA的翻译过程,那么MMU工作时依赖的VMSA所有机制都需要参与配合。
(4) Hypervisor也只能管控分配给它的内存空间,对于其他空间比如TEE-OS所在Secure空间,它说了不算。

http://www.lryc.cn/news/492987.html

相关文章:

  • registry 删除私有仓库镜像
  • UPLOAD LABS | UPLOAD LABS 靶场初识
  • Samba服务器常见问题处理
  • Java基础 设计模式——针对实习面试
  • 最大公约数和最小公倍数-多语言
  • 第三方数据库连接免费使用和安装
  • 水库大坝安全监测之量水堰计应用
  • 算法笔记:滑动窗口
  • Ubuntu下的Graphviz的基础使用方法
  • 微积分复习笔记 Calculus Volume 1 - 6.8 Exponential Growth and Decay
  • React的ts文件中通过createElement拼接一段内容出来
  • Pinia之1:介绍Pinia、项目中引入Pinia
  • Python双向链表、循环链表、栈
  • 5G基础学习笔记
  • Python plotly库介绍
  • go编程中yaml的inline应用
  • 手机实时提取SIM卡打电话的信令声音-智能拨号器的双SIM卡切换方案
  • 探索Python WebSocket新境界:picows库揭秘
  • 2024年11月24日Github流行趋势
  • NewStar CTF week5 Crypto wp
  • vue3+antd注册全局v-loading指令
  • 初试无监督学习 - K均值聚类算法
  • 捉虫笔记(七)-再探谁把系统卡住了
  • 【Linux课程学习】:《简易版shell实现和原理》 《哪些命令可以让子进程执行,哪些命令让shell执行(内键命令)?为什么?》
  • 2024年11月27日Github流行趋势
  • Java中的线程池使用详解
  • Redis(概念、IO模型、多路选择算法、安装和启停)
  • 计算机网络 第4章 网络层
  • Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this
  • 高级java每日一道面试题-2024年11月27日-JVM篇-JVM的永久代中会发生垃圾回收么?