恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

操作系统文件管理考研必考:逻辑结构、分配方式与磁盘调度计算

  • 首页
  • 资讯中心
  • /
  • 操作系统文件管理考研必考:逻辑结构、分配方式与磁盘调度计算

相关资讯

KVM+CentOS搭建企业级VDI云桌面实战指南 2026/9/29 14:54:34
规则合规的视觉空间规划:多模态大模型落地工程方法 2026/9/29 14:54:34
多模态决策模型技术原理与应用实践 2026/9/29 14:54:34

最新资讯

ESP32 Arduino IDE安装踩坑指南:中文路径与网络问题排查
Spring数据源配置实战:连接池、多数据源与排错经验总结
金融电商场景AI Agent安全沙箱实战:防注入防泄露防滥用
智能体调试三支柱:日志、事件与成本追踪实战指南
AI大模型赋能数字化工厂:打通MES/WMS/SCADA人机协同最后一公里
随机过程先验+Transformer:期权波动率曲面预测的实战指南

今日推荐

开源模型端侧落地实战:量化、推理加速与Agent上下文管理
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成
Java采购管理系统实战:从数据库设计到事务一致性

本周热门

从像素到笔画:srt-whiteboard-animation骨架笔迹追踪实现(Zhang-Suen细化+8邻接追踪)
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
新手入门看这篇:建设网站加盟避坑指南与SEO实操

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

操作系统文件管理考研必考:逻辑结构、分配方式与磁盘调度计算

