理解 Linux 的虚拟内存
。 内存寻址和分配 我们知道通过虚拟内存机制,每个进程都以为自己占用了全部内存,进程访问内存时,操作系统都会把进程提供的虚拟内存地址转换为物理地址,再去对应的物理地址上获取数据。CPU 中有一种硬件,内存管理单元 MMU(Memory Management Unit)专门用来翻译虚拟内存地址。CPU 还为页表寻址设置了缓存策略,由于程序的局部性,其缓存命中率能达到 98%。 以上情况是页表内存在虚拟地址到物理地址的映射,而如果进程访问的物理地址还没有被分配,系统则会产生一个缺页中断,在中断处理时,系统切到内核态为进程虚拟地址分配物理地址。 功能 虚拟内存不仅通过内存地址转换解决了多个进程访问内存冲突的问题,还带来更多的益处。 进程内存管理 它有助于进程进行内存管理,主要体现在: 内存完整性:由于...阅读全文