CPU在访问的页面不在物理内存时,便会产生缺页中断,请求操作系统将所缺页调入到物理内存。
缺页中断与其他中断的区别?
缺页中断的处理流程
页面置换算法用来做什么?
页面置换算法就是在物理内存无法找到空闲页的时候,将现有物理内存中合适的页换出到磁盘,然后把需要访问的页面装入到物理内中。页面算法的目标是尽可能的减少页面的换入和换出次数。
页面置换算法有哪几种?
页面置换算法核心是置换在未来最长时间不访问的页面。
这种算法是最理想的算法,但是无法实现,因为程序在访问页面是动态,我们无法预知每个页面下一次的访问时间。因此该算法只是为了衡量其他的页面置换算法的效率,如果算法效率越接近该算法的效率,说明算法越高效。
先进先出置换算法是选择在内存驻留时间很长的页面进行置换。
该算法的核心是选择最长时间没有被访问的页面进行置换。
为了实现这种LRU,需要在内存中维护一个所有页面的链表,最近最多使用的页面在表头,最近最少的在表尾,每次访问内存时都需要更新该链表,需要在链表中找到一个页面,删除它,然后把它移动到表头是一个比较耗时的操作。
时钟页面置换算法结合了LRU和FIFO,该算法把所有的页面保存在一个环形列表中,一个表指针指向最老的页面。
当发生缺页中断时,算法会先检查表指针指向的页面:
该算法就是选择访问次数最少的那个页面将其淘汰。
实现方式就是对每个页面增设一个访问计数器,每当一个页面被访问时,该页面的访问计数器就加1。