1 磁盘的结构
1.1 总览
1.2 磁盘、磁道、扇区
1.2.1 什么是磁盘
1.2.2 什么是磁道
如图,假设这是一个磁盘的平面图,磁盘的表面被划分为一个一个的的圈。这些圈就是磁道。实际磁盘中,磁道的数量可能有数万条。
1.2.3 什么是扇区
每一个磁道都会被划分为一个一个的”磁盘块“,这些块就是扇区。如图
注意:各磁道上的扇区存储容量都是相同的。可以看到外层的磁道长度较长,因此其存储容量的密度就会较小,而最内侧扇区的密度最大。
1.3 磁盘怎么读取数据
磁盘的实际物理结构如图所示。
读取文件时,首先由马达带动磁头臂将磁头移动到数据所在磁道的扇区上,接着磁盘转动,就可以实现数据的读取
1.4 盘面、柱面
1.4.1 什么是盘面
实际磁盘中,一个磁盘由多个盘组成,如图所示。每一个盘就是一个盘面,相应的,每一个盘面都有一个读写磁头。注意:所有的磁头都连接指针同一个磁头臂上,这些磁头是”同进退“的。
1.4.2 什么是柱面
所有盘面中相对位置相同的磁道组成柱面。如图,图中黄色的磁道就构成一个柱面
1.5 磁盘的分类
1.5.1 根据磁头是否可以移动
(1)活动磁头磁盘
(2)固定头磁盘
每一个磁盘都有一个磁头
1.5.2 根据盘面是否可以更换可以分为
(1)可换盘磁盘
(2)固定盘磁盘
1.6 总结
2 磁盘调度算法
2.1 总览
2.2 一次磁盘读/写操作需要的时间
2.2.1 寻道时间
2.2.2 延迟时间
解释:
1/r即为读写头转动一圈需要的时间,而找到目标扇区所需要的平均需要转半圈,所以还需要除2。
2.2.3 传输时间
解释:
b/N为写入目标字节数所需要使用的磁道数,而写入一个磁道的数据需要的时间与磁头转动一圈的时间相同。因此传输时间为:
磁头转动一圈的时间*总共需要转几圈
2.2.4 注意
2.3 进程访问磁盘的调度算法
2.3.1 先来先服务(FCFS)
(1)算法思想
(2)例子
(3)优缺点
2.3.2 最短寻找时间优先(SSTF)
对于FCFS算法的改进
(1)算法思想
(2)实例
(3)优缺点
为什么会产生饥饿现象?
2.3.3 扫描算法(SCAN)
对于SSTF算法的改进
(1)算法思想
(2)实例
(3)优缺点
2.3.4 LOOK算法
对于SCAN算法的改进
(1)算法思想
(2)实例
(3)优缺点
2.3.5 循环扫描算法(C-SCAN)
(1)算法思想
(2)实例
(3)优缺点
2.3.6 C-LOOK 调度算法
对于C-SCAN算法的改进
(1)算法思想
(2)实例
(3)优缺点
2.4 总结
3 减少延迟时间
3.1 存在延迟时间的原因
假设磁盘的基本结构如图所示。事实上,在实际的磁盘中,磁头每读取一个扇区的内容后,需要一定的处理时间,但是盘片是在不停的旋转的,所以假设磁头读完2号扇区后再想读3号扇区,必须等盘片转完一圈才可以。此时会产生较大的延迟。
3.2 减少延迟的方法
3.2.1 交替编号
如图,假设磁盘需要读入0-1号扇区的内容,当读完0号扇区的内容后经过一段时间的处理,此时磁头在盘面4,此时只需要等待磁头从4转到1号就可以读取。
3.2.2 错位命名
(1)磁盘的物理地址为什么是(柱面号,盘面号,扇区号)而不是(盘面号,柱面号,扇区号)?
①对于第二种表示方式,
则转第一圈的时候,可以读取0、2、4、6的磁道的数据;转第二圈可以读取1、3、5、7的磁道的数据。
此时(00,000,111)的数据全部读完,为了读取(00,001,000)-(00,001,111)的数据,需要将读写头往外移动一个磁道的距离,这种移动属于物理层面的移动,耗费时间较长。
②对于第一种表示方式,
与前文类似,读取(000,00,111)的数据需要转两圈。接下来为了读取(000,01,000)-(000,01,111)的数据(分布在两个盘面上),示意图如图所示。则只需要将0号磁头关闭并激活1号磁头即可。并再次转两圈就可以读取完成。
这种方式无须物理移动磁头,耗费时间更短
(2)什么是错位命名?
不同盘面不同扇区的命名是错开的。如图所示
(3)不采用错位命名的读取过程
如果不采用错位命名,则磁盘的物理结构的示意图如图所示
假设想读取的数据为0号盘面的7号扇区、1号盘面的0号扇区
注意:
1. 这种地址连续的读取很常见)。
2. 不同的盘面是连轴转动的。
则首先会转一圈读取0号盘面的7号扇区,而读取完数据还需要花费一定的时间进行处理,而盘面是不间断转动的,因此虽然此时1号磁头已经到了1号盘面的0号扇区,但是也并不可以立即读取,而等到可以读取的时候磁头已经不在扇区的开始处了。所以又需要转一圈,整个过程耗费时间较长
(4)采用错位命名的读取过程
如果采用错位命名,则磁盘的物理结构的示意图如图所示
则当0号盘面的7号扇区的数据处理完毕,此时1号盘面的磁头可能已经在7号扇区的中间,再等上一小段时间就可以读取数据。此种方法耗费时间较短。
3.3 总结
4 磁盘的管理
4.1 总览
4.2 什么是磁盘初始化
4.2.1 物理格式化
如图所示:
4.2.2 将磁盘分区
如图所示
4.2.3 逻辑格式化
4.3 引导块
4.3.1 初始化程序程序(自举程序)
(1)什么是自举程序?
(2)ROM
(3)存在的问题
初始化程序一般较大,很难保证不出错,但是ROM是不可更改的,当程序出错时就无法更改
4.3.2 引导块
(1)如何改进ROM的问题?
为了解决ROM的问题,通常是将自举块存放在系统内,ROM钟存放自举装入程序,这种程序一般而言较小,出错的可能性很小
(2)什么是引导块?
4.4 坏块
4.4.1 什么是坏块
4.4.2 如何解决坏块的问题
(1)FAT标记
(2)替换坏块
4.5 总结
5 固态硬盘
5.1 总览
5.2 SSD组成
5.2.1 示意图
5.2.2 解释
系统对于固态硬盘的读取是以页为单位,多个页组成了一个块,多个块组成了一个芯片,多个芯片组成了一个芯片组。
对应到机器硬盘:
系统对于机器硬盘的读取是以扇区为单位,多个扇区组成一个磁道,多个磁道促成一个盘面,多个盘面组成一个盘面组。
因此存在对应关系:
固态硬盘 | 机器硬盘 |
页 | 扇区 |
块 | 磁道 |
芯片 | 盘面 |
芯片组 | 盘面组 |
5.3 SSD的读取特性
5.3.1 固态硬盘的读取过程
系统将需要读/写的逻辑块号传入硬盘,硬盘的闪存翻译层将逻辑块号翻译为物理页号,再从此物理地址中取出内容传给系统
5.3.2 固态硬盘的擦除/写过程
由于固态硬盘对数据的擦除是以块为单位的。假如此时一个块有3个页,其中0、1页有数据,而此时又想在0页写数据。则此时需要将0、1页的数据移到其余空闲块,并进行擦除后才可以写入。
同时,数据的物理地址改变后,闪存翻译层还需要同步改变这些数据的逻辑块号、物理地址的映射关系
5.3.4 固态硬盘支持随机访问
可以直接通过电路定位到物理地址。而机器硬盘只可以通过磁头的移动进行读写,不支持随机访问。
5.4 SSD的磨损均衡技术
5.4.1 SSD的缺点
当SSD中的一个块被擦除太多次后会坏掉,也就是不可以再次写入数据。当然,机器硬盘不存在这一点特点。
5.4.2 什么是磨损均衡技术
对于坏掉的块或磨损过于严重的块,闪存翻译层会改变逻辑块号与物理地址的映射关系,不再将数据存入该块
5.4.3 分类
①动态磨损均衡
②静止磨损均衡
6 总结
本文原版PDF文件链接:提取码:ikun
操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。
它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。
操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。
在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。
渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