内存管理分析之三:了解这些概念就了解了整个MMU机制

内存管理分析之一:Linux进程空间与虚拟地址的好处
内存管理分析之二:MMU机制在进程中使用时的一些问题
内存管理分析之三:了解这些概念就了解了整个MMU机制

MMU的作用
1,完成虚拟地址到物理地址的转换
2,地址访问控制,地址保护

:最小的映射单位,32位系统一般为4k

页帧:物理内存中的一页称为页帧

页表:虚拟内存与物理内存的映射规则

PTE:页表项(page table entry PTE),页表由一条条的映射规则组成,每条规则成为页表项。

TLB:转换快表(translation lookaside buffer)硬件MMU内部对页表的缓存,一般使用sram比从内从中查找快好多。

保存近期使用的PTE

MMU如何内存保护、权限控制

PTE中预留了几个bit用于权限控制,暂不展开。

使用多级页表如何减少内存消耗
linux中每个进程都拥有4G大小的虚拟地址空间,如果不使用多级页表则需要为每个进程开辟4M空间存储页表。
(32位系统为例:每个页表一般是4k大小,则需要4G/4K=1M个页表项才能映射完所有虚拟地址,每个页表项记录的是物理内存的地址占据4byte空间,因此一共需要4M空间)而大部分情况每个进程实际上使用到的内存大小是远远小于4G空间的,第二级页表如果没有用到就暂不分配,从而减少内存消耗。

从虚拟地址到物理地址映射的过程
在进程切换时将该进程的第一级页表起始地址放到CR3寄存器中,当该进程中需要映射地址时,由CR3寄存器找到第一级页表起始地址,再有虚拟地址前10bit在一级页表中确认偏移量,
找到二级页表的起始地址,在由虚拟地址的中间10bit确认在二级页表中的偏移量找到PTE的地址,最终在PTE中确认此虚拟地址对应的物理地址。




猜你喜欢

转载自blog.csdn.net/RadianceBlau/article/details/79369736