00:00 / 07:20
连播
清屏
智能
倍速
点赞4572
现在学八股还有意义吗? 1. FIFO(First-In First-Out,先进先出) 核心思想:选择最早进入内存的页面置换出去(类似队列“先进先出”)。 实现:用队列维护页面进入顺序,置换队首页面。 特点: 优点:实现简单(仅需记录页面进入时间); 缺点:Belady异常(分配的物理页框数增加时,缺页率反而上升,如某些访问序列下); 示例:页面访问序列 1→2→3→4→1→2→5→1→2→3→4→5 ,若页框数为3,缺页次数为9次;页框数为4时,缺页次数增至10次。 2. OPT(Optimal Page Replacement,最佳置换算法) 核心思想:选择未来最长时间内不会被访问的页面置换出去(“理想算法”)。 实现:需预知未来的页面访问序列(实际无法做到,仅作理论基准)。 特点: 优点:缺页率最低,是衡量其他算法的“黄金标准”; 缺点:无法实际应用(需预知未来); 示例:上述序列中,页框数3时,OPT缺页次数为7次(优于FIFO的9次)。 3. LRU(Least Recently Used,最近最少使用) 核心思想:选择最近一段时间内最久未被访问的页面置换出去(基于“局部性原理”:最近访问的页面未来可能再次访问)。 实现:需记录页面的最后访问时间(如用栈、计数器或矩阵),置换栈底/计数最小的页面。 特点: 优点:性能接近OPT(缺页率低),无Belady异常; 缺点:实现开销大(需实时更新访问时间,如硬件支持“访问位”); 示例:上述序列中,页框数3时,LRU缺页次数为8次(接近OPT的7次)。 二、实际系统常用算法(工程向) 4. Clock(时钟)算法(又称“最近未使用”NRU改进) 核心思想:用环形队列+访问位模拟LRU,是LRU的低开销近似。 实现: 将页面组织成环形队列,每个页面设一个访问位(0=未访问,1=已访问); 置换时,扫描队列:若访问位为0,直接置换;若为1,置为0并继续扫描(“扫一圈”相当于给页面“第二次机会”)。 特点: 优点:兼顾性能与开销(无需精确时间戳),是实际系统主流(如Linux、Windows); 变种:改进Clock算法(增加“修改位”,优先置换“未修改+未访问”的页面,减少磁盘IO)。 5. LFU(Least Frequently Used,最不经常使用) 核心思想:选择访问
00:00 / 00:10
连播
清屏
智能
倍速
点赞4123
00:00 / 00:22
连播
清屏
智能
倍速
点赞527
00:00 / 16:30
连播
清屏
智能
倍速
点赞1136
00:00 / 04:54
连播
清屏
智能
倍速
点赞8827
00:00 / 01:57
连播
清屏
智能
倍速
点赞NaN