Linux中有关交换机制的思维导图,包括交换机制概念、交换的基本原理、页面换出
树图思维导图提供 交换机制思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 交换机制思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:233e2a506f98b1ee0571f93cb690c6f4
交换机制思维导图思维导图模板大纲
当物理内存出现不足时,Linux 内存管理子系统需要释放部分物理内存页面
由内核的交换守护进程 kswapd 完成,该内核守护进程实际是一个内核线程,它在内核初始化时启动,并周期地运行
任务
保证系统中具有足够的空闲页面,从而使内存管理子系统能够有效运行
当空闲内存数量小于一个固定的极限值时,就执行换出操作
换出操作包括把进程的整个地址空间拷贝到磁盘上
当调度算法选择出一个进程运行时,整个进程又被从磁盘中交换进来
交换的单位是页面而不是进程
尽管交换的单位是页面,但交换还是要付出一定的代价,尤其是时间的代价
在页面交换中,页面置换算法是影响交换性能的关键性指标,其复杂性主要与换出有关
如何在交换区中存放页面
如何选择被交换出的页面
何时执行页面换出操作
交换的最终目的是页面的回收
并非内存中的所有页面都是可以交换出去的
只有与用户空间建立了映射关系的物理页面才会被换出去,而内核空间中内核所占的页面则常驻内存
分类
把用户空间中的页面按其内容和性质分
进程映像所占的页面
进程的代码段、数据段、堆栈段以及动态分配的“存储堆”
通过系统调用 mmap()把文件的内容映射到用户空间
进程间共享内存区
在执行过程中使用的页面要经过动态分配
内核调用 kmalloc()或 vmalloc()为内核中临时使用的数据结构而分配的页于是立即释放
内核中通过调用 alloc_pages(),为某些临时使用和管理目的而分配的页面
每个进程的内核栈所占的两个页面
从内核空间复制参数时所使用的页面