进程地址空间内存区域的分类(来自深入理解linux内核第二十章)
正文段
数据与bss段
堆
文件映射和匿名的线性区
用户态栈
内核页框中的页的分类
不可回收
可交换
用户地址空间的匿名页:放入swap分区
可同步
磁盘文件的页
用户地址空间的映射的页
可丢弃
pagecache的页的分类
1普通文件的页
2直接从块设备读取的页
3进程地址空间被交换到磁盘的页
4特殊文件系统文件的页(共享内存等等)
pagecache的所有页都是映射页(映射页的概念来自于也框中页的分类)
mmap/unmap
将文件或者其他对象(内核中的内存段)映射到进程的地中空间中
映射页是有文件备份的页---->交换出去的页是有文件备份的页----->pagecache中的页都是映射页
swap的执行时机(就是swap的执行的时机):(深入理解linux内核的shrink_list函数的17-5的图,add_to_swap)
swap出去的进程的地址一般(进程的堆,映射到内存的线性区域中的页(非文件映射的页))等非映射页,且受参数控制