先说枯燥的。 很多程序员甚至没有听说过虚拟内存这个概念, 情有可原, 因为虚拟内存机制虚拟得太好, 所以, 很多非计算机专业的人, 根本就没有感知到, 包括我。 虚拟内存号称能虚拟出比实际内存更多的内存, 这是扯淡吗? 如果不是, 它又是怎样做到的呢?
先不说这些。
在古代, 皇帝可谓一手遮天, 想要什么就有什么, 想和谁约会, 就跟谁约会。
这天, 皇帝对礼部尚书说, 需要三千个妃子, 放在宫中, 便于自己与她们缠绵, 约会。
礼部尚书一头大汗, 紧张得不得了, 于是对皇帝说, 皇宫只有闺房一千, 每个闺房只能住一名妃子, 怎么也容纳不下三千妃子啊。
皇帝说, 我不管, 如果达不到这个要求, 就是抗旨。
在计算机中, 也是如此, 命名需要3000的内存, 可惜内存只有1000, 怎么办?
礼部尚书想了很多办法, 所以最后采取了三种策略, 满足了皇帝的要求:
1. FIFO算法: 最先进宫的妃子, 皇帝已经约会过了, 很久远了, 皇帝可能不会再约会了, 所以驱逐出宫, 换成新的漂亮妃子, 那么在皇帝看来, 就有了1001个妃子, 如此不断置换, 是可以达到3000个妃子的。 对皇帝来说, 目标达成。 而且, 请注意, 只用1000个房间哦。
2. LRU算法: 从最近算起, 最长时间没有约会过的妃子, 淘汰掉, 并且从宫外引入新的。
3. LFU算法: 在一定时间内, 约会次数最少的, 淘汰掉, 并且从宫外引入新的。
那么, 皇帝布置的任务就这么完成了, 而且, 在皇帝看看, 自己确实拥有了3000个妃子。
再对照计算机虚拟内存看看吧, 一切就不那么云里雾里的了。
---------------------
作者:stpeace
来源:CSDN
原文:https://blog.csdn.net/stpeace/article/details/78145382
版权声明:本文为博主原创文章,转载请附上博文链接!