【操作系统】页面置换算法(CLOCK/改进型CLOCK)

发布时间:2026/8/28 22:22:49

【操作系统】页面置换算法(CLOCK/改进型CLOCK)
考点频率★★★★☆选择题常考是LRU的工程实现方案难度⭐⭐⭐建议重点掌握CLOCK算法的指针扫描过程理解改进型CLOCK中访问位和修改位的组合策略1️⃣ 为什么需要CLOCK算法上一篇文章讲了LRU最近最久未使用它性能很好但存在一个实际问题LRU需要记录每个页面的精确访问顺序如维护一个访问链表或时间戳硬件开销大实现成本高。能不能用更简单的硬件机制实现近似LRU的效果CLOCK算法就是这样一个经典方案。它用一个指针和一个“使用位”访问位来近似判断哪些页面最近被访问过被广泛应用于实际操作系统如Linux、Windows的页置换。2️⃣ 基本CLOCK算法又称NRUNot Recently Used2.1 数据结构内存中的页面排成一个循环队列每个页面有一个使用位Reference BitR位页面被访问时R位被硬件置为1页面未被访问时R位保持为0系统维护一个指针Hand指向当前要检查的位置2.2 算法步骤发生缺页时检查指针当前指向的页面如果R 0选择该页面换出淘汰指针指向下一个位置如果R 1将R位清零清为0指针指向下一个位置继续检查重复步骤1直到找到一个 R 0 的页面进行置换核心逻辑给每一个页面一个“第二次机会”。被访问过的页面R1指针经过时不清除相当于“保留一次”。如果一轮循环后所有页面都刚被访问过指针转了一圈自然会把第一个遇到的R0页面即最早被清0的淘汰。2.3 算法执行示例假设内存中有3个页面页框指针初始指向页框0访问序列中发生缺页时操作如下页框初始R位指针指向缺页处理过程结果页框01指针→页框0R1 → 清0指针移向页框1继续扫描页框11指针→页框1R1 → 清0指针移向页框2继续扫描页框20指针→页框2R0 →淘汰页框2装入新页R1指针移向页框0完成置换注意到R0的页面被淘汰后指针指到了下一个位置页框0而不是原地。这保证了公平性。2.4 优点与缺点优点缺点硬件开销小只需要一个访问位只是LRU的近似不能精确区分页面的访问时间先后顺序实现简单性能稳定如果所有页面的R位都为1需要扫描一整圈才能淘汰一个页面最坏情况3️⃣ 改进型CLOCK算法增强型NRU基本CLOCK算法只考虑了页面是否被访问过但没有考虑页面是否被修改过。如果换出一个被修改过的页面脏页需要写回磁盘代价比换出干净页要大得多。改进型CLOCK在R位的基础上增加了修改位Modified BitM位也称脏位根据R和M的组合决定淘汰优先级。3.1 四种页面类别类别R位M位含义淘汰优先级第1类00最近未访问且未被修改最高最优淘汰第2类01最近未访问但已被修改中等换出前需写回磁盘第3类10最近被访问但未被修改较低给第二次机会第4类11最近被访问且已被修改最低最不希望淘汰3.2 算法扫描过程改进型CLOCK执行多轮扫描每次扫描寻找不同类别的页面第一轮扫描寻找(R0, M0)的页面找到即淘汰。扫描过程中将遇到的R1的页面置为0给它们第二次机会但M位不变。第二轮扫描如果第一轮没找到寻找(R0, M1)的页面找到即淘汰。第三轮扫描如果还没找到重新扫描一遍此时所有R位都已被清零。再次寻找(R0, M0)并淘汰因为第一轮时R1的页面已被清0。第四轮扫描如果仍然没有再次寻找(R0, M1)并淘汰必能找到。3.3 为什么第四轮一定能找到经过前三轮所有的R位都已经是0且页面的M位非0即1。因此第四轮扫描时(0,0)和(0,1)两类页面必然存在至少能找到一类。这是算法终止的保障。4️⃣ 基本CLOCK vs 改进型CLOCK对比项基本CLOCK改进型CLOCK使用位仅R位访问位R位访问位 M位修改位淘汰依据仅看是否最近被访问同时考虑是否被访问和是否被修改是否考虑磁盘I/O代价否是优先淘汰干净页扫描轮数通常1轮最多4轮实现复杂度低中等5️⃣ 经典例题例题1某系统采用基本CLOCK置换算法内存中有4个页面R位依次为[1, 0, 0, 1]指针当前指向第0个页面。发生缺页中断时被淘汰的页面是哪个解析检查页0R1 → 清0指针→页1检查页1R0 → 淘汰页1答案页1例题2某系统采用改进型CLOCK算法某时刻内存中4个页面的R位和M位分别为页0: (1,0)页1: (0,1)页2: (0,0)页3: (1,1)指针指向页0。发生缺页时淘汰哪个页面解析第一轮扫描查找(0,0)页0: (1,0) → R清0变成(0,0)指针→页1页1: (0,1) → 不是目标指针→页2页2: (0,0) →找到淘汰页2答案页2例题3概念改进型CLOCK算法相比基本CLOCK算法主要改进之处在于 。A. 增加了R位B. 增加了M位优先淘汰未被修改的页面C. 用链表代替循环队列D. 淘汰页面时不需要扫描解析改进型CLOCK增加了修改位M位优先淘汰(0,0)类页面未被访问且未被修改以减少磁盘I/O开销。选B。6️⃣ 记忆口诀时钟算法循环查R位为零就换它。R位为一清零走二次机会给一下。改进加上M位判优先替换干净页。零零最优零一次一一最差放一边。7️⃣ 小测验评论区对答案某系统采用基本CLOCK置换算法内存中有3个页面R位依次为[0, 1, 1]指针当前指向页0。发生缺页中断时被淘汰的页面是 。经过这次淘汰后指针指向 。A. 页0页1B. 页0页2C. 页1页2D. 页2页0本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #CLOCK算法 #页面置换 #NRU #操作系统

