页交换子系统包括页面回收和页交换两部分。
实际上是为了解决内存不够用的问题。将内存中没有被常用的页面换出到磁盘,或者丢掉。
页回收:
1. 页后被存储是块设备,直接回写
2. 页数据不能被改写,如二进制代码数据,则直接丢掉
3. 选择很少使用的页
页回写:
确定页的活跃程度,使用PG_referenced 和 PG_active
避免颠破方法:
进程交换令牌方法
收缩缓存 shrinker
可换出页类型:
1. MAP_ANONYMOUS 页面,没有关联到文件
2. 私有映射,不向底层设备回写的页
3. 进程堆以及malloc分配的页
4. 用于进程通信的页面,如共享内存
页交换算法:
1. 第二次机会
是fifo的改进,队列尾部的数据,不会马上被换出,给予第二次机会。
2. LRU 算法