后宫佳丽到底有几千?------聊聊页面置换算法之FIFO LRU LFU

来源:互联网 发布:mac解压zip文件的软件 编辑:程序博客网 时间:2024/05/17 03:20

        先说枯燥的。 很多程序员甚至没有听说过虚拟内存这个概念,  情有可原, 因为虚拟内存机制虚拟得太好, 所以, 很多非计算机专业的人, 根本就没有感知到, 包括我。 虚拟内存号称能虚拟出比实际内存更多的内存, 这是扯淡吗? 如果不是, 它又是怎样做到的呢?

        先不说这些。

 

        在古代, 皇帝可谓一手遮天, 想要什么就有什么, 想和谁约会, 就跟谁约会。

        这天, 皇帝对礼部尚书说, 需要三千个妃子, 放在宫中, 便于自己与她们缠绵, 约会。 

        礼部尚书一头大汗, 紧张得不得了, 于是对皇帝说, 皇宫只有闺房一千, 每个闺房只能住一名妃子, 怎么也容纳不下三千妃子啊。

        皇帝说, 我不管, 如果达不到这个要求, 就是抗旨。 


        在计算机中, 也是如此, 命名需要3000的内存, 可惜内存只有1000, 怎么办?


        礼部尚书想了很多办法, 所以最后采取了三种策略, 满足了皇帝的要求:

        1.  FIFO算法:  最先进宫的妃子, 皇帝已经约会过了, 很久远了, 皇帝可能不会再约会了, 所以驱逐出宫, 换成新的漂亮妃子, 那么在皇帝看来, 就有了1001个妃子, 如此不断置换, 是可以达到3000个妃子的。 对皇帝来说, 目标达成。 而且, 请注意, 只用1000个房间哦。

       2. LRU算法:    从最近算起, 最长时间没有约会过的妃子, 淘汰掉, 并且从宫外引入新的。

       3. LFU算法:    在一定时间内, 约会次数最少的,  淘汰掉, 并且从宫外引入新的。


        那么, 皇帝布置的任务就这么完成了, 而且, 在皇帝看看, 自己确实拥有了3000个妃子。

        再对照计算机虚拟内存看看吧, 一切就不那么云里雾里的了。




原创粉丝点击