相关新闻

高Tg PCB材料(Tg≥170°C)在无铅制程中的5项性能实测与失效分析

高Tg PCB材料(Tg≥170°C)在无铅制程中的5项性能实测与失效分析

2026/8/21 20:42:51

高Tg PCB材料在无铅制程中的性能实测与失效机理深度解析1. 高Tg材料的核心价值与测试方法论在当今电子工业向高密度、高可靠性发展的趋势下,PCB材料的玻璃化转变温度(Tg)已成为衡量基板性能的关键指标。不同于普通FR-4材料(130-150C),Tg≥170C的高性能基…

AI 辅助内容生产与网站优化的实践:效率提升在哪、边界在哪

AI 辅助内容生产与网站优化的实践:效率提升在哪、边界在哪

2026/8/28 0:06:00

对做内容和维护站点的技术从业者来说,这套"AI 员工"的用法很实用:把 AI 当作辅助工具,参与到内容生产、网站结构优化、数据监测等重复性工作中,从而提升效率、腾出人手做更需要判断的事。它是助手,不是万能钥…

AI编程接单实战复盘:Claude Code 4天完成电商开票系统迭代,5000元私活全过程

AI编程接单实战复盘:Claude Code 4天完成电商开票系统迭代,5000元私活全过程

2026/8/28 11:13:55

上个月,我在工资之外赚到了一笔开发费:5000块。 单子不大,但对一个写了10年Java的人来说,它回答了一个我惦记很久的问题:AI编程接私活,到底跑不跑得通? 这篇把整个过程复盘给你,包括…

聚类分析实战:K-Means、DBSCAN与层次聚类的算法原理与选型指南

聚类分析实战:K-Means、DBSCAN与层次聚类的算法原理与选型指南

2026/8/28 22:19:35

1. 从“物以类聚”到数据洞察:聚类分析为何是建模的必修课如果你正在学习数学建模,或者已经接触过一些回归、分类的算法,那么“聚类分析”这个概念你一定不陌生。但很多人对它的理解,可能还停留在“把相似的东西分到一组”这个模糊…

蓝桥杯特殊时间枚举:Python暴力循环与优化算法详解

蓝桥杯特殊时间枚举:Python暴力循环与优化算法详解

2026/8/28 22:19:35

1. 问题引入:从“特殊时间”到“日期枚举”的思维跃迁最近在准备蓝桥杯的填空题,遇到了一道名为“特殊时间”的题目。题目本身没有给出具体描述,但从“特殊时间”这个标题和常见的出题套路来看,这大概率是一道关于日期或时间格式的…

Python编程进阶:流程控制、函数与数据结构核心语法详解

Python编程进阶:流程控制、函数与数据结构核心语法详解

2026/8/28 22:19:35

1. 项目概述:从“能跑”到“写好”上一期我们聊了Python的变量、数据类型和基础运算符,算是把盖房子的砖瓦备齐了。这一期,我们得聊聊怎么用这些砖瓦砌墙、搭结构了。如果说基础语法(一)是让你写的代码“能跑”&#x…

基于PyTorch与LSTM的共享单车需求时序预测实战指南

基于PyTorch与LSTM的共享单车需求时序预测实战指南

2026/8/28 22:19:35

简介:时间序列预测是数据分析与机器学习领域的核心任务之一,旨在根据历史数据模式推断未来趋势。其核心原理在于捕捉数据中的时序依赖关系,如趋势性、周期性与季节性。在深度学习框架下,循环神经网络(RNN)及…

Linux系统时钟同步:Chrony原理、部署与运维实战指南

Linux系统时钟同步:Chrony原理、部署与运维实战指南

2026/8/28 22:19:35

1. 项目概述:为什么Linux系统时钟同步是运维的“生命线”在分布式系统和微服务架构大行其道的今天,时间不一致带来的麻烦,可能比你想象的要严重得多。想象一下,一个电商平台的订单系统显示下单时间是“13:00:05”,而支…

Windows Server实战:从AD域到IIS的完整网络服务部署与排错指南

Windows Server实战:从AD域到IIS的完整网络服务部署与排错指南

2026/8/28 22:09:34

1. 项目概述与核心价值“2022年全国职业院校技能大赛:网络系统管理项目-模块B--Windows样题2”,这个标题对于所有计算机网络技术、信息安全等相关专业的师生,以及刚入行的网络运维工程师来说,绝对是一个重量级的实战练兵场。它不是…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…