



















目录区包含文件目录,空闲表,位示图,超级块等用于文件管理的信息

操作系统需要跟踪磁盘上的可用空间,确保高效分配和回收操作系统需要跟踪磁盘上的可用空间,确保高效分配和回收。常用方法如下:
空闲表法
与内存分配的动态分配算法如出一辙,因此不再赘述。
反正来来去去就是首次适应,最佳适应等策略,回收时注意合并压缩。
空闲链表法
原理:将所有空闲块通过指针或索引链接成一个链表,记录起始块和块数。
优点:实现简单,适合动态分配。
缺点:链表操作(遍历、拆分、合并)效率低,不适合大规模存储。

链表结构为0=>4=5=>6=>7=>......=>12=>14=>17=>......
位图法(Bit Map)
原理:用一个二进制位(Bit)对应磁盘上的一个物理块,0表示空闲,1表示已占用。
优点:空间占用小,查询和分配速度块(位运算),适合大容量,比如ext4文件系统。
缺点:分配连续空间时需扫描多个位,可能效率较低。

成组链接法
原理:将空闲块分组,每组记录下一组的快号,最后一组指向NULL或-1。
优点:结合位图和链表的优势,兼顾空间效率和分配速度,常用于高效文件系统。
缺点:实现复杂。

空闲法,空闲链表,位视图法,成组链接法本质上是数据结构的翻来覆去。数组=>链表=>位图=>混合使用。
注意一点,这一节讲的是操作系统如何跟踪磁盘可用空间(空闲管理),上一节的物理结构分配是操作系统如何占用物理空间(分配策略)。两者不要搞混了。

系统索引号,也被称为文件描述符(fd)
磁盘是计算机中常用的块存储设备,通过磁性介质持久化存储数据。

每个盘片被划分为一个个的磁道,每个磁道又划分为一个个扇区。

磁盘是由多个盘片叠起来,所有盘面中的垂直位置就叫柱面

因此磁盘的物理地址,可以由柱面号=>盘面号=>扇区号组成。

一次磁盘读写操作需要的时间如下:
从上面可以看出,延迟时间与传输时间。受限于物理限制,是没办法在软件层面上优化的。
只有寻道时间,移动磁头的过程。我们可以通过不同的调度算法,缩短磁头移动的路径。
寻道时间占主导(约 60%~80%)。当多个 I/O 请求同时等待处理时,通过合理安排请求顺序,可显著减少平均寻道时间,提升磁盘整体性能。
磁头当前位置:100
请求序列:98, 183, 37, 122, 14, 124, 65, 67
寻道顺序:100→98→183→37→122→14→124→65→67
总寻道距离:|100-98| + |98-183| + … + |65-67| = 2 + 85 + 146 + 85 + 108 + 110 + 59 + 2 = 597
最近未处理,优先处理。初始位置 100,最近请求是 98 或 122(距离 2 或 22),选择 98;
处理后磁头在 98,最近请求是 67 或 65(距离 31 或 33),但实际更优为 122(距离 24)?需注意:SSTF 是找当前磁头位置的最近,而非已处理后的最近。
正确顺序:100→98(距离 2)→122(距离 24)→124(距离 2)→183(距离 59)→67(距离 116)→65(距离 2)→37(距离 28)→14(距离 23)
总寻道距离:2+24+2+59+116+2+28+23 = 256(比 FCFS 减少 56%)
(假设磁头当前在 100,方向 “向外”,最大磁道 200,请求序列同上):
向外方向请求:122, 124, 183
处理顺序:100→122→124→183(到达外边缘 200 前),然后反向向内;
向内方向请求:98, 67, 65, 37, 14
总寻道距离:(122-100)+(124-122)+(183-124)+(183-98)+(98-67)+(67-65)+(65-37)+(37-14) = 22+2+59+85+31+2+28+23 = 252
示例(同上场景,假设高端 200,低端 0,方向向外):
向外处理:122→124→183→200(假设到达高端),然后跳回 0,处理向内方向未完成的请求(98, 67, 65, 37, 14)。
总寻道距离需计算跳回开销,但实际中跳回时间不计入寻道(因不访问数据),主要处理单向请求。
优点:适合需要均匀分布访问的场景(如磁盘阵列),避免 SCAN 在反向时的 “空扫”。
缺点:平均寻道时间略高于 SCAN,但公平性更好。
磁盘初始化分配为三个步骤:
初始化完成后,由BIOS装入初始化程序,找到硬盘中的MBR引导块。
机械硬盘受限于物理限制,已经发展到了极限。尤其在随机读取方面,更是到达了瓶颈。
固态硬盘(Solid State Drive, SSD)是基于闪存芯片的存储设备,彻底摒弃了传统机械硬盘(HDD)的旋转盘片和磁头寻道结构,通过电信号直接读写数据,实现了存储性能的质的飞跃。
页(Page):最小读写单位(4KB~16KB),等同于磁盘扇区
块(Block):最小擦除单位(64~256 页),等同于磁盘磁道。
| 特性 | SSD | HDD |
|---|---|---|
| 速度 | 顺序读写7GB/s+,随机读写1000K IOPS+ | 顺序读写200MB/s,随机读写100 IOPS |
| 抗震性 | 无机械部件,抗冲击 | 易受震动损坏 |
| 功耗 | 低(<5W) | 高(10~20W) |
| 容量成本 | 高(约0.1元/GB) | 低(约0.03元/GB) |
| 适用场景 | 系统盘、高频读写、移动设备 | 大容量冷存储、监控录像 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。