缺页中断
分页系统克服了交换系统的各种缺点:外部碎片、难以增长、程序不能大于物理内存。但是天下没有免费的午餐,既然优点如此之多,那总得付出点代价。这个代价就是页面的更换。在交换系统卜一个程序作为一个整体加载到内存。因此,在运行时,无需再从磁盘匕加载任何东西。而在分页系统下,一个程序的所有页面并不一定都在内存中,这样,在执行的过程中就可能发生页面不在内存的情况。如果访问的页面不在内存,则系统将产生缺页中断。缺页中断服务程序将负责把位于磁盘上的数据加载到物理内存来。如果物理内存还有空闲页面,那就直接使用空闲的页面。但如果物理内存已满,则需要挑选某个已经使用过的贞面来进行替换。这就牵扯到了页面置换算法。
缺页中断处理:缺页中断以其他一般的中断处理方式处理,先后经过保留现场--------->定位中断处-------->转缺页中断处理程序进行处理和页面加载------->恢复现场
页面置换算法
四种公平算法
随机页面更换算法:随机产生一个随机页面号,根据页面号替换对应的物理页面;但是该算法保证不了之后缺页中断次数的最小化,不推崇。
先进先出算法FIFO (First In First Out):该算法的核心是更换最早进入内存的页面。先进先出是任何人都能直观想到的办法,因为它是人类的天性。FIFO的实现机制是使用链表将所有在内存的页面按照进入时间的早晚链接起来ÿ