0. 前言考研适配版内存管理是操作系统的核心模块也是考研 408 的 “提分关键章”—— 选择题每年必考3~4 题综合题大概率涉及页面置换算法计算、地址变换流程、快表有效访问时间计算且知识点逻辑性强、易混淆点多如分页 vs 分段、缺页中断 vs 一般中断。本文核心优势考点全覆盖严格对标 408 大纲剔除冗余内容所有知识点均对应历年真题考点细节超深入每个考点补充 “原理 实现 考研易错点”避免 “只懂皮毛不会做题”应试性极强每个核心考点搭配真题案例、计算步骤、背诵口诀直接对接考场需求结构清晰按 “基础概念→分配方式→地址变换→虚拟内存→页面置换→高频总结” 分层便于复习和背诵。建议搭配上篇进程管理内容结合近 3 年真题练习形成 “知识点 解题” 的闭环轻松拿下内存管理全部分值。1. 内存管理的基本概念选择必考基础铺垫1.1 内存管理的核心目标背诵版内存管理的本质是 “高效利用内存、保障进程安全、支持并发执行”核心目标有 3 点内存利用率最大化减少内存碎片合理分配内存资源进程隔离与保护防止多个进程互相干扰如越界访问、权限违规地址重定位将用户程序的逻辑地址转换为物理地址让程序无需关注物理内存布局。1.2 内存的层次结构了解辅助理解考研仅考查 “内存主存 外存辅存” 的交互核心关联虚拟内存后续重点主存内存速度快、容量小、易失性进程运行时必须调入主存辅存外存速度慢、容量大、非易失性用于存放未运行的进程、数据是虚拟内存的基础。1.3 地址重定位地址转换高频考点1.3.1 核心定义用户编写程序时使用的是逻辑地址相对地址—— 从 0 开始编址与物理内存的实际地址无关而程序运行时必须将逻辑地址转换为物理地址绝对地址—— 内存中的实际存储地址这个转换过程称为地址重定位。1.3.2 两种重定位方式对比记忆选择必考对比维度静态重定位动态重定位转换时机程序装入内存时由装入程序完成程序运行过程中由硬件地址变换机构MMU完成核心特点转换后逻辑地址与物理地址绑定运行时不能移动进程转换与运行同步进程可在内存中移动支持紧凑硬件支持无需专门硬件仅需装入程序需要 MMU内存管理单元、基址寄存器、限长寄存器灵活性差无法共享内存好支持内存共享、动态分配考研易错点装入后地址固定不能移动必须依赖硬件缺页中断时可动态调整地址1.3.3 核心考点补充背诵动态重定位是现代操作系统的主流方式也是虚拟内存、内存紧凑的基础基址寄存器存放进程的物理地址起始值基址逻辑地址 基址 物理地址限长寄存器存放进程的逻辑地址最大长度用于越界检查逻辑地址限长→越界中断。1.4 内存保护基础考点选择常考内存保护的核心是 “防止进程越界访问、越权访问”主要通过两种方式实现越界检查通过基址寄存器 限长寄存器每次访问内存时检查逻辑地址是否在 [0, 限长) 范围内若超出则触发越界中断内中断权限检查区分系统态内核态和用户态进程在用户态下不能访问系统态的内存区域如操作系统内核代码、其他进程的内存。易错点提醒考研常考判断题越界检查是 “硬件 软件” 配合实现硬件负责实时检查软件负责处理越界中断内存保护不仅是 “保护进程自身”也是 “保护其他进程和操作系统”。2. 连续内存分配方式基础考点选择为主连续内存分配的核心是 “进程占用的内存是连续的物理块”分为 3 种方式重点考查每种方式的优缺点、碎片问题。2.1 单一连续分配最简单考点较少2.1.1 原理将整个物理内存划分为 “系统区” 和 “用户区”系统区存放操作系统内核代码和数据占用内存高端区域用户区整个区域分配给一个用户进程单用户、单任务如早期 DOS 系统。2.1.2 优缺点背诵优点实现简单、无碎片、开销小缺点内存利用率极低只能支持单任务无法实现多道程序并发。考研提醒该方式仅考查 “适用场景” 和 “无碎片” 两个点不会出综合题了解即可。2.2 固定分区分配多道程序的早期方式2.2.1 原理将物理内存划分为若干个固定大小的连续分区每个分区只能分配给一个进程分区大小可相同均分或不同不均分。均分所有分区大小一致适合多个相同大小的进程不均分分为大、中、小三种分区适配不同大小的进程如大分区给大型作业小分区给小型作业。2.2.2 核心问题内部碎片必考内部碎片定义分配给进程的分区大小进程实际需要的内存大小分区中未被使用的部分称为内部碎片举例一个进程需要 5MB 内存分配了一个 8MB 的固定分区剩余 3MB 即为内部碎片。2.2.3 优缺点背诵优点实现简单支持多道程序并发缺点内存利用率低内部碎片分区大小固定灵活性差无法适配大小超出分区的进程。2.3 动态分区分配可变分区重点考点2.3.1 原理不预先划分分区而是根据进程的实际内存需求动态分配连续的物理内存块分区大小 进程需求大小分配后剩余的内存作为空闲分区。2.3.2 四种分配算法选择必考对比记忆考研重点考查 “算法特点、适用场景、碎片影响”需逐一掌握搭配口诀记忆算法名称核心逻辑优点缺点口诀首次适应First Fit, FF空闲分区链按地址从低到高排序从头开始查找找到第一个能满足进程需求的空闲分区分配给进程实现简单、查找速度快优先利用低地址空闲区低地址区域容易产生大量小碎片碎片集中影响后续小进程分配从头找低地址碎片多循环首次适应Next Fit, NF与 FF 类似但不从表头开始查找而是从上一次分配的空闲分区的下一个分区开始查找空闲分区分布更均匀减少低地址碎片堆积可能导致高地址大空闲分区被拆分不利于大型进程分配从上一次分布更均匀最佳适应Best Fit, BF空闲分区链按大小从小到大排序查找 “最小的、能满足进程需求” 的空闲分区能最大限度利用空闲分区减少内部碎片碎片最小查找速度慢需遍历所有合适的分区容易产生大量极小的外部碎片无法利用找最小碎片小查找慢最坏适应Worst Fit, WF空闲分区链按大小从大到小排序查找 “最大的、能满足进程需求” 的空闲分区不易产生极小的外部碎片适合大型进程分配容易拆分大空闲分区后续大型进程无法分配查找速度较慢找最大防小碎毁大分区2.3.3 碎片问题核心考点区分内部 / 外部碎片1外部碎片动态分区特有定义多个空闲分区的总大小≥进程需求但每个空闲分区的大小都进程需求无法分配这些分散的空闲分区称为外部碎片举例内存中有 3 个空闲分区大小分别为 2MB、3MB、4MB一个进程需要 8MB 内存总空闲大小 9MB≥8MB但单个分区都无法满足即为外部碎片。2内部碎片 vs 外部碎片必背对比选择必考对比维度内部碎片外部碎片产生场景固定分区分配、分页存储管理动态分区分配、分段存储管理碎片特点分区内部未使用的空间与进程绑定分区之间的空闲空间分散存在解决方法无固定分区、页面大小优化分页紧凑拼接、非连续分配分页 / 分段2.3.4 紧凑拼接技术解决外部碎片原理通过移动内存中的进程将所有分散的空闲分区合并成一个连续的大空闲分区从而解决外部碎片问题。核心要求必须依赖动态重定位因为进程移动后物理地址发生变化需要运行时动态转换逻辑地址→物理地址。考研易错点紧凑技术会增加系统开销移动进程需要时间紧凑只能解决外部碎片不能解决内部碎片。3. 非连续分配分页、分段、段页式核心重点选择 综合题必考非连续分配的核心是 “进程占用的内存是分散的物理块”无需连续从根本上解决外部碎片问题是现代操作系统的主流内存分配方式也是考研重中之重。3.1 基本分页存储管理最基础、最核心必考3.1.1 核心原理背诵将进程的逻辑地址空间按固定大小划分为若干个 “页Page”将物理内存空间按与页相同的大小划分为若干个 “页框Page Frame又称页帧”进程的每个页可以分配到任意一个空闲的页框中无需连续通过页表建立 “页号→页框号” 的映射实现地址转换。3.1.2 关键概念必背避免混淆页大小Page Size页和页框的大小必须相同通常为 2 的整数次幂如 4KB、8KB由操作系统规定考研考点页大小越大页的数量越少页表越小但内部碎片越大页大小越小内部碎片越小但页表越大访存开销越大权衡关系。页号Page Number, P逻辑地址中用于标识 “当前地址属于哪个页” 的部分位数 log₂逻辑地址空间大小 / 页大小页内偏移量Page Offset, W逻辑地址中用于标识 “当前地址在页内的位置” 的部分位数 log₂页大小页表Page Table每个进程一张页表存放该进程所有页的 “页号→页框号” 映射关系页表项还包含 “存在位、访问位、修改位”后续虚拟内存会补充页表的作用建立逻辑页与物理页框的关联是地址转换的核心。3.1.3 逻辑地址结构必考计算基础逻辑地址由 “页号 P 页内偏移量 W” 两部分组成格式如下| 页号 Pk位 | 页内偏移量 Wm位 |逻辑地址总位数 k m最大逻辑地址空间 2^(km) 页的最大数量 × 页大小页内偏移量的范围0 ~ (2^m - 1)刚好等于页大小2^m。真题案例2022 年 408 选择题改编若页大小为 4KB2^12逻辑地址为 32 位则页号位数 32-1220 位页内偏移量位数 12 位最大页数量 2^201048576 页。3.1.4 地址转换流程综合题必考步骤清晰基本分页的地址转换需要 “两次访存”步骤如下背诵可直接套用真题拆分逻辑地址将逻辑地址拆分为 “页号 P” 和 “页内偏移量 W”检查页号合法性若 P ≥ 页表长度进程的总页数则触发越界中断访问页表根据页号 P在内存中的页表中找到对应的页框号 F计算物理地址物理地址 页框号 F × 页大小 页内偏移量 W访问物理内存根据计算出的物理地址访问内存中的数据或指令。易错点提醒页表存放在内存中因此访问一次页表需要一次访存访问数据需要第二次访存总共两次访存页内偏移量无需转换直接作为物理地址的低 m 位因为页和页框大小相同。3.1.5 快表 TLB联想存储器高频考点核心背景基本分页的 “两次访存” 会降低系统效率因此引入快表TLB用于缓存近期常用的页表项减少访存次数。核心原理快表是高速小容量的硬件缓存速度接近 CPU容量远小于内存快表中存放 “页号→页框号” 的映射关系仅缓存近期常用的页表项地址转换时先查询快表命中快表中有该页的映射直接获取页框号仅需 1 次访存访问数据未命中快表中无该页的映射按基本分页的流程访问内存中的页表1 次访存同时将该页表项存入快表替换掉不常用的项再访问数据第 2 次访存。快表有效访问时间EAT计算综合题必考计算公式背诵EAT 快表命中率 × (快表访问时间 内存访问时间) (1 - 快表命中率) × (快表访问时间 2×内存访问时间)真题案例2023 年 408 选择题改编已知快表访问时间为 10ns内存访问时间为 100ns快表命中率为 90%求有效访问时间 EAT。解EAT 0.9×(10100) 0.1×(102×100) 0.9×110 0.1×210 99 21 120ns易错点快表访问时间必须计入无论命中与否都需要先查询快表未命中时访存次数是 “快表访问 页表访存 数据访存”即 1 次快表访问 2 次内存访问。3.1.6 分页存储管理的优缺点背诵优点解决外部碎片问题内存利用率高支持多道程序并发地址转换简单缺点存在内部碎片页大小固定进程大小不一定是页大小的整数倍页表占用内存空间进程越大页表越大两次访存需快表优化。3.2 基本分段存储管理重点与分页对比必考3.2.1 核心原理背诵按程序的逻辑结构如主程序段、数据段、栈段、函数段将进程的逻辑地址空间划分为若干个 “段Segment”每个段有独立的逻辑地址从 0 开始编址段长不固定由程序逻辑决定物理内存按段的实际大小动态分配连续的物理块通过段表建立 “段号→段基址、段长” 的映射实现地址转换。3.2.2 关键概念必背段Segment逻辑单位用户可见程序员可明确划分段段长不固定段号Segment Number, S逻辑地址中标识 “当前地址属于哪个段” 的部分段内偏移量Segment Offset, W逻辑地址中标识 “当前地址在段内的位置” 的部分段表Segment Table每个进程一张段表每个段表项包含 “段号、段基址、段长、权限位”权限位用于内存保护如读 / 写 / 执行权限段基址该段在物理内存中的起始地址段长该段的实际大小用于越界检查段内偏移量段长→越界中断。3.2.3 逻辑地址结构必考逻辑地址由 “段号 S 段内偏移量 W” 两部分组成格式如下| 段号 Sk位 | 段内偏移量 Wm位 |与分页的区别分页的页内偏移量位数固定由页大小决定而分段的段内偏移量位数不固定由段长决定越界检查段内偏移量 W 必须该段的段长否则触发越界中断。3.2.4 地址转换流程综合题考点步骤背诵拆分逻辑地址将逻辑地址拆分为 “段号 S” 和 “段内偏移量 W”检查段号合法性若 S ≥ 段表长度进程的总段数则触发越界中断访问段表根据段号 S在内存中的段表中找到对应的段基址和段长检查段内偏移合法性若 W ≥ 段长则触发越界中断计算物理地址物理地址 段基址 段内偏移量 W访问物理内存根据物理地址访问数据或指令。3.2.5 分页 vs 分段必背对比选择 简答题必考这是考研 408 的高频考点每年至少 1 道选择题需从 “本质、大小、碎片、用户可见性” 等维度彻底区分背诵下表对比维度分页存储管理分段存储管理本质物理单位按内存物理布局划分逻辑单位按程序逻辑结构划分用户可见性不可见由操作系统自动划分可见程序员可手动划分段大小页大小固定由操作系统规定2ⁿ段长不固定由程序逻辑决定碎片类型内部碎片页内未使用空间外部碎片段之间的空闲空间地址转换页号→页框号无需段长检查页内偏移≤页大小段号→段基址需段长检查段内偏移≤段长访存次数基本分页 2 次快表优化后 1 次固定 2 次段表 数据共享与保护便于共享按页共享保护粒度粗更利于共享按段共享如共享函数段保护粒度细按段设置权限核心用途提高内存利用率解决外部碎片适配程序逻辑便于共享和保护3.2.6 分段存储管理的优缺点背诵优点无内部碎片按逻辑结构划分用户友好便于共享和保护粒度细缺点存在外部碎片可通过紧凑解决段长不固定分配和管理复杂地址转换需两次访存无快表优化因为段长不固定无法缓存固定格式的映射。3.3 段页式存储管理综合分页与分段的优点考点较少3.3.1 核心原理背诵结合分页和分段的优势分两步划分先按程序逻辑结构分段与分段管理一致得到若干个段对每个段按固定大小分页与分页管理一致得到若干个页物理内存划分为页框通过 “段表→页表→页框” 的二级映射实现地址转换。3.3.2 逻辑地址结构必考逻辑地址由 “段号 S 页号 P 页内偏移量 W” 三部分组成格式如下| 段号 Sk位 | 页号 Pm位 | 页内偏移量 Wn位 |逻辑地址总位数 k m n地址转换时先通过段号找段表得到该段的页表基址再通过页号找页表得到页框号最后计算物理地址。3.3.3 地址转换流程了解选择考点拆分逻辑地址S、P、W访问段表根据 S 找到段表项获取该段的页表基址和页表长度检查页号合法性P ≥ 页表长度→越界中断访问页表根据 P 和页表基址找到页框号 F计算物理地址F × 页大小 W访问物理内存。3.3.4 访存次数必考段页式的地址转换需要3 次访存访问段表1 次→访问页表1 次→访问数据1 次系统开销比分页、分段都大。3.3.5 优缺点背诵优点无内部碎片分页、无外部碎片分段便于共享和保护分段提高内存利用率分页缺点系统开销大3 次访存、段表 页表占用更多内存管理复杂二级映射。考研提醒段页式仅考查 “逻辑地址结构、访存次数、优缺点”很少出综合题重点掌握与分页、分段的区别即可。4. 虚拟内存管理考研绝对重点选择 综合题必考虚拟内存是内存管理的核心难点也是 408 综合题的高频考点每年大概率涉及缺页中断、页面置换算法核心围绕 “局部性原理” 展开需重点掌握原理、特征、请求分页、缺页中断、页面置换算法。4.1 虚拟内存的核心原理必背4.1.1 引入背景多道程序并发时内存容量有限无法将所有进程的全部内容都装入内存若仅装入部分进程会降低系统吞吐量若强行装入会导致内存溢出。因此引入虚拟内存逻辑上扩充内存容量让进程无需一次性全部装入内存即可运行。4.1.2 核心基础局部性原理必考背诵虚拟内存的实现依赖 “局部性原理”—— 进程运行时只需要访问一部分代码和数据局部其余部分可存放在外存需要时再调入内存具体分为两种局部性时间局部性近期访问过的地址短期内再次访问的概率高如循环语句、频繁使用的变量空间局部性访问某个地址时其附近的地址也大概率会被访问如数组、连续的代码段。4.1.3 虚拟内存的定义背诵虚拟内存是指操作系统通过 “请求调入” 和 “页面置换” 技术将外存辅存和内存主存结合起来为用户提供一个逻辑上比实际内存大得多的地址空间进程运行时仅需将当前需要的部分装入内存其余部分存放在外存需要时再动态调入无需用户干预。4.1.4 虚拟内存的特征必背选择必考虚拟内存有 3 个核心特征称为 “虚拟内存的三大特性”多次性进程无需一次性全部装入内存可分多次调入按需调入对换性进程的部分内容可在内存和外存之间动态换入换出不需要时换出需要时换入虚拟性逻辑上扩充内存容量用户看到的地址空间远大于实际物理内存容量。易错点提醒虚拟内存的 “虚拟” 是 “逻辑上的扩充”实际物理内存大小不变只是利用外存充当 “虚拟内存”虚拟内存的实现必须依赖 “动态重定位” 和 “中断机制”缺页中断。4.2 虚拟内存的实现方式选择必考考研仅考查 3 种实现方式重点掌握 “请求分页、请求分段”了解 “请求段页式”请求分页存储管理基于基本分页增加 “请求调入” 和 “页面置换” 功能最常用综合题必考请求分段存储管理基于基本分段增加 “请求调入” 和 “段置换” 功能考点较少请求段页式存储管理基于段页式增加 “请求调入” 和 “页面置换” 功能系统开销大极少考查。4.3 请求分页存储管理核心重点综合题必考请求分页是虚拟内存的主流实现方式在基本分页的基础上增加了 “缺页中断机构”“页面置换机构”并扩展了页表项的内容。4.3.1 核心改进背诵页表项扩展新增 4 个字段必考表格页号页框号存在位P访问位A修改位M外存地址-内存中的页框号存在时有效0 页不在内存1 页在内存0 未访问1 已访问用于页面置换0 未修改1 已修改用于页面置换减少外存 I/O页在辅存中的地址缺页时调入存在位P核心字段判断是否缺页访问位A、修改位M用于页面置换算法优化置换效率。缺页中断机构当访问的页不在内存存在位 0时触发缺页中断调入该页页面置换机构当内存无空闲页框时置换内存中不常用的页为新调入的页腾出空间。4.3.2 缺页中断高频考点与一般中断的区别缺页中断的处理流程背诵综合题可能考查进程访问逻辑地址拆分页号和页内偏移检查页表的存在位若存在位 1正常地址转换若存在位 0触发缺页中断操作系统响应中断保存当前进程的上下文检查内存是否有空闲页框有空闲页框从外存调入该页存入空闲页框更新页表存在位 1、页框号、访问位 1、修改位 0无空闲页框调用页面置换算法置换内存中的一页将其写回外存若修改位 1再调入新页更新页表和空闲页框恢复进程上下文重新执行当前指令缺页中断后指令需重新执行。缺页中断与一般中断的区别必背选择必考中断时机一般中断是在 “指令执行完毕后” 触发缺页中断是在 “指令执行过程中”访问内存时触发中断次数一次缺页中断仅处理一个缺页若一个指令需要访问多个页可能触发多次缺页中断处理结果一般中断处理完后执行下一条指令缺页中断处理完后重新执行当前指令因为当前指令未执行完成。4.3.3 缺页率计算考点定义缺页率 缺页次数 / 总访问次数 × 100%缺页率越低系统效率越高影响缺页率的因素页大小、内存物理块数、页面置换算法、进程的访问模式。真题案例2024 年 408 选择题改编一个进程共访问 1000 次内存其中缺页 20 次求缺页率20/1000×100% 2%。4.4 页面置换算法综合题必考计算重点页面置换算法的核心是 “当内存无空闲页框时选择哪个页进行置换”考研重点考查 4 种算法OPT、FIFO、LRU、CLOCK其中 LRU 必考计算FIFO 考查 Belady 异常OPT 考查原理。4.4.1 算法 1最佳置换算法OPT理论最优不可实现核心逻辑置换 “未来最久不使用” 的页即当前页中后续最长时间内不会被访问的页。优点与缺点优点缺页率最低是所有置换算法的 “理论基准”缺点无法实现需要预知进程未来的访问序列仅用于对比其他算法。真题案例理解原理访问序列7、0、1、2、0、3、0、4、2、3、0、3、2、1、2、0、1、7、0、1内存物理块数3OPT 置换过程7、0、1 → 无缺页3 个块装满访问 2未来最久不使用的是 7 → 置换 7块变为 2、0、1缺页 1 次访问 0已在内存无缺页访问 3未来最久不使用的是 1 → 置换 1块变为 2、0、3缺页 2 次后续访问按 “未来最久不使用” 原则置换最终缺页率最低。4.4.2 算法 2先进先出置换算法FIFO简单易实现核心逻辑置换 “最早进入内存” 的页按进入内存的顺序排队先进入的先置换符合 “队列” 的 FIFO 原则。优点与缺点优点实现简单无需记录页面访问情况缺点缺页率较高可能出现Belady 异常考研必考。关键考点Belady 异常必背定义当内存物理块数增加时缺页率反而上升的现象是 FIFO 算法特有的缺陷原因FIFO 算法只考虑页面进入内存的顺序不考虑页面的访问频率可能将常用的页置换出去真题提醒Belady 异常仅存在于 FIFO 算法其他算法LRU、CLOCK、OPT均不会出现。计算案例真题适配步骤清晰访问序列3、2、1、0、3、2、4、3、2、1、0、4内存物理块数3要求用 FIFO 算法计算缺页次数和缺页率。解题步骤考研标准书写初始化内存块为空缺页次数 0访问 3内存块 [3]缺页1 次访问 2内存块 [3,2]缺页2 次访问 1内存块 [3,2,1]缺页3 次访问 0最早进入的是 3 → 置换 3内存块 [0,2,1]缺页4 次访问 3最早进入的是 2 → 置换 2内存块 [0,3,1]缺页5 次访问 2最早进入的是 1 → 置换 1内存块 [0,3,2]缺页6 次访问 4最早进入的是 0 → 置换 0内存块 [4,3,2]缺页7 次访问 3已在内存无缺页访问 2已在内存无缺页访问 1最早进入的是 4 → 置换 4内存块 [1,3,2]缺页8 次访问 0最早进入的是 3 → 置换 3内存块 [1,0,2]缺页9 次访问 4最早进入的是 1 → 置换 1内存块 [4,0,2]缺页10 次计算缺页率缺页次数 10 / 总访问次数 12 ≈ 83.3%。4.4.3 算法 3最近最少使用置换算法LRU必考计算核心逻辑置换 “最近最久未使用” 的页即当前页中距离当前时间最近、最久没有被访问的页符合 “局部性原理”性能接近 OPT可实现。实现方式了解选择考点栈实现将近期访问的页压入栈顶未访问的页在栈底置换时弹出栈底的页计数器实现为每个页设置访问计数器每次访问时更新计数器置换时选择计数器值最小的页。计算案例真题适配考研标准步骤访问序列3、2、1、0、3、2、4、3、2、1、0、4内存物理块数3要求用 LRU 算法计算缺页次数和缺页率。解题步骤必背可直接套用初始化内存块为空缺页次数 0访问 3内存块 [3]缺页1 次访问 2内存块 [3,2]缺页2 次访问 1内存块 [3,2,1]缺页3 次访问 0最近最久未使用的是 3 → 置换 3内存块 [2,1,0]缺页4 次访问 3最近最久未使用的是 2 → 置换 2内存块 [1,0,3]缺页5 次访问 2最近最久未使用的是 1 → 置换 1内存块 [0,3,2]缺页6 次访问 4最近最久未使用的是 0 → 置换 0内存块 [3,2,4]缺页7 次访问 3已在内存更新为最近访问内存块 [2,4,3]无缺页访问 2已在内存更新为最近访问内存块 [4,3,2]无缺页访问 1最近最久未使用的是 4 → 置换 4内存块 [3,2,1]缺页8 次访问 0最近最久未使用的是 3 → 置换 3内存块 [2,1,0]缺页9 次访问 4最近最久未使用的是 2 → 置换 2内存块 [1,0,4]缺页10 次计算缺页率10/12≈83.3%与 FIFO 缺页次数相同但实际场景中 LRU 缺页率更低。易错点提醒LRU 算法中“最近访问” 的页需要 “更新位置”如栈顶避免误判 “最久未使用”计算时务必逐一步骤记录内存块的变化避免漏更访问顺序。4.4.4 算法 4时钟置换算法CLOCK又称 NRU 算法近似 LRU核心逻辑基于 “访问位”将内存中的页按环形排列时钟环形设置一个指针每次置换时从当前指针位置开始扫描若页面的访问位 1将访问位改为 0指针继续移动若页面的访问位 0置换该页指针停在该页的下一个位置。优点与缺点优点实现简单开销低无需记录访问顺序仅需维护访问位实际系统中常用缺点性能略低于 LRU是 LRU 的 “近似算法”。改进型 CLOCK 算法考研考点了解在访问位的基础上增加 “修改位”优先置换 “未访问、未修改” 的页减少外存 I/O修改过的页需要写回外存未修改的页可直接置换置换优先级从高到低访问位 0修改位 0最优无需写回外存访问位 0修改位 1需写回外存访问位 1修改位 0需重置访问位访问位 1修改位 1最后置换。4.4.5 四种算法对比必背选择必考算法名称核心逻辑优点缺点是否出现 Belady 异常考研考查重点OPT置换未来最久不使用的页缺页率最低理论最优不可实现否原理、与其他算法对比FIFO置换最早进入的页实现简单缺页率高是Belady 异常、计算LRU置换最近最久未使用的页性能接近 OPT可实现实现开销大否计算必考CLOCK基于访问位环形扫描实现简单、开销低性能略低于 LRU否原理、改进型4.5 工作集与抖动颠簸高频考点4.5.1 工作集背诵定义工作集是指进程在某段时间内通常用 Δ 表示称为工作集窗口正在使用的页面集合记为 WS (Δ,t)即 t 时刻前 Δ 时间内进程访问过的所有页面的集合。核心作用工作集是虚拟内存分配的依据 —— 为进程分配的物理块数应不小于其工作集大小否则会导致频繁缺页。4.5.2 抖动Thrashing必考定义当系统中多个进程的工作集总和大于物理内存容量时进程会频繁发生缺页中断频繁进行页面置换导致 CPU 利用率急剧下降、系统吞吐量降低的现象称为抖动颠簸。产生原因必背核心原因为进程分配的物理块数其工作集大小进程频繁缺页、频繁置换。其他原因多道程序度过高内存资源竞争激烈。解决方法必背选择 简答题考点调整多道程序度降低多道程序度减少内存竞争为进程分配足够的物理块确保物理块数≥工作集大小采用局部置换策略进程只能置换自己的页面不能置换其他进程的页面优化页面置换算法采用 LRU、CLOCK 等高效算法降低缺页率引入工作集模型根据工作集大小动态分配物理块。5. 考研高频考点总结可直接背诵适配冲刺5.1 核心概念背诵选择题必考动态重定位需要硬件支持MMU、基址 / 限长寄存器可支持进程移动、紧凑内部碎片固定分区、分页外部碎片动态分区、分段分页是物理单位用户不可见分段是逻辑单位用户可见基本分页访存 2 次快表优化后 1 次段页式访存 3 次虚拟内存基于局部性原理三大特征多次性、对换性、虚拟性缺页中断是内中断指令会重新执行可触发多次Belady 异常仅存在于 FIFO 算法其他算法无LRU 是考研必考计算算法CLOCK 是实际系统常用算法抖动的原因物理块数工作集大小解决方法核心是 “增加物理块、降低多道程序度”快表有效访问时间 EAT 的计算公式注意命中与未命中的访存次数。5.2 综合题解题模板直接套用模板 1快表有效访问时间计算明确已知条件快表访问时间、内存访问时间、快表命中率代入公式EAT 命中率 ×(快表时间 内存时间) (1 - 命中率)×(快表时间 2× 内存时间)计算结果注意单位统一。模板 2页面置换算法计算FIFO、LRU列出访问序列、内存物理块数逐一步骤记录内存块的变化标记每次缺页统计缺页次数计算缺页率若考查 FIFO需判断是否出现 Belady 异常增加物理块数重新计算缺页率看是否上升。模板 3地址转换流程分页、分段拆分逻辑地址分页页号 页内偏移分段段号 段内偏移检查合法性页号 / 段号是否超出范围段内偏移是否超出段长访问页表 / 段表获取页框号 / 段基址计算物理地址分页页框号 × 页大小 页内偏移分段段基址 段内偏移。5.3 易错点终极提醒避开考研陷阱混淆 “页表” 和 “快表”页表在内存快表是硬件缓存缺页中断后指令重新执行不是执行下一条分页有内部碎片分段有外部碎片段页式无碎片Belady 异常仅 FIFO 有其他算法包括 LRU均无工作集是 “某段时间内使用的页面集合”不是 “所有页面”虚拟内存不是 “实际内存”是逻辑上的扩充依赖外存。6. 下一篇预告考研适配本文已完整覆盖内存管理所有考研考点结合上篇进程管理、近 3 年真题形成了 “基础→进阶→真题→细节” 的完整闭环。下一篇将继续讲解操作系统核心模块适配考研 408 节奏