Intel-CPU的内存管理

Intel的CPU在早期是段式、后期引入页式,但是是在段式的基础上进行的
image.png

  1. 逻辑地址(分段地址),映射后获取线性地址(虚拟地址)
  2. 通过线性地址(分页地址),映射为物理地址

Linux的内存管理

Linux使用页式内存管理,但是由于CPU的段式机制。Linux采取了一个巧妙的方法,就是说逻辑地址就是线性地址。所有的段的范围就是 0~内存容量。
此外Linux将内存分为内核空间和用户空间
image.png
内核空间只有在内核态下可以访问
用户空间在用户态下访问。
image.png
解释:
1.用户空间是虚拟地址,彼此独立。进程1的0001号地址和进程2的0001号地址完全独立,
两者映射后的物理内存互不干扰
2.内核空间是共享的,一个地址如果是内核空间中的地址,那么进程1和进程2上的地址,指向的是同一块物理内存地址。

一个进程的内存结构

image.png
上图展示的是一个进程的各个范围的地址空间所放的内容。每个进程都是大致一样。每个进程认为自己就是独占一个4GB的大内存。所有的位置都可以自己用。
image.pngimage.pngimage.png
进程1 进程2 进程3 ……