引言
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
昨天简要介绍Linux操作系统的虚拟内存管理,今天我们来继续深入的了解一下虚拟内存的管理。
缺页异常
进程访问的虚拟地址会不会存在没有的情况,会的,那就产生一个缺页异常,然后内核空间分配物理内存,接着更新页表,最后返回进程空间,恢复进程运行。
中断和异常
中断和异常有的人区分不清楚,这里提一句:中断的产生与指令的执行是异步(Asynchronous)的,而异常不是,异常的产生与指令的执行是同步(Synchronous)的。
页表的高速缓存
页表的高速缓存TLB,高速缓存是存在MMU的内部的,如果我们减少更新页表的数据,就可以最大限度的利用缓存提高效率,比如减少CPU上下文的切换,就可以提高CPU访问内存的性能。
多级页表和大页
多级页表,我在【程序员必备小知识-内存知识17】虚拟内存管理里只是简单的提了一下,作为后续,我们来完善一下,多级页表就是把虚拟内存空间切块,把原来的映射关系变成区块索引和区块内的偏移,这样由于虚拟内存占比比较小,多级页表只保存使用的区块就可以了,这样就减少了页表中的页表项。