1、物理内存和虚拟内存
物理内存是程序运行过程中,那些编译后的机器码实际存储的位置 虚拟内存实际上是一项内存管理技术,用于解决多进程场景下的物理内存不足的问题
2、分页和分段
分页和分段都是将虚拟内存映射为逻辑内存的一项技术,但是他们的粒度不一样
- 分段
分段的基本思想是将程序分为一个一个段,物理内存和虚拟内存之间通过段表转换,段表中记录了程序的段号+偏移量。但是会存在内存利用率低下的问题。
- 分页
分页的思想是将物理内存和虚拟内存都按照固定大小的页来(linux中是4KB)分割,物理内存和虚拟内存通过页表来转换,页表中同样也存储了页号+偏移量。
3、多级页表
多级页表是为了解决单级页表中的页表空间占用过大的问题。具体来说把一级页表再按照分页的方式处理构建出一张二级页表,页表存储的空间就会再降一个量级。使用的过程中用二级页表找一级页表,再通过一级页表找时机存储的物理地址。