什么是内存

详见:

Level 4:内存(主存)

什么是内存

为什么需要内存管理

可以将物理内存看作一个大数组,每个单元为1B(字节对齐)。数组的下标就是物理地址(Physical Address, PA)。通过物理地址可以访问物理内存单元。

内存上运行着很多进程。如果不做内存管理,直接通过物理地址使用物理内存,就会低效而不安全。

如果物理内存上只运行一个程序,还是有必要做内存管理。原因待补充。

如何管理内存

虚拟内存是什么、为什么要引进虚拟内存

为了高效而安全地使用内存,引入了虚拟内存。

虚拟内存是对物理内存的抽象。意思是每个进程具有自己的连续、统一的地址空间,因此能够高效而安全地使用内存。

虚拟内存如何实现

操作系统负责将进程自己的地址空间映射到物理内存上,虚拟地址(Virtual Address, VA)就是进程自己地址空间上使用的地址。CPU中的内存管理单元(Memory Management Unit, MMU)负责将虚拟地址翻译成物理地址。

CPU通过MMU和TLB使用虚拟地址访问物理内存

用户编写程序时使用的是虚拟地址,所以CPU执行指令时,指令中的地址也是虚拟地址。CPU在取指、访存的时候,都先将虚拟地址发送给MMU,翻译成物理地址后再从物理内存上取指令或数据。