目的:弄清楚为何使用巨页,使用巨页的意义是减少cpu在虚拟内核和物理内存转换时的tlb cache miss;
什么是页表:
我们知道,在linux操作系统中,CPU在执行一个进程的时候,都会访问内存。
但CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接的访问物理内存地址。
所谓的虚拟地址空间,是操作系统为每一个正在执行的进程分配的一个逻辑地址,在32位机上,其范围从0 ~ 4G-1。
操作系统通过将虚拟地址空间和物理内存地址之间建立映射关系,让CPU间接的访问物理内存地址。
通常将虚拟地址空间以512Byte ~ 8K,作为一个单位,称为页,并从0开始依次对每一个页编号。这个大小通常被称为页面。
将物理地址按照同样的大小,作为一个单位,称为框或者块,也从0开始依次对每一个框编号。
操作系统通过维护一张表,这张表上记录了每一对页和框的映射关系。如图:这张表,称为页表。