Linux内核的**页框回收算法(page frame reclaiming algorithm, PFRA)**采取从用户态进程和内核高速缓存”窃取“页框的办法补充伙伴系统的空闲链表。
FPRA按照页框所含内容,可以区分成:不可回收页、可交换页、可同步页和可丢弃页。
页类型 | 说明 | 回收操作 |
---|---|---|
不可回收页 | 空闲页(包含在伙伴系统列表中) 保留页(PG_reserved标志置位) 内核动态分配页 进程内核态堆栈页 临时锁定页(PG_locked标志置位) 内存锁定页(在线性区中且VM_LOCKED标志置位) |
不允许也无需回收 |
可交换页 | 用户态地址空间的匿名页 tmpfs文件系统的映射页(如IPC共享内存的页) |
将页的内容保存在交换区 |
可同步页 | 用户态地址空间的映射页 存有磁盘文件数据且在页高速缓存中的页 块设备缓冲页 某些磁盘高速缓存的页(如索引节点高速缓存) |
必要时,与磁盘映像同步这些页 |
可丢弃页 | 内存高速缓存中的未使用页(如slab分配器高速缓存) 目录项高速缓存的未使用页 |
无需操作 |