个人主页:godspeed_lucip
系列专栏:OS从基础到进阶
本文配套PDF源文件请翻阅至文章底部下载
如图,假设这是一个磁盘的平面图,磁盘的表面被划分为一个一个的的圈。这些圈就是磁道。实际磁盘中,磁道的数量可能有数万条。
每一个磁道都会被划分为一个一个的”磁盘块“,这些块就是扇区。如图
注意:各磁道上的扇区存储容量都是相同的。可以看到外层的磁道长度较长,因此其存储容量的密度就会较小,而最内侧扇区的密度最大。
磁盘的实际物理结构如图所示。
读取文件时,首先由马达带动磁头臂将磁头移动到数据所在磁道的扇区上,接着磁盘转动,就可以实现数据的读取
实际磁盘中,一个磁盘由多个盘组成,如图所示。每一个盘就是一个盘面,相应的,每一个盘面都有一个读写磁头。注意:所有的磁头都连接指针同一个磁头臂上,这些磁头是”同进退“的。
所有盘面中相对位置相同的磁道组成柱面。如图,图中黄色的磁道就构成一个柱面
(1)可换盘磁盘
(2)固定盘磁盘
解释:
1/r即为读写头转动一圈需要的时间,而找到目标扇区所需要的平均需要转半圈,所以还需要除2。
解释:
b/N为写入目标字节数所需要使用的磁道数,而写入一个磁道的数据需要的时间与磁头转动一圈的时间相同。因此传输时间为:
磁头转动一圈的时间*总共需要转几圈
对于FCFS算法的改进
(1)算法思想
(2)实例
(3)优缺点
为什么会产生饥饿现象?
对于SSTF算法的改进
(1)算法思想
(2)实例
(3)优缺点
对于SCAN算法的改进
(1)算法思想
(2)实例
(3)优缺点
对于C-SCAN算法的改进
(1)算法思想
(2)实例
(3)优缺点
假设磁盘的基本结构如图所示。事实上,在实际的磁盘中,磁头每读取一个扇区的内容后,需要一定的处理时间,但是盘片是在不停的旋转的,所以假设磁头读完2号扇区后再想读3号扇区,必须等盘片转完一圈才可以。此时会产生较大的延迟。
如图,假设磁盘需要读入0-1号扇区的内容,当读完0号扇区的内容后经过一段时间的处理,此时磁头在盘面4,此时只需要等待磁头从4转到1号就可以读取。
(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号扇区的中间,再等上一小段时间就可以读取数据。此种方法耗费时间较短。
(1)什么是自举程序?
(2)ROM
(3)存在的问题
初始化程序一般较大,很难保证不出错,但是ROM是不可更改的,当程序出错时就无法更改
(1)如何改进ROM的问题?
为了解决ROM的问题,通常是将自举块存放在系统内,ROM钟存放自举装入程序,这种程序一般而言较小,出错的可能性很小
(2)什么是引导块?
系统对于固态硬盘的读取是以页为单位,多个页组成了一个块,多个块组成了一个芯片,多个芯片组成了一个芯片组。
对应到机器硬盘:
系统对于机器硬盘的读取是以扇区为单位,多个扇区组成一个磁道,多个磁道促成一个盘面,多个盘面组成一个盘面组。
因此存在对应关系:
固态硬盘 | 机器硬盘 |
---|---|
页 | 扇区 |
块 | 磁道 |
芯片 | 盘面 |
芯片组 | 盘面组 |
系统将需要读/写的逻辑块号传入硬盘,硬盘的闪存翻译层将逻辑块号翻译为物理页号,再从此物理地址中取出内容传给系统
由于固态硬盘对数据的擦除是以块为单位的。假如此时一个块有3个页,其中0、1页有数据,而此时又想在0页写数据。则此时需要将0、1页的数据移到其余空闲块,并进行擦除后才可以写入。
同时,数据的物理地址改变后,闪存翻译层还需要同步改变这些数据的逻辑块号、物理地址的映射关系
可以直接通过电路定位到物理地址。而机器硬盘只可以通过磁头的移动进行读写,不支持随机访问。
当SSD中的一个块被擦除太多次后会坏掉,也就是不可以再次写入数据。当然,机器硬盘不存在这一点特点。
对于坏掉的块或磨损过于严重的块,闪存翻译层会改变逻辑块号与物理地址的映射关系,不再将数据存入该块
本文原版PDF文件链接:提取码:ikun
操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。
它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。
操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。
在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。
渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。