虚拟地址
内存管理可以比喻为一个项目组的“封闭开发的会议室”。
为什么程序不能直接访问物理地址,例如3个程序同时想3F这个地址,分别写入数据2,100,200,而内存中只能保存一个数,就出现了问题。
所以解决方案是,物理地址对进程不可见。操作系统会为进程分配一个虚拟地址,所有进程看到的地址都是一样的,从0开始编号,1-100号会议室。
操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。
用户态和内核态对内存访问,都使用虚拟地址。
虚拟内存会被分成两个部分,一部分用来放内核的东西(内核空间),一部分用来放进程的东西(用户空间)。
普通进程不能访问内核空间,即使它是虚拟空间。
普通进程的视角
进入内核态的视角