缺页概念:看了一些博主的观点,说缺页是引入虚拟内存后的一个概念。对此我并不认同,即使没有虚拟内存依然会有缺页这个概念,因为Windows内存是按照页面管理,也就是把内存分成一个个页面。但有时候一个程序很大比如有几十g,而内存只有8g,所以不可能一下子全部装进来,既然装不进来就会有想要访问的数据不在内存中的情况,而去硬盘读取,所以这就是缺页。
缺页后:第一步:保留CPU现场,
第二步:调动缺页异常处理程序,去外存中找到缺页部分。然后判断内存是否已满,如果内存不满,直接从外存中读取进内存。如果已满则采取页面置换算法调出内存中的页面,并判断该页面是否被修改,如果被修改那就先写回外存。
第三步:恢复CPU现场处理数据
假设CPU现在要计算a+b的值,但是b的数据不在内存中就会发生以上情况。