1. 从一份“ch12-2”笔记说起操作系统复习到底在复习什么看到“OS复习笔记ch12-2”这个标题我第一反应是这大概率是某位同学在啃操作系统教材第十二章后半部分时整理出来的复习材料。操作系统这门课几乎每个计算机相关专业的人都要过一遍但真正能把第十二章这种“收尾章节”啃透的人并不多。原因很简单——前面进程管理、内存管理、文件系统这些内容已经把人折腾得够呛到了后面几章很多人已经进入“能过就行”的状态笔记也记得潦草。但恰恰是这种后半部分的章节往往是考试拉开差距的地方。我见过太多人前面章节背得滚瓜烂熟一到综合题、设计题就露馅问题就出在对后半部分内容的理解深度不够。所以当我看到“ch12-2”这个编号时脑子里浮现的是一个很具体的场景某本经典操作系统教材的第十二章第二个大节内容大概率涉及磁盘调度、文件系统实现、I/O管理或者虚拟化相关的收尾知识点。不同教材章节划分不一样但第十二章通常已经进入“存储与I/O”这个板块的后半段。这份笔记的核心价值不在于“记录了什么”而在于“怎么组织”。一份好的OS复习笔记不是把教材目录抄一遍而是要把散落在各节的概念用一条主线串起来。我个人的经验是操作系统后半部分的复习主线只有一条数据从产生到落盘中间经过了哪些层、每层做了什么决策、这些决策的代价是什么。抓住这条线磁盘调度、缓冲区管理、文件分配方式、目录结构这些看似零散的知识点就全挂上去了。这篇文章适合两类人看一类是正在整理OS复习笔记、想找个参考框架的同学另一类是已经学过但感觉后半部分“散成一团”、想重新梳理逻辑的人。我会按照一份高质量复习笔记应有的结构把ch12-2这类章节的核心内容拆开讲重点放在为什么这样设计和考试/实操中怎么用上而不是复述教材定义。2. 复习笔记的整体设计思路为什么不能按教材顺序抄2.1 教材顺序不等于理解顺序很多人做笔记的习惯是“教材翻到哪就记到哪”章节标题照抄知识点按段落罗列。这种做法在第十二章这种综合性强的内容上会出大问题。教材的编排逻辑是“知识递进”先讲概念再讲实现但复习的逻辑应该是“问题驱动”——先明确这一章要解决什么问题再看每种方案怎么应对。拿存储与I/O这个板块来说教材可能先讲磁盘物理结构再讲调度算法再讲文件系统最后讲缓冲区。但你复习的时候如果按这个顺序背考场上遇到“设计一个支持大文件快速随机读写的文件系统”这种题脑子里根本调不出对应的知识块。正确的组织方式是按“数据流”来应用发起读请求 → 文件系统定位逻辑块 → 磁盘调度决定物理顺序 → 缓冲区减少等待 → 最终完成I/O。每个环节对应一组知识点这样串起来答题时才能顺着数据流一路写下去。我在整理这类笔记时有个习惯每章开头先画一张“问题地图”用三五行字写清楚这一章要回答哪几个核心问题。比如ch12-2这种后半章节问题地图大概是磁盘上数据怎么放分配方式、放的时候怎么找目录与索引、找的时候怎么排顺序调度算法、排完怎么减少等待缓冲与缓存。这四个问题就是四个H2的骨架教材内容往里面填就行。2.2 笔记的“三层结构”概念层、机制层、代价层一份能拿高分的复习笔记每个知识点至少要覆盖三层。第一层是概念层这个东西是什么解决什么问题。第二层是机制层它具体怎么运作关键步骤和参数是什么。第三层是代价层它有什么代价什么场景下不适用和替代方案比优劣在哪。大部分人的笔记只做到第一层好一点的做到第二层能写到第三层的才是真正理解了。举个具体例子讲“连续分配”这种文件分配方式概念层是“文件占用磁盘上一段连续块”机制层是“目录项记录起始块号和长度访问第i块直接算偏移”代价层是“外部碎片严重、文件扩展困难适合只读或一次性写入的场景如光盘”。三层都写清楚选择题考优缺点、大题考方案对比你都能直接调用。我建议做笔记时用不同颜色或符号标记这三层复习时先扫概念层确认框架再重点看代价层——因为代价层才是出题人最爱挖坑的地方。教材上往往把某种方案的优点写得很足缺点一笔带过笔记里必须把缺点补全否则考试时判断“某场景该用哪种方案”就会翻车。2.3 为什么ch12-2这类章节要单独做“对比表”操作系统后半部分有个显著特点同一功能往往有多种实现方案。磁盘调度有FCFS、SSTF、SCAN、C-SCAN、LOOK等文件分配有连续、链接、索引目录结构有单级、两级、树形、图形。这些方案如果一个个孤立地记考场上很容易混淆。最有效的办法是做对比表把维度固定下来横向比较。对比表的维度我一般固定为五个核心思想、寻道/访问开销、碎片情况、扩展性、典型适用场景。这五个维度基本覆盖了选择题和大题的所有考法。表格不用做得太花哨关键是每个格子里的内容要能直接背、直接写。比如链接分配在“扩展性”这一格写“极易扩展任意空闲块都能接上”在“访问开销”写“顺序访问高效随机访问需遍历链表O(n)”这样对比连续分配的“随机访问O(1)但扩展困难”优劣一目了然。做对比表还有个隐藏好处它能逼你发现教材里没明说的联系。比如你做完文件分配对比表会自然想到“索引分配需要索引块索引块本身怎么管理”这个问题这就把知识点从文件系统引到了磁盘空间管理前后就打通了。这种“自己发现问题”的过程比被动抄笔记的记忆效果好得多。3. 核心知识点拆解磁盘调度与文件系统实现的实操要点3.1 磁盘调度算法别只背名字要会算寻道序列磁盘调度是ch12-2这类章节的高频考点几乎每套卷子都有。很多人复习时只记住“SSTF是最近优先、SCAN是电梯算法”一到算题就懵。真正要掌握的是给定请求序列和当前磁头位置能画出每种算法的寻道轨迹并算出总寻道距离。我拿一组典型数据演示磁头当前在53请求序列为98、183、37、122、14、124、65、67磁道范围0-199。算SSTF时从53出发找最近的37和65里65更近差12先去65从65看67差2最近去67然后37差30、98差31去37……一路算下来总寻道距离是236。算SCAN向磁道增大方向时先一路扫到199再折返总距离是53到199的146加上199到14的185共331。这些数字必须自己动手算两三遍形成肌肉记忆考场上才不会因为一个方向搞反全盘皆输。这里有个容易踩的坑SCAN和LOOK的区别。SCAN是扫到磁盘边界才折返LOOK是扫到该方向上最后一个请求就折返。很多题目不明确说用哪个默认按SCAN算但如果题目强调“不移动到端点”那就是LOOK。我建议笔记里把两种都算一遍对比总距离差异这样无论题目怎么问都能应对。另外C-SCAN是单向扫描、回程不服务总距离通常比SCAN大但响应时间更均匀这个“均匀性”是它存在的核心理由答题时要能说出来。注意算寻道距离时起始位置算不算一次移动、折返点算不算服务不同教材约定略有差异。复习时以自己教材的例题为准笔记里明确标注约定避免考场上按错约定丢分。3.2 文件分配方式三种方案的取舍逻辑文件分配是另一个必考板块连续、链接、索引三种方式教材讲得清楚但复习时要往深里挖一层它们分别对应什么样的访问模式。连续分配适合顺序访问和随机访问都快的场景但文件一旦创建就不能轻易增长因为后面可能已经被别的文件占了。这就像你在停车场找了一排连续车位停进去很爽但想再加一辆车就没位置了。链接分配解决了扩展问题每个块里存一个指针指向下一块任意空闲块都能用。代价是随机访问要顺着链走访问第100块得先读前99块。这里有个细节很多人忽略链接分配的指针存在哪里。存在数据块里会浪费空间且降低块利用率所以实际系统常用FAT文件分配表把指针集中存到内存里这样随机访问时查表就行不用真的读磁盘。FAT的代价是表本身占内存大磁盘时表会很大这个权衡要能讲清楚。索引分配给每个文件配一个索引块里面存所有数据块的地址随机访问直接查索引O(1)。代价是索引块本身占空间小文件也要占一个块浪费严重。所以实际系统用“混合索引”小文件用直接块大文件用一级、二级、三级间接块。这个混合方案的计算是经典大题给定块大小和地址长度算最大文件大小。我笔记里固定写一个计算模板假设块大小4KB每个地址4B则一个索引块能存1024个地址直接块10个、一级间接1个、二级间接1个、三级间接1个最大文件就是(10 1024 1024² 1024³) × 4KB。这个模板套任何参数都能算比死记结论靠谱。3.3 缓冲区与缓存被低估的“性能杠杆”缓冲区管理在很多人的笔记里只有半页纸但它其实是理解I/O性能的关键。核心逻辑很简单磁盘和CPU速度差几个数量级不能让CPU干等。单缓冲是读一块到缓冲区CPU处理同时磁盘读下一块双缓冲是准备两个缓冲区交替减少等待。这里要能画出时间线图算出单缓冲和双缓冲下处理n块的总时间这是常见计算题。更值得关注的是缓冲和缓存不是一回事。缓冲区是解决速度不匹配的临时中转数据用完就丢缓存是把热点数据留在内存里下次直接命中。页缓存page cache就是典型的缓存读文件时先查页缓存命中就不访问磁盘。这个机制解释了为什么“第一次读文件慢、第二次快”也是很多性能调优的起点。笔记里要把这两个概念分开写清楚考试时如果问“缓冲区能否替代缓存”答案是不能因为目标和淘汰策略都不同。提示缓冲区计算题里经常给“磁盘读一块时间T、CPU处理时间C”问单缓冲和双缓冲的吞吐差异。记住单缓冲每块耗时max(T,C)双缓冲在T≈C时接近max(T,C)但能流水T和C差距大时双缓冲优势不明显。这个结论比背公式有用。4. 完整复习流程从笔记到考场的落地路径4.1 第一轮用“问题地图”搭骨架约2小时拿到ch12-2这类章节先别急着翻教材细节。花二十分钟把本章标题和各级小标题扫一遍然后在纸上写四个问题这一章讲的是哪类资源的管理这类资源有什么物理限制有哪几种管理策略每种策略的代价是什么这四个问题就是骨架。接着用一到两小时把教材内容往骨架上挂。挂的时候只写关键词不抄完整句子。比如磁盘调度下面只写“FCFS/SSTF/SCAN/C-SCAN/LOOK 各自一句话思想”文件分配下面只写“连续/链接/索引 一句话代价”。这一轮的目标是“知道有什么”不追求“讲得清”。我实测下来这一轮控制在两小时内超过两小时说明你在抠细节赶紧停。4.2 第二轮动手算把机制层吃透约3小时第二轮是拉开差距的关键。把教材例题和课后题里所有计算题挑出来遮住答案自己算。磁盘调度至少算五组不同请求序列文件分配至少算三种参数下的最大文件大小缓冲区至少画两次时间线。算错的题标记出来旁边写清楚错在哪是方向搞反了、是边界算错了、还是公式记混了。这一轮我建议用“费曼技巧”自检算完一道题合上答案假装给一个没学过的人讲一遍。讲的时候卡壳的地方就是你没真懂的地方。比如讲SCAN算法如果你讲着讲着不确定“折返时要不要服务端点”说明这个细节没吃透回去查教材确认。这个过程很痛苦但极其有效我当年复习时靠这招把磁盘调度的错误率从一半降到了零。4.3 第三轮对比表 错题本收尾约2小时第三轮做两件事。一是把前面说的对比表填完整每个格子用自己的话写不抄教材原句。填完后遮住表格看着维度名默写内容默不出来的回去补。二是整理错题本把第二轮算错的题和容易混淆的概念列成清单每条写“错因 正确思路 一句话提醒”。比如“SCAN折返点服务问题——记住SCAN到端点才折返且端点也服务LOOK到最后一个请求就折返”。三轮下来大概七小时一个章节就能从“看过”变成“能讲能算”。这个投入产出比很高因为操作系统后半部分的题型高度重复吃透一个章节的套路其他章节可以套用同样的流程。我见过有人用这个方法两周把整本OS过了一遍最后考了高分核心就是每章都走完这三轮不跳步。5. 常见问题与排查技巧实录5.1 磁盘调度算错方向怎么办这是最高频的错误。根源是没把“当前磁头位置”和“移动方向”在纸上标清楚。我的做法是每次算题先在纸上画一条数轴标出0和最大值用三角标当前磁头位置用箭头标移动方向。SSTF没有固定方向每次找最近的但要注意“最近”是绝对距离不是单向距离。SCAN和C-SCAN必须先确定方向题目没说就默认向磁道号增大方向。画了数轴之后方向错误率能降八成。5.2 文件分配大题写不全得分点文件分配的大题通常问“某场景该选哪种分配方式并说明理由”很多人只写“选索引因为支持随机访问”拿不到满分。得分点通常有三块场景特征分析、方案匹配理由、代价说明。比如“该场景需要频繁随机读写大文件连续分配扩展困难、链接分配随机访问O(n)索引分配随机访问O(1)且通过多级索引支持大文件代价是索引块占用额外空间但相对性能收益可接受”。三块都写到分数才稳。5.3 缓冲区时间线画不对缓冲区计算的关键是分清“谁和谁并行”。单缓冲时磁盘读和CPU处理不能完全并行因为只有一个缓冲区CPU处理时磁盘不能往里写。双缓冲时两个缓冲区交替磁盘读和CPU处理可以流水。画时间线时用两条横线分别表示磁盘和CPU标出每块的起止时间重叠部分就是并行时间。画完检查总时间是否等于最后一块的完成时间这个自检能抓出大部分错误。常见问题典型表现排查思路一句话提醒调度方向错SCAN总算成反方向先画数轴标方向题目没说就向磁道号增大方向分配方式理由不全只写优点不写代价按场景/匹配/代价三块写代价说明是隐藏得分点缓冲区并行算错总时间算成串行画双线时间线查重叠总时间等于最后一块完成时间索引大小算错多级间接漏乘套固定计算模板直接一级二级三级逐项加5.4 概念混淆类问题速查复习到后期最容易混的是几组“长得像”的概念。缓冲 vs 缓存缓冲解决速度不匹配数据中转即弃缓存存热点数据追求命中率。SCAN vs LOOK前者到端点折返后者到最后一个请求折返。链接分配 vs FAT前者指针在数据块里后者指针集中在内存表中。逻辑地址 vs 物理地址前者是程序看到的后者是磁盘/内存实际的文件系统负责映射。这几组我在笔记里单独列一页“易混对照”考前十分钟扫一遍效果比翻整本笔记好。实操心得错题本不要抄整道题只抄“错的那一步 正确的那一步 一句提醒”。抄整道题太费时间而且复习时注意力会被题干分散。我自己的错题本每页能放五六条考前翻一遍只要十分钟效率极高。6. 笔记之外的延伸这套方法还能怎么用这套“问题地图 三层结构 对比表 三轮流程”的方法其实不限于操作系统。任何一门有大量方案对比和计算题的课比如计算机网络的后半部分路由算法、拥塞控制、数据库的存储引擎部分都能直接套用。核心逻辑是一样的先明确这一块要解决什么问题再把每种方案的机制和代价拆开最后用计算和对比把理解压实。我在实际使用中发现最容易被跳过的是“代价层”但恰恰是代价层决定了你答题的深度。教材写优点是为了让你理解方案的价值考试考代价是为了区分“背过”和“懂了”。所以做笔记时每写一个优点强迫自己补一个代价这个习惯坚持两三章之后你会发现自己看问题的角度变了——不再问“这个方案是什么”而是问“这个方案在什么条件下会失效”。这种思维方式的转变比记住任何具体知识点都值钱。最后分享一个小技巧复习到后期拿一张白纸不看任何资料把ch12-2的核心内容默写成一张结构图能写多细写多细。写完对照笔记补漏补完再默写一遍。两遍下来这一章的内容基本就长在脑子里了。这个方法我每次大考前都用比反复翻笔记有效得多因为默写逼着你主动提取而翻笔记只是被动识别两者的记忆强度差一个量级。
企业数字化 ERP 产品动态
相关推荐
Nvidia T4 vs P100:推理部署与二手算力选型实测对比 Nvidia T4 和 P100 这两块卡放在一起比,几乎是每一个做推理部署或者想捡二手算力的人都会遇到的岔路口。我最早接触这个对比是在帮一个朋友评估他的小规模推理服务该选什么卡,当时他手里有一批二手 P100 的报价,同时云上又有大量 T4 实例可选… · 2026/11/3 13:46:54
Screenpresso Pro专业截图录屏工具全解析 1. Screenpresso Pro 工具概述Screenpresso Pro 是一款专业级屏幕截图与录屏工具,专为需要高效视觉内容创作的用户设计。作为 Screenpresso 标准版的升级版本,Pro 版本提供了更强大的编辑功能、更灵活的工作流程以及更专业的输出选项。我在日常工作中使用… · 2026/11/3 13:47:04
2023年NFC碰一碰获客方案评测与实战指南 1. 项目概述:2023年碰一碰获客方案评测背景近场通信(NFC)技术的"碰一碰"交互方式正在重塑线下获客场景。2023年主流服务商纷纷推出基于NFC芯片、二维码融合及蓝牙信标的创新解决方案,宣称能实现"一碰即达"的客… · 2026/11/3 13:47:04
具身智能落地核心:ROS2与URDF物理映射实战 1. 这门课到底在教什么?不是“具身智能”四个字堆砌出来的幻觉“具身智能”这个词最近两年火得有点烫手,从学术会议到招聘JD,再到地方政府产业规划文件里,几乎无处不在。但翻遍市面上打着这个旗号的课程,90%以上只是把… · 2026/11/3 16:00:05
从加法器到五级流水线:FPGA CPU设计与体系结构实验 简介:这份《CPU设计与体系结构实验指导手册(教师版)》面向高校计算机专业教师及高年级学生,围绕龙芯教学实验平台LS-CPU-EXB-002,服务于《数字逻辑》《计算机组成原理》《计算机体系结构》等课程实验教学与指导。内容从… · 2026/11/3 16:00:05
具身智能导航实战:连续环境与语义理解的端到端落地 1. 这不是“教机器人走路”,而是让机器真正理解空间——具身智能导航到底在解决什么问题?“具身智能导航”这六个字,最近半年在机器人、自动驾驶、服务型硬件团队的周会上出现频率,已经超过了“模型微调”和“数据清洗”。但很多人… · 2026/11/3 16:00:05
动态规划算法精讲:从背包问题到状态压缩技巧 1. 动态规划基础概念回顾 动态规划(Dynamic Programming)作为算法设计中的经典方法论,在解决最优化问题时展现出独特优势。其核心思想是将复杂问题分解为相互重叠的子问题,通过记忆化存储子问题的解来避免重复计算。这种方法特别适… · 2026/11/3 16:00:05
@RequestMapping与@Path注解本质区别及Spring路由原理 1. 项目概述:从一个被反复问爆的注解说起你有没有在翻看某段 Spring Boot 接口代码时,突然卡住——明明只写了Path,接口却死活不生效?或者更常见的是:RequestMapping和GetMapping到底谁管路径、谁管方法、谁又在底层悄… · 2026/11/3 16:00:05
Android 2048小游戏源码拆解:自定义View、手势与合并算法 简介:这份资源是面向计算机相关专业本科生、尤其是准备撰写毕业设计的同学的一份完整学位论文文档,选题为基于 Android 平台的 2048 小游戏设计与实现,适合处于选题开题、结构搭建、内容填充与答辩准备阶段的读者参考,也可作为软件… · 2026/11/3 15:59:03
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46