《深入理解计算机系统》读书笔记-10(第9章 虚拟内存)
和“进程”一样,虚拟内存也是计算机系统中十分重要的一个概念。
对每个进程而言,虚拟内存都是私有的,但同时所有的虚拟内存又具有某种程度上的一致性。在计算机系统的各个环节、全部层面,都有虚拟内存的身影。
“物理地址”(physical address)很容易理解,就是主存中按顺序编排的字节单元序号。使用物理地址来访问主存也是最自然的一种方式,直到今天,像“数字信号处理器、嵌入式微控制器等系统依然使用这种方式访问主存”。但为了满足更加复杂的资源调度需求,现代处理器更多的使用的是虚拟寻址(virtual addressing0)的寻址形式。
虚拟地址的翻译(即将虚拟地址转换为实际对应的物理地址)需要硬件和软件密切配合。其中起关键作用的硬件是 CPU 上的内存管理单元(Memory Management Unit,MMU);“软件”部分则指的是存放在主存中的查询表。这个查询表由操作系统管理和维护。
地址空间又分为“虚拟地址空间”和“物理地址空间”,我们通常讨论的一般是虚拟地址空间。