资讯动态

软考磁盘计算全梳理:容量、访问时间、调度、位示图与RAID易错点

发布时间:2026/10/21 8:32:17 来源:尧图企业网站定制
软考上午题里磁盘相关计算属于那种单题只有一两分、但几乎年年都考的稳定题型。很多考生复习时容易把这块一带而过总觉得无非是“容量盘面×磁道×扇区×扇区大小”这种套公式的题结果真上了考场才发现平均旋转延迟到底要不要除以2、位示图的字号位号从0还是从1开始、SCAN和CSCAN回程到底处不处理请求全是容易翻车的细节。这篇是计算机基础复习系列的第6篇专门把磁盘相关计算从头到尾梳理一遍覆盖物理模型、容量计算、访问时间、调度算法、位示图和RAID六大块每块配例题和易错点。不管你是正在做软考真题冲刺还是单纯想把计算机组成原理里磁盘这部分补扎实这篇都值得花半小时看完。1. 磁盘物理模型算容量之前先搞懂名词1.1 磁道、扇区、柱面、盘面是怎么串起来的磁盘计算题的第一步永远是确认题目里给的名词到底是哪种级别。盘片是物理圆盘一个盘片有上下两个盘面每个盘面对应一个磁头所以“4个盘片”通常意味着8个盘面但有些题目会说“4个记录面”这时盘面数就是4。做容量题第一件事就是数清楚到底有几个可用盘面。每个盘面上从外圈到内圈划分出若干同心圆每一圈叫一条磁道磁道号从外圈向内圈从0开始编号。磁道又被等分成扇区扇区是磁盘读写的最小单位常见大小是512字节也有4KB的。同一柱面上所有盘面的同一半径磁道合起来叫一个柱面。操作系统在CHS寻址时用“柱面号、磁头号、扇区号”三个分量定位一个扇区柱面决定磁头径向移动磁头号决定选哪个盘面扇区号决定等磁盘转到哪个角度。这里有一个大家容易忽略的地方每条磁道的扇区数是一样的。也就是说内圈磁道和外圈磁道容量相同但内圈的物理长度短所以内圈的数据密度更高。计算非格式化容量时必须按照最内圈的周长来算位密度外圈就算实际能塞更多数据设计上也不按外圈容量算。理解了这个模型后面无论算容量还是算访问时间都不容易乱。1.2 磁盘容量计算格式化与未格式化别混软考容量题就两类公式。一类是非格式化容量给的是位密度比如“位/英寸”和磁道直径计算公式是非格式化容量 位密度 × 最内圈磁道周长 × 总磁道数注意位密度单位是“位”要除以8才得到字节。另一类是格式化容量给的是扇区数和扇区大小计算公式是格式化容量 每磁道扇区数 × 扇区容量 × 总磁道数总磁道数 盘面数 × 每面磁道数。盘面数不一定等于盘片数×2题目说“记录面”就是记录面说“盘片”才默认双面。举个例子。某磁盘组有4个盘片每面有200个磁道每磁道16个扇区每扇区512字节求格式化容量。盘面数4×28总磁道数8×2001600容量1600×16×51213107200字节除以1024再除以1024等于12.5MB。如果题目把“扇区大小”改成“位密度”那就要用非格式化容量公式两者结果会差不少因为格式化要扣除扇区之间的间隙、同步字段和校验字段。这个计算里最容易翻车的是单位进制。软考默认1KB1024B、1MB1024KB除非题干特别说明按1000进制算否则一律按1024折算。我见过有同学在草稿纸上把300GB的磁盘按300000000000字节去算最后答案差了一截这种分丢得特别冤。2. 磁盘访问时间最爱考平均旋转延迟2.1 访问时间的三个组成部分磁盘读一个数据块的时间由三段组成寻道时间、旋转延迟、传输时间。寻道时间是磁头径向移动到目标磁道的时间由移动距离决定题目一般直接给平均值比如5ms。旋转延迟是目标扇区转到磁头正下方的时间这个时间取决于磁盘转速和当前磁头位置。传输时间是读写数据本身花的时间等于要读的数据量除以数据传输率或者等于扇区数乘以每个扇区经过磁头的时间。平均访问时间的公式就是三项相加。如果题目问“平均”寻道和“平均”旋转延迟直接代入如果问某一次具体访问那旋转延迟要看扇区当前位置这类题通常不会让考生精确算角度而是给平均延迟。真正能拉开分差的地方集中在旋转延迟的换算和带处理时间的综合题上。2.2 平均旋转延迟的换算套路转速是“转/分钟”要换算成“毫秒/圈”。一分钟是60000毫秒所以每圈时间 60000 ÷ 转速。7200转/分的盘每圈 60000 / 7200 ≈ 8.33ms。平均旋转延迟是半圈的时间因为目标扇区平均分布磁头平均要等半圈才能等到目标扇区所以平均旋转延迟 每圈时间 ÷ 2 ≈ 4.17ms。很多题目会在这一步埋坑让人以为平均旋转延迟就是一圈时间。题目问“平均访问时间”给的数据是“平均寻道时间5ms、转速7200rpm、每磁道100个扇区、每扇区512字节”那就应该这么算平均旋转延迟4.17ms传输时间要看读多少数据读一个扇区的传输时间是每圈时间除以扇区数即8.33 / 100 0.0833ms。平均访问时间 5 4.17 0.0833 ≈ 9.25ms。如果把旋转延迟算成8.33ms答案就错了近一倍。这里有个考场习惯值得养成见到转速先写“每圈多少ms”见到“平均旋转延迟”立刻除以2两步写完再代入公式别跳步。2.3 记录交错题顺序存放不等于顺序读完磁盘访问时间真正难的综合题是“同一条磁道上连续存放多条逻辑记录读一条处理一条问读完所有记录总耗时”。这类题不把旋转和处理的先后关系画清楚十个有九个会算错。经典题长这样磁盘转速3000rpm一圈20ms每磁道10个扇区每条记录恰好占一个扇区记录按扇区顺序连续存放。读一条记录需要2ms处理一条记录需要4ms问处理完10条记录总时间多少。转速3000rpm时一圈是20ms所以每个扇区扫过磁头的时间是2ms。读第1条记录用2ms读完时磁头正好在扇区1的起点紧接着处理需要4ms这4ms里磁盘继续转转过2个扇区等处理完时磁头已经在扇区3的起点。可是第2条记录还在扇区1必须等磁盘再转8个扇区16ms把扇区1转到磁头下才能读第2条读完再处理4ms。除了第一条是“读2处理46ms”后面每条都是“等16读2处理422ms”总时间 6 9×22 204ms。如果用记录间隔离散存放的方式优化让读处理的时间刚好等于转过若干个扇区的时间也就是每条记录耗时6ms、磁盘正好转3个扇区那么第2条记录放在扇区3、第3条放在扇区6、第4条放在扇区9依次错开10条记录读完总时间就是10×660ms。这种交错编号的优化原理就是让“处理时间”被一轮旋转消化掉而不是让磁头干等一整圈。考试看到“顺序存放”“记录交错”这些关键词先画一个10等分的圆再动手思路会清晰很多。3. 磁盘调度算法四种算法其实是同一条主线3.1 FCFS、SSTF、SCAN、CSCAN的移动逻辑磁盘调度算法是上午题常客下午案例偶尔也会混一道。四种算法的区别本质上就是“下一个服务谁”的选择规则不同。先来先服务FCFS最简单按请求到达顺序依次处理公平但磁头移动路径长。最短寻道时间优先SSTF每次选离当前位置最近的请求响应快但局部优先极端情况下远处的请求可能长期得不到服务也就是饥饿现象。SCAN也叫电梯算法磁头沿着当前方向移动途中经过的请求都服务一直走到一端再反向类似电梯上下运行。循环扫描CSCAN从字面理解磁头只朝一个方向服务到了端点直接快速返回另一端返回途中不处理任何请求这样能避免SCAN里“刚被服务过的方向很快又回来”的不公平等待。还有一个细节很多教材里SCAN到达边界才回头而LOOK是到达当前方向最远的请求就回头CSCAN对应的是CLOOK。软考选择题如果只说SCAN默认按“到边界再回头”算如果题目明确说“到达最大磁道号后反向”就按题干来。解题时先圈出三个信息当前磁头位置、当前移动方向、请求队列然后按规则模拟方向变了之后要特别小心。3.2 一道综合题走完四种算法用一个具体序列对比四种算法的总移动量。假设当前磁头位于143磁道当前移动方向为磁道号增大方向请求队列是86、147、91、177、94、150、102、175、130。FCFS按顺序走143→86→147→91→177→94→150→102→175→130逐段移动量是57、61、56、86、83、56、48、73、45累计565个磁道。SSTF每次选最近的143最近的是147距离4然后150距离3再到130距离20接着102距离28、94距离8、91距离3、86距离5、175距离89、177距离2累计162个磁道。SCAN沿增大方向先服务147、150、175、177到边界199后反向回程服务130、102、94、91、86累计为43252226928835169个磁道。CSCAN沿增大方向到199后直接回到0号磁道附近再沿增大方向继续回程不服务那么服务顺序是147、150、175、177然后跳到86开始服务86、91、94、102、130累计为432521998653828363个磁道。把四个数字放在一起SSTF和SCAN明显优于FCFSCSCAN因为一次性回程多了199的移动量在这类“最远请求不到199”的例子里显得高但它的价值在于最坏等待时间可控。做题时最后一步一定是“把总移动量抄到答题卡之前再看一眼方向”我见过有考生SCAN算对了结果反向那一半把回程请求也服务了直接算成另一种算法一对答案才发现差了几十。4. 位示图盘块与字位之间的换算4.1 位示图到底在管理什么位示图是文件系统管理空闲盘块的一种数据结构。整个磁盘被划分成固定大小的物理块比如4KB一块位示图用一个二进制位对应一个物理块1表示占用0表示空闲。它的原理特别像地下停车场每个车位上方的那盏小灯灯亮表示有车灯灭表示空位只不过位示图把这些灯全部集中到一片连续的内存里。一个32位字可以管32个盘块盘块数多了位示图本身也要占存储空间。软考关于位示图的题核心就两类一类是“共N个盘块每字n位需要多少个字”另一类是“给定盘块号求它对应第几个字第几位”以及反向的“给定字号位号求盘块号”。第二类最容易错。4.2 字号、位号、盘块号转换的公式与陷阱换算公式本身不复杂但起点是0还是1决定公式完全不一样。字节位示图如果字号和位号都从0开始盘块号也从0开始那么盘块号b对应的字号 b / n位号 b % n。这里n是每字位数多数题是32。如果盘块号从1开始字号位号也从1开始那要把所有数先减1再除最后再恢复字号 (b - 1) / n 1位号 (b - 1) % n 1。很多考题会故意在题干里写明“盘块号从0开始”或“字号位号从1开始”读题时把这几个“从几开始”圈出来比急着套公式重要得多。举个例子。某系统盘块号从0开始每字32位字号位号也均从0开始问盘块号1024在第几个字的第几位。1024 ÷ 32 32余0所以字号是32位号是0。如果题目问“第几个字的第几位”就要回答“第33个字的第1位”因为从0计数到32实际是人类习惯的第33个。反过来第10个字从0开始的第5位从0开始对应的盘块号 10×325 325。一个正向一个反向考场上特别容易差1或差32。这个“减1加1”的坑每年都有人掉。我的习惯是草稿纸上先写一行字“字号从0盘块号从0直接用除和取余字号从1先减1再操作”。用一道题验证完再往答题卡上写。4.3 位示图自身占用空间的估算位示图本身占多少空间也是选择题考点。已知磁盘容量和物理块大小先算总块数再除以8就是位示图占用的字节数因为一个字节8位。例磁盘容量300GB物理块大小4KB全部按1024进制换算。总块数 300×1024×1024 / 4 78643200块。位示图需要的位数 78643200位换算成字节 78643200 / 8 9830400字节约等于9.38MB。如果题目给的是每字32位问需要多少个字就用总块数除以32得到2457600字。这里要注意一个问题题目可能把磁盘容量写成“300GB”但物理块大小给“4KB”两者的进制描述如果不一致算出来会差很大。软考的默认口径是1024进制遇到“厂商容量”这类字眼才考虑1000进制。拿不准时先看题干有没有“约等于”“按十进制”的字样没有就按1024算。5. RAID容量计算选择题里的稳定送分点5.1 各级别冗余方式与有效容量RAID题在软考里主要考容量和容错能力最常出现的是RAID0、RAID1、RAID5、RAID10。先看一张表把原理和有效容量一次记住。级别最少盘数数据组织方式有效容量容错能力RAID02条带化数据分散到所有盘N×单盘容量无冗余坏一块全丢RAID12镜像两块盘存同样数据(N/2)×单盘容量允许坏一块RAID53数据和奇偶校验分布在所有盘(N-1)×单盘容量允许坏一块RAID64双重奇偶校验(N-2)×单盘容量允许坏两块RAID104先镜像再条带(N/2)×单盘容量每组镜像允许坏一块这张表里最需要背的是RAID5。很多人第一次做RAID5容量题下意识以为是所有盘容量加总正确答案其实是“总容量减一块盘的容量”因为要拿一块盘的等效空间存奇偶校验信息。RAID5不是单独用某块盘存校验而是把校验信息分散到所有盘上所以有效空间是N-1块盘。N块同容量盘做RAID5利用率就是(N-1)/N。5.2 RAID5是考试常客做题模板实际考题往往这么出某公司购买8块4TB硬盘若组建RAID5可用存储容量是多少直接套公式(8-1)×4TB28TB利用率是28/3287.5%。如果题目改成“组建RAID1”可用容量8×4/216TB利用率50%如果改成“组建RAID0”可用容量32TB但不提供冗余。还有一种变体8块4TB盘2块4TB热备盘做RAID5可用容量是多少热备盘平时不参与存储坏了才顶上所以可用容量仍然是28TB硬盘总插槽数多了2块。这类题纯粹考概念热备盘不计入有效容量按字面理解就行。RAID5还有一个常和“磁盘损坏”结合的判断题比如“RAID5中一块盘损坏后系统还能正常工作吗”答案是能因为可以通过其余盘的数据和校验信息重建损坏盘的数据但如果后续又坏一块数据就彻底丢了。这里也对应前面表格说的“允许坏一块”。6. 易错点清单与复习策略6.1 我踩过的十个坑把磁盘相关计算里最容易出问题的位置汇总成一份清单考前扫一眼能救命。转速换算出错。每圈毫秒 60000 / rpm不是60 / rpm也不是60000直接乘。平均旋转延迟是一圈的一半。很多题目就留这个陷阱算完一圈时间记得除以2。盘片数不等于盘面数。双面盘片默认盘面数翻倍题目说“记录面”才是直接给的数。非格式化容量和格式化容量公式混用。给位密度用周长×磁道数给扇区用扇区数×扇区大小。记录交错题按“读处理”直接乘条数。顺序存放时处理期间磁头已经转过了下一条记录的位置要加等待时间。调度算法没看当前方向。SSTF没有方向概念SCAN和CSCAN必须有方向方向不同结果完全不同。SCAN和CSCAN回程处理请求。SCAN回程要处理沿途请求CSCAN回程不处理直接回到另一端。位示图公式起点搞反。先确认字号、位号、盘块号的起点是0还是1再套公式。RAID5有效容量算成N块盘。正确是N-1块盘校验信息占了等价于一块盘的容量。进制默认。软考默认1024进制没有明确说明按1000进制时不要用1000算。6.2 考前怎么盯这块的复习磁盘相关计算在上午题占比不高但知识点密集适合用“短线冲刺”的方式解决。我的操作方法是考前两周把手写笔记本翻到一页只抄三类内容转速和容量的所有公式、四种调度算法的一句话区分、位示图从0和从1两组公式。抄完合上本子默写一遍再对照检查。这页纸就是考试当天下午进考场前最后看的东西比临时翻教材有用得多。题量方面这部分不需要题海战术。每天做3道跟磁盘相关的选择题坚持一周基本就能覆盖所有考法。刷题时故意把每道题的坑点标注出来比如这道题考“平均旋转延迟要不要除以2”那道题考“CSCAN回程会不会服务”形成自己的坑点索引。考场上遇到新题先对照坑点索引排除掉几个错误选项正确率会明显提升。我个人备考时对这类计算题的最大体会是别急着列算式先花十秒钟把题目里的物理过程在脑子里过一遍。磁盘题和纯数学题不一样每一个数都有实际含义把“磁头现在在哪、盘转到哪、要不要等待”想清楚公式自然就列对了。我在记录交错题上栽过一次之后养成了画圆盘草图的习惯考试时这个习惯帮我稳住了所有访问时间题。这套方法你也可以直接拿去用软考只剩两周也不是问题。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