物理内存管理与MMAP

虚拟地址

内存管理可以比喻为一个项目组的“封闭开发的会议室”。

为什么程序不能直接访问物理地址,例如3个程序同时想3F这个地址,分别写入数据2,100,200,而内存中只能保存一个数,就出现了问题。

所以解决方案是,物理地址对进程不可见。操作系统会为进程分配一个虚拟地址,所有进程看到的地址都是一样的,从0开始编号,1-100号会议室。

操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来。

用户态和内核态对内存访问,都使用虚拟地址。

虚拟内存会被分成两个部分,一部分用来放内核的东西(内核空间),一部分用来放进程的东西(用户空间)。

普通进程不能访问内核空间,即使它是虚拟空间。

普通进程的视角

进入内核态的视角

原文地址:https://www.cnblogs.com/fonxian/p/6517496.html