虚拟内存出现的原因:
内存不够用
技术实现:
在前面分页的基础上,将内存中的页的内容放到硬盘,下面的几种技术放的单位不一样。
覆盖技术:以某几个函数或者功能为单位
交换技术:以程序为单位
虚存技术:以页为单位,将程序中不用的某些页的部分放到硬盘中去
页面替换算法:
有可能要访问的内存放到硬盘中去了,计算机找不到会产生缺页异常,然后将硬盘对应的数据放到内存的页中来,但是这里有个问题,如果内存也满了呢?那就要将某些页替换出去,其中有好几种页面替换算法。
-
FIFO:就是将内存中最早放进来的页替换出去,可能是基于这种考虑——最早的可能早就已经做完工作了,最新的都是比较频繁用到的。
-
LRU最久未被访问:跟FIFO不同,这里用的访问的时间,而不是放到内存的时间。根据的是程序局部性原理。
LRU的实现可以用栈或者是链表来维护,但是其复杂度都是O(n),故而要采用更好的方法。

- 时钟页面置换算法:
LRU的逼近算法
网友评论