复合页
复合页的引入
很多时候页面分配只是分配了页表项,只有当第一次访问的时候才会触发缺页中断,然后分配真正的物理内存,而每次触发在汇编指令层往往就是8字节,总之很小,每次只能触发一个page的缺页;
所以,如果大量分配页面,那么要想让这些页面全部加载上真正的物理内存,就要每访问一页中断一次,这样的开销太大了;
复合页的思想想必就是将这些页看成一个整体,只要触发了其中某一个页面的缺页中断,就将所有页面的物理内存全都加载进来;🤔
组织结构
一个超过4K大小的slab其实也是一个复合页!😮
上图中展示的就是一个tail-page的page结构体,其中绿框所示最低一个bit教师这是一个tail-page,其余bit则指向了head-page;😊
folio结构体
直接看这篇文章的解释:https://blog.csdn.net/feelabclihu/article/details/131485936
其最终给出的解释是这样的: