Update chapter1.md

pull/1/head
Zhiyuan Shao 4 years ago
parent 23cd91fb5a
commit 0bbedaae9a

@ -567,9 +567,9 @@ csrw medeleg, 1<<0 | 1<< 3 | 1<<8 | 1<<12 | 1<<13 | 1<<15
[//]:# (### 1.5 页式虚存管理)
[comment]: <> (### 1.5 页式虚存管理)
<div id="paging"></div>###1.5 页式虚存管理 ###
###1.5 页式虚存管理 ###
我们知道程序中的代码对数据进行访问如使用load和store指令采用的是数据的逻辑地址即程序地址。然而将程序装入内存时装载器无法保证数据的逻辑地址和物理地址内存的编址之间有完全相等的关系。实际上由于操作系统往往是计算机装入物理内存的第一个程序如果仔细规划逻辑地址空间还能勉强建立操作系统程序内部逻辑地址到其所装入的物理内存的物理地址间的相等关系但是这一点对于后续装入的应用程序几乎是无法也不可能保证的。
<div id="paging"></div>我们知道程序中的代码对数据进行访问如使用load和store指令采用的是数据的逻辑地址即程序地址。然而将程序装入内存时装载器无法保证数据的逻辑地址和物理地址内存的编址之间有完全相等的关系。实际上由于操作系统往往是计算机装入物理内存的第一个程序如果仔细规划逻辑地址空间还能勉强建立操作系统程序内部逻辑地址到其所装入的物理内存的物理地址间的相等关系但是这一点对于后续装入的应用程序几乎是无法也不可能保证的。
为了实现程序逻辑地址到其装入物理内存后的物理地址的转换保证程序对数据的正确寻址采用RV64G指令集的RISC-V处理器在监管模式即S模式也就是我们的PKE操作系统代码运行的特权模式提供了三种逻辑地址到物理地址的转换方式BareSv39和Sv48。由于逻辑地址到物理地址的转换与物理内存的管理有着紧密的关联所以以上三种方式也被称为虚拟内存管理Virtual Memory Management简称VMM方式。其中Bare模式是最简单的VMM方式即寻址时不对虚拟地址进行任何转换所访问的物理内存地址就等于虚拟内存地址这种方式在操作系统启动和刚进入S模式时很有用单任务模式只执行一个应用下仍然可用但多任务模式启动多个进程下就没法用了Sv39和Sv48是页式虚拟内存的管理方式它们分别支持39位和48位的逻辑地址且将物理内存以页面page的粒度进行管理。Sv39和Sv48这两种VMM用得较多的是Sv39Sv48只是在Sv39上的一个简单扩展所以在后续讨论中我们将着重讨论Sv39。

Loading…
Cancel
Save