发布时间:2026/9/29 14:54:34
操作系统文件管理考研必考:逻辑结构、分配方式与磁盘调度计算 1. 先搞清楚文件管理这一章到底在考什么1.1 从用户视角到系统视角的两次跳转操作系统里的文件管理是整本书里少有的那种上手觉得特别亲切、深入之后到处是坑的章节。为什么亲切因为文件、目录、路径、复制粘贴这些词我们每天都在用。打开电脑找一份文档拖进文件夹改个名字这些都是文件管理。但考研考的不是你会不会用资源管理器它要的是你在两个层面上来回切换一个是用户眼里按名字找文件的逻辑视图一个是系统眼里块号、索引、指针的物理视图。这两个视图之间的映射关系才是这一章的命门。我第一遍学的时候最大的误区就是把文件管理当成背概念的章节目录结构背一背、分配方式背一背题也做得差不多。结果一刷真题发现概念题的正确率还行但凡是带计算的题比如索引块能放多少地址项、位示图第几个字第几位对应哪个盘块、磁盘调度移动了多少个磁道就全线崩溃。后来才明白这一章的真正难点不在记住有哪几种方法而在于给定具体参数你能不能把链条推完。这一章的内容主干其实可以浓缩成四块文件与目录的基本概念、文件的逻辑结构与物理结构、目录与文件共享保护、磁盘组织与调度。听起来不多但每一块往下挖都能挖出大量细节。比如逻辑结构里顺序文件、索引文件、索引顺序文件各有什么优缺点物理结构里连续分配、链接分配、索引分配各自适合什么场景空闲空间管理里位示图、成组链接法怎么算磁盘调度里五种算法的手算流程。这些东西单独拿出来都不难但组合成一道大题就容易漏条件、算错方向。1.2 考纲分布与题型规律从历年真题来看文件管理的分值占比通常稳定在 15% 到 25% 之间属于中等偏上的章节。选择题里高频出现的是文件的逻辑结构对比、目录结构特点、硬链接与软链接的区别、文件分配方式的优缺点、空闲空间管理方法的适用场景、磁盘调度算法的特性。大题则集中在这几个方向给参数算最大文件长度、给请求序列算磁盘调度总寻道距离、给位示图算盘块号、给成组链接法算分配回收过程。我的经验是这一章的选择题喜欢考边界情况。比如问哪种分配方式不支持随机访问答案是隐式链接分配问哪种目录结构适合文件共享答案是无环图目录问FAT 表的作用答案是实现显式链接并支持随机访问。这些点如果只记结论很容易在四个选项里被绕晕因为选项往往是把两三个相近概念的属性拼在一起。真正稳的做法是每记住一个方法就顺手记住它的三个属性能不能随机访问、有没有外部碎片、扩不扩容方便。大题则更考验流程完整性。比如一道磁盘调度的大题往往会同时问三种算法的移动距离还可能追问哪种算法对两端磁道更公平。如果你只是背了算法名字到了计算环节漏掉折返距离、忘了加上回到最小请求的移动量分数就没了。所以这一章的正确打开方式是概念用来定方向计算用来拉分两者缺一不可。2. 文件与目录概念题最容易翻车的地方2.1 文件的逻辑结构怎么选文件的逻辑结构指的是从用户角度看到的文件内部记录是怎么组织的。这里最常见的四种是顺序文件、索引文件、索引顺序文件、直接文件散列文件。很多人学完就记得一句顺序文件只能顺序找索引文件能随机找这个理解不能说错但太粗了考试一变形就容易错。顺序文件里的记录是挨着放的分定长和变长两种。定长记录的顺序文件因为每条记录长度一样所以其实也能算出第 n 条记录的起始位置随机访问是可行的变长记录就不行了因为前一条的长度不知道只能从头往下捋。所以顺序文件只支持顺序访问这句话严格来说是针对变长记录的。这个细节点我是在一道选择题里被打脸之后才记住的。索引文件是给文件建一张索引表每条记录对应索引表里的一项记录本身的物理位置可以乱放。它的好处是随机访问非常快找第 n 条记录直接查索引表就行。代价是索引表本身要占存储空间记录一多索引表也大。索引顺序文件是对索引文件的改良它不记录每条记录的位置而是分组。组内用顺序排列组间建一张索引。检索的时候先查索引定位到组再在组内顺序找。这样一来索引表的规模小了很多检索效率介于顺序文件和索引文件之间。教材里给过一个估算顺序文件平均查找次数约是记录数的一半而索引顺序文件大概能做到记录数的平方根量级这个量级差异在数据量大的时候非常可观。直接文件又叫散列文件用哈希函数把关键字映射到物理地址理想情况下一次就能命中。问题还是老问题哈希冲突。冲突处理不好性能会掉得很快。我在整理这部分的时候自己画过一张对照表把每种结构的组织方式、检索方式、是否支持随机、主要代价四列列清楚。这个动作看着笨但比反复读教材管用得多。因为考试考的就是这些属性的排列组合。2.2 目录结构的三代演进目录结构一般讲四种单级目录、两级目录、树形目录、无环图目录。这四种不是随便并列的它们其实是一条演进路线每一代都在解决上一代的问题。单级目录最简单整个文件系统就一张表所有文件全在一起。它解决了文件怎么被命名和查找的最基本问题但立刻带来两个麻烦第一不能重名两个用户各自想建一个叫report的文件就冲突了第二文件一多检索效率直线下降。两级目录把目录分成主目录和用户目录主目录下每个用户有自己的目录。这样不同用户之间可以随便重名因为系统会先定位到用户目录再找文件。但两级目录的粒度还是太粗用户在自己目录里没法再分类所有文件还是堆在一层。树形目录是现在最常见的形态目录可以嵌套形成树。它支持绝对路径和相对路径也引入了当前目录的概念这样用户在某一层目录里可以直接用文件名访问同级文件不用每次都写全路径。树形目录的问题是文件共享不方便因为一个文件在树里只能有一个位置想让两个目录都能访问同一个文件就做不到。无环图目录就是来补这个短板的。它允许一个目录或文件被多个父目录指向形成一个有向无环图。这样就能实现真正的共享。但它带来一个新问题删除。如果多个父目录指向同一个文件你从一个目录里删掉它文件到底该不该真删标准解法是引入引用计数每多一个链接就加一删除时减一减到零才真正回收。这个引用计数的思路和后面硬链接的机制是一套逻辑理解了一个另一个就通了。我踩过的一个坑是一直以为目录也是文件。严格来说目录在实现上确实占用磁盘块、也有一张表但它的记录内容是文件名到文件位置的映射和我们平时说的普通文件在内容语义上不一样。考试如果问目录项里存放的是什么答案通常是文件名和指向文件控制块的指针或索引节点号不是文件内容本身。2.3 硬链接与软链接本质区别到底是什么硬链接和软链接是这一章反复考的点而且特别容易记混。我用一个尽量直白的说法来区分它们。硬链接的本质是多个目录项指向同一个索引节点。也就是说文件实体只有一份索引节点只有一个只是有多个名字指向它。因为用的是同一个索引节点所以索引节点里有个引用计数每加一个硬链接就加一删一个就减一减到零文件才真正消失。硬链接的特点是不能跨文件系统因为不同文件系统的索引节点编号体系是独立的一般来说也不允许对目录创建硬链接否则目录树就可能出现环遍历会出问题。软链接的本质是创建一个新的文件这个文件的内容就是一条路径字符串。它有自己的索引节点是独立的一份文件只不过内容指向别处。访问软链接的时候系统会读取它保存的路径然后重新走一遍路径解析找到目标文件。所以目标文件被删了软链接依然存在只是变成了悬空链接访问会报错。软链接可以跨文件系统也可以指向目录。有一道很经典的考法问删除原文件后硬链接和软链接分别会怎样。硬链接不受影响因为它本来就是文件的另一个名字文件本身还在引用计数没到零软链接会失效因为它只是个记录路径的影子。反过来如果问软链接的创建是否增加原文件的引用计数答案是不增加因为它不指向索引节点只指向路径。还有一个更细节的点硬链接的ls -l里显示的是链接数软链接显示的是箭头指向。这个区分在实际操作中一眼就能看出来但考试里给的是文字描述所以必须从指向索引节点还是指向路径这个根本差异去判断。我个人建议把这两个的定义写成一句话背下来硬链接是同一索引节点的多个名字软链接是一个存路径的独立文件。把这句话记牢绝大部分变形题都能拆开。3. 文件系统实现分配方式和空闲空间管理3.1 三种物理结构分配的取舍逻辑文件的物理结构也就是文件在磁盘上到底怎么放。这里三种主流方式是连续分配、链接分配、索引分配每种都有自己的死穴。连续分配要求文件占用的磁盘块在物理上是连续的。它的优点是顺序访问和随机访问都快因为只要知道起始块号和长度就能直接算出任意位置。但它有两个硬伤一是必须提前知道文件大小不好动态增长二是频繁创建删除会产生外部碎片时间长了磁盘上到处是零散的小空档用不上。链接分配是把文件分成若干块每块里存一个指针指向下一块。隐式链接就是指针存在数据块里这样做的后果是只能从第一块开始顺藤摸瓜想读最后一块必须把前面全走一遍随机访问基本废了。显式链接是把所有指针抽出来单独放在一张文件分配表里也就是 FAT。FAT 常驻内存查表就是内存操作所以显式链接支持随机访问。代价是 FAT 表本身占内存磁盘越大这张表越大。索引分配是给每个文件建一张索引块索引块里按顺序存文件所有数据块的块号。要找第 n 块直接查索引块第 n 项就行随机访问很自然。小文件的问题是一个索引块可能只用了一两项却占了一整块大文件的问题是一个索引块装不下于是要引入多级索引或者混合索引。混合索引是考研特别喜欢的形式典型结构是若干直接地址项加一级间接、二级间接、三级间接各一个。直接项直接指向数据块一级间接项指向一个索引块索引块里全是数据块地址二级间接项指向一个索引块里面的每一项再指向一个索引块再下一层才是数据块三级依次类推。举个具体的算法。假设磁盘块大小是 4KB每个地址项占 4 字节那么一个索引块能放 4096 / 4 1024 个地址。如果结构是 10 个直接项 1 个一级间接 1 个二级间接 1 个三级间接那么层级地址项数量可寻址数据量10 个直接项1010 × 4KB 40KB一级间接10241024 × 4KB 4MB二级间接1024²1024² × 4KB 4GB三级间接1024³1024³ × 4KB 4TB所以这个文件系统单个文件的最大长度大约是 4TB 加上前面那点零头。注意这里算的是能寻址的数据量一级间接算的是索引块里 1024 个地址各自指向一个数据块而不是索引块本身的大小。这个理解如果错了整个算式就全错。我在早期做这类题时总想把索引块本身也算进文件大小其实就是错的索引块是元数据不占文件内容。3.2 空闲空间管理四种方法对照磁盘上哪些块是空的、哪些被占了系统得有一本账。这本账有四种常见记法空闲表法、空闲链表法、位示图法、成组链接法。空闲表法就是维护一张表每一行记录一段连续空闲区的起始块号和长度。它天然适合连续分配因为找连续空间很方便。但如果空闲区很零散表就会很长。空闲链表法分两种。空闲盘块链是把每个空闲块串起来分配的时候从链头摘一块回收的时候挂回去。实现简单但一次要分配多块就得反复摘链。空闲盘区链是把连续的一段空闲区当作一个结点串起来这样一次能分配一大段但回收和合并逻辑会更复杂。位示图法是最常见的考法。它用一个二进制位对应一个磁盘块0 表示空闲1 表示占用具体约定看题目很多个位组成一个字。位示图通常放在内存里检索起来方便尤其是找连续空闲块时可以按字快速扫描。位示图的缺点是磁盘块数越多需要的位数越多位示图本身占的内存也就越大。成组链接法是 UNIX 系统里用的方案专门为大型文件系统设计。它的核心思路是不把空闲块一个一个串起来而是分组。每组的第一块记录下一组的信息。系统在内存里维护一个栈结构栈里存的是当前这一组空闲块的块号还有一个计数。分配时从栈顶取取到这个组只剩最后一项时那个最后一项其实指向的是下一组的入口读进来之后栈就切换到了下一组。回收时反过来往栈里压如果栈满了就把栈里所有块号写到新回收的那块上让它成为新的组首。这个机制的理解难点在于栈里最后一项兼作下一组的指针这个设计。它巧妙就巧妙在省了额外的存储但初次看的时候很容易晕。我当时的办法是拿一张纸画三层盒子模拟分配五块、回收三块走两遍流程之后就再也没忘过。3.3 位示图和成组链接法的计算模板位示图的计算题很有套路但起点一定要看清楚块号是从 0 开始还是从 1 开始字和位是从 0 还是从 1 开始编号。这几个假设不同公式就不一样。以最常见的约定为例字长为 32 位位示图的字和位都从 0 开始编号磁盘块号也从 0 开始。那么第 i 个字、第 j 位对应的块号就是i × 32 j。反过来已知块号 b它所在的是第b / 32个字第b % 32位。如果题目改成从 1 开始编号那么第 i 个字、第 j 位对应的块号就是(i - 1) × 32 j。这个变形我在真题里见过一开始总觉得是题目出错后来发现是自己没看清约定。所以做这类题第一步永远是找题目的编号起点。成组链接法的计算题一般是给一个初始状态让你算分配某个数量的块之后栈里的内容变成什么样或者让你算回收之后怎么变。我的解法是把它当成一个栈加一个链表栈是当前能直接分配的一组栈底最后一项存的是下一组的地址。分配就是弹出栈顶回收就是压入栈顶栈满时把整栈写到新释放的块里那块就成为新的组首。只要按这个规则一步步走通常不会错。需要注意的一个坑是栈满的判断精确到栈里还剩一个位置还是完全满不同教材的写法有差异考试时以题目给出的容量为准。4. 磁盘组织与管理手算题的主战场4.1 磁盘访问时间的三段拆解磁盘读写一次的时间由三部分构成寻道时间、旋转延迟、传输时间。寻道时间是磁头从当前位置移动到目标磁道所花的时间。教材里的模型通常是Ts m × n s其中 n 是跨越的磁道数m 是每移动一个磁道的耗时s 是启动时间。做计算题的时候如果题目没给 m 和 s一般就不用套这个公式直接用磁道数 × 单位时间或者干脆只比较磁道移动数。旋转延迟是等待目标扇区转到磁头下方的时间。如果磁盘转速是 r 转每秒那么平均旋转延迟就是转半圈的时间也就是1 / (2r)。这个平均取半圈的假设要记住因为题目经常给转速不给延迟就等你换算。比如转速是 7200 转每分钟换算成每秒就是 120 转平均旋转延迟就是 1/240 秒大约是 4.17 毫秒。传输时间是把数据真正读出来或写进去的时间公式是Tt b / (r × N)b 是要读写的字节数N 是每条磁道上的字节数r 还是转速。这个量级通常比前两者小所以优化磁盘性能主要是在减少寻道和旋转延迟上做文章。减少延迟还有两个经典手段交替编号和错位命名。交替编号是指把逻辑上相邻的扇区在物理上隔开编号比如逻辑扇区 1、2、3、4 在物理上排成 1、3、2、4 这种交错形式。这样做是为了给磁盘控制器留出处理时间避免读完一个扇区后下一个还没处理完就已经转过去了。错位命名则是把相邻磁道的起始扇区错开让磁头换道之后不用等太久就能读到下一段数据。这两个概念考选择题比较多理解成为了配合硬件处理速度做的物理排布优化就够用了。4.2 五种调度算法的手算流程磁盘调度的目标很朴素让磁头移动的总距离尽量小。五种算法分别是先来先服务 FCFS、最短寻道时间优先 SSTF、扫描算法 SCAN、循环扫描 C-SCAN还有它们的改进版 LOOK 和 C-LOOK。FCFS 就是按请求到达顺序服务公平但效率低磁头可能来回横跳。SSTF 每次挑离当前磁头最近的请求效率明显提升但有个著名问题如果一直有靠近中间磁道的请求进来两端磁道的请求可能永远等不到也就是饥饿。SCAN 又叫电梯算法磁头朝一个方向一路扫过去扫到头再反向这样两端都能被照顾到但中间磁道会被更频繁地访问两端的等待时间其实比中间长。C-SCAN 是为了解决这个不公平磁头只朝一个方向服务扫到端点后快速返回另一端重新开始返回途中不服务请求这样各个磁道的等待时间就均匀了。LOOK 和 C-LOOK 是它们的实用版本区别在于磁头不是扫到磁盘端点才折返而是扫到最远的那个请求就折返不浪费空跑的距离。手算的时候我习惯画一条数轴把请求点和初始位置标上去然后按算法规则连线最后把每一段的距离加起来。这个方法笨但非常稳尤其是 C-SCAN 那种要折返的情况画出来一眼就能看清哪段要算、哪段不算。4.3 一道综合计算题的完整推演光讲规则没用我们直接上手算一遍。假设磁头初始在 100 号磁道正在向磁道号增大的方向移动请求序列是55、58、39、18、90、160、150、38、184。先算 FCFS按顺序服务100 到 55 是 4555 到 58 是 358 到 39 是 1939 到 18 是 2118 到 90 是 7290 到 160 是 70160 到 150 是 10150 到 38 是 11238 到 184 是 146。加起来是 4531921727010112146 498。再算 SSTF。当前在 100最近的请求是 90距离 10。到 90 之后最近的变成 58距离 32。接着是 55距离 3。然后 39距离 16。然后 38距离 1。然后 18距离 20。这时候只剩下 150、160、184 三个最近的 150 距离 132。接着 160距离 10。最后 184距离 24。总和是 10323161201321024 248。可以看到SSTF 比 FCFS 少走了大半。接着算 SCAN。磁头当前向大方向移动一路扫过去服务 150、160、184然后折返再服务 90、58、55、39、38、18。如果按 LOOK 式处理也就是扫到最远的请求 184 就折返100 到 150 是 50150 到 160 是 10160 到 184 是 24这段共 84。折返后184 到 90 是 9490 到 58 是 3258 到 55 是 355 到 39 是 1639 到 38 是 138 到 18 是 20这段共 166。总计 84 166 250。如果严格按扫到磁盘端点来算假设端点磁道号是 199那么去程要走到 199100 到 199 是 99回程 199 到 18 是 181总计 280。考试的时候要看题目怎么描述如果题目给了最大磁道号那多半是要你按端点算如果只说扫到最远请求就按 250 算。这是这类题最容易被扣分的地方。最后算 C-SCAN。它只朝一个方向服务扫到最远请求后直接返回最小的请求端重新开始返回途中不服务。按这个规则去程 100 到 184 共 84返回 184 到 18 是 166然后从 18 开始向大方向服务剩下的 38、39、55、58、90这段距离是 90 - 18 72。总计 84 166 72 322。把这几个结果整理成一张表算法磁头移动总距离主要特点FCFS498公平效率低SSTF248效率高可能饥饿SCANLOOK 式250兼顾两端中间优先SCAN扫到端点280严格按端点折返C-SCAN322等待时间均匀移动距离偏大这张表里有几个信号值得注意。SSTF 的距离最短但它有饥饿风险C-SCAN 距离最大但它的价值在公平性而不是总距离。题目如果问哪种总移动距离最小答案往往是 SSTF如果问哪种对各个磁道的响应最公平答案就是 C-SCAN。这两个问题问的不是一回事千万不要看到距离小就无脑选。5. 复习过程中踩过的坑和常见问题速查5.1 概念类易错点清单这一章的概念题错法就那么几种我把自己踩过的和见过的整理一下。第一个坑是把文件的逻辑结构和文件的物理结构搞混。逻辑结构是从用户角度看记录怎么排物理结构是文件在磁盘上怎么放。顺序文件是逻辑结构连续分配是物理结构两者名字里都有顺序或连续特别容易串。我的记忆方法是逻辑结构管记录物理结构管磁盘块。第二个坑是搞不清哪些分配方式支持随机访问。准确的说法是连续分配支持随机访问隐式链接分配不支持显式链接分配FAT支持索引分配支持。这个判断题几乎每年都会变个形出现。第三个坑是目录结构和文件共享的关系。树形目录不支持文件共享无环图目录支持。这个结论要和对引用计数的理解绑在一起记不然容易记反。第四个坑是硬链接能不能跨文件系统。答案是通常不能。软链接可以。这个点经常和硬链接是否增加引用计数一起考前者考的是索引节点编号的独立性后者考的是共享同一索引节点的机制。第五个坑是固态硬盘的特性。SSD 没有机械部件所以没有寻道时间和旋转延迟随机访问很快。它的读写单位是页擦除单位是块擦除次数有限所以需要闪存翻译层做逻辑地址到物理地址的映射还需要磨损均衡来延长寿命。这些点如果只看结论很容易和机械硬盘的特性混在一起。5.2 计算类易错点清单计算类的错误更隐蔽因为步骤对但参数算错结果就全错。索引块地址项数量算错是最常见的一种。记住这个换算链索引块容量除以地址项大小就是地址项个数。4KB 的块放 4 字节的地址就是 1024 项放 8 字节的地址就是 512 项。一旦这个基数错了后面几级间接全部跟着错。多级索引的层数理解错也很常见。一级间接意味着要多读一个索引块才能拿到数据块地址二级间接要读两个索引块三级要读三个。做题的时候如果题目问访问某个位置需要读几次磁盘就要把这个层数算进去不能只数数据块。位示图的编号起点看错是另一个高发错误。字从 0 开始还是从 1 开始位从 0 开始还是从 1 开始块号从 0 开始还是从 1 开始这三个假设任意一个不同公式就不同。我的做法是每次做题先把这三个假设写在草稿纸最上面再动笔。磁盘调度漏算折返距离是最冤的一种错。C-SCAN 的返回段到底算不算、SCAN 是扫到端点还是扫到最远请求这些都要看题目的措辞。我现在的习惯是凡是遇到循环扫描这类字眼先在草稿上画数轴把去程和返程分开标最后再分别求和。转速和时间的换算也容易出错。7200 转每分钟和 120 转每秒是同一个东西但很多人一急就把分钟当秒用。平均旋转延迟永远是转半圈的时间这个定式要背牢。5.3 我的刷题顺序和时间分配最后说说我自己的复习节奏不一定适合所有人但可以参考。第一遍我把这一章的教材过了一遍重点是把每个概念的定义和适用场景弄清楚做题只做选择题大题先跳过。第二遍开始整理对比表格把逻辑结构的四种、目录结构的四种、分配方式的三种、空闲管理的四种、调度算法的五种全部横向列出来对比。这个动作大概花了两三天但后面查漏补缺的时候特别省事。第三遍才是集中攻计算题。我按题型分类索引长度计算、位示图计算、磁盘调度计算、成组链接法模拟每个题型先看五道例题然后自己独立做十道。这个阶段最容易卡住的是成组链接法的流程模拟因为它不像公式那样一步到位必须手动走一遍。时间分配上如果整个操作系统复习时间是 100我会给文件管理分 15 到 20。其中概念部分占三分之一计算部分占三分之二。原因很简单概念题靠记忆性价比高但拉不开分计算题是真正能拉开差距的地方值得多花时间。6. 几个容易被忽略的细节补充6.1 打开文件表和文件描述符文件系统为了实现打开这个操作维护了两张表系统级的打开文件表和进程级的打开文件表。进程打开一个文件后系统会在进程的表里加一项返回一个文件描述符给用户程序用。之后所有的读写操作都通过这个描述符进行而不是每次都传文件名。这样做的好处是省掉了重复的路径解析和权限检查。这个机制在考试里出现得不算高频但偶尔会以文件描述符的作用是什么这种形式出现。我的理解是它相当于系统给这个打开的文件发了一个编号凭证后续操作凭号办事。系统表里存的是文件状态、当前读写位置、引用计数等信息进程表里存的是描述符到系统表项的映射。多个进程打开同一个文件时系统表里可能只有一项但引用计数会增加。这个引用计数和硬链接的引用计数不是一回事前者是打开次数后者是链接数量别搞混。6.2 引导块和坏块处理磁盘在真正装文件系统之前要先格式化。格式化之后磁盘的某个固定位置会放一个引导块里面是启动系统时要用到的引导代码。这个位置一般不能让普通文件占用否则系统就起不来了。考试如果问引导块的作用答存放引导程序用于系统启动就够了不用展开太多。坏块处理有两种思路。一种是保留一部分备用扇区系统检测到坏块之后用备用扇区顶替它并对上层隐藏这个替换这叫扇区备用。另一种是把坏块标记出来让文件系统在分配时避开它这叫扇区稀疏。前者对用户完全透明后者需要文件系统配合。这两种方法的区别在选择题里出现过记住预留替换和标记规避这两个关键词就能区分。6.3 固态硬盘和机械硬盘的本质差异固态硬盘是这几年新增的考点因为它的结构和机械硬盘完全不同。机械硬盘靠盘片旋转和磁头移动定位所以有寻道和旋转延迟固态硬盘靠闪存芯片存储地址定位是电信号完成的几乎不花时间所以随机访问速度极快。但固态硬盘有个天生缺陷闪存写之前必须先擦除擦除的最小单位是块而读写的单位是页。一个块通常包含很多页如果只想改其中一页不能直接改得先把整个块的其他页读出来擦掉整块再写回去。这个特征导致写操作比读操作慢得多也导致擦除次数累积会损耗闪存。为了解决这个问题固态硬盘内置了闪存翻译层把上层的逻辑块地址映射到物理页地址并做磨损均衡尽量让各个块被均匀擦写延长整盘寿命。这些内容看起来偏硬件但在操作系统课里考的是它们和文件系统的关系。比如问固态硬盘是否需要磁盘调度算法答案是不太需要因为不存在寻道问题问固态硬盘的读写不对称体现在哪答读快写慢原因是擦除和写入的特性。理解到这一层这类题就不会慌。7. 我自己的一些复盘体会学完这一章我最大的感受是文件管理其实是一门映射的艺术。用户看到的是名字和目录系统要处理的是块和指针中间隔着一层层的转换。逻辑结构、物理结构、目录、索引、位示图、调度算法本质上都是在处理不同层级之间的映射关系。把这些映射关系想清楚了公式和结论都是顺带的事反过来如果只是背结论题目一变形就抓瞎。如果让我给正在复习这一章的人一个建议那就是别急着刷题先把每种方法的为什么讲给自己听一遍。为什么连续分配会产生外部碎片为什么隐式链接不支持随机访问为什么 C-SCAN 比 SCAN 更公平能把这个为什么讲通碰到没见过的设问也不至于无从下手。另外计算题一定要动笔。看例题会让人产生一种我懂了的错觉但真到算位示图那块字号位号一混就开始怀疑人生。我的做法是每类计算题至少独立做三遍第一遍照着例题做第二遍合上答案做第三遍限时做。三遍下来手感就稳了。这个笨办法在考场上救过我好几次。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号