磁盘和固态磁盘

磁盘和固态磁盘

磁盘的物理结构

image-20230502150745540

​ 磁盘的表面由一些磁性的物质组成,可以用这些磁性物质来记录二进制数据。磁盘的盘面被划分成一个个磁道,这样一个“圈”就是一个磁道。同一磁盘上不同磁道上记录的信息量相同,因此内侧磁道上的数据密度较大。一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同

image-20230502150912516

如下图,所示。一个磁盘中可能会有多个盘面,一个盘面上会有不同的磁道。对于活动的头磁盘,磁臂可以来回伸缩来确定磁头定位磁道,因此每个盘面对应一个磁头。而对于一个固定头磁盘,每个盘面的每个磁道都有一个对应的磁头

image-20230502151153295

在这里插入图片描述

​ 了解了磁道的物理结构,我们便可以用(柱面号,盘面号,扇区号)(编号的顺序不能换,在后面的减少延迟时间的方法具体解释)来定义任意一个“磁盘块”。根据该地址读取一个“块”的过程如下:

  1. 根据柱面号移动磁臂,让磁头指向指定柱面
  2. 激活指定盘面对应的磁头
  3. 磁盘旋转的过程中,指定的扇区会从磁头下面划过,这样就完成了对指定扇区的读/写(实质上是电流的磁效应,和切割磁感线,具体的可以看机组中的磁盘描述)

磁盘一次读/写操作的时间

一次磁盘的读写时间

一次磁盘的读写时间由寻找(寻道)时间旋转延迟时间传输时间决定

寻找时间(寻道时间)Ts:在读写数据前,将磁头移动到指定磁道所花的时间。

  1. 启动磁头臂需要的时间
  2. 移动磁头需要的时间

延迟时间 T R T_R TR:通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设转速为r,则平均所需的延迟时间 T R = 1 2 r T_R = \frac{1}{2r} TR=2r1

传输时间 T t T_t Tt:从磁盘读出或向磁盘写入数据所经历的时间,假定磁盘转速为r,此次读写的字节数为b,每个磁道上的字节数为N。则传输时间 T t = b r N T_t = \frac{b}{rN} Tt=rNb

总的平均存取时间$T_a=T_s + \frac{1}{2r} + \frac{b}{rN} $

延迟时间和传输时间都与磁盘的转速相关,。而转速是硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间。但是操作系统的硬盘调度算法会直接影响寻道时间。

磁盘调度算法

image-20230502142803008

先来先服务算法(FCFS)

FCFS算法的根据进程请求访问磁盘的先后顺序进行调度。

优点是该种算法的具有公平性,不会产生饥饿现象。当只有少量进程需要访问,且大部分请求都是访问簇聚的文件扇区,则有达到较好的性能

缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS性能上较差,寻道时间较长

image-20230502143532382

最短寻找时间(SSTF)

SSTF(Shortest Seek Time First)算法有限处理与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是不能保证总的寻道时间最短.(贪心思想)

优点:性能较好,平均寻道时间短

缺点:可能产生饥饿现象(当进程中有一个较大的磁道号的请求时,但后面来了很多低磁道号,导致大磁道号的请求长时间未被响应)

image-20230502143928979

SCAN算法(电梯调度算法)

SSTF算法会产生饥饿的原因在于,磁头可能会一直在一个区域内来回移动。于是出现了SCAN算法,SCAN算的思想在于:只磁头移动到最外侧磁道的时候才能往回移动,移动到最内侧磁道的时候才能往外移动。这种方式类似于电梯的运行,因此也叫做电梯算法

优点:性能较好,平均寻道时间较短,不会产生饥饿现象

缺点:

  1. 只有到达最边上的磁道才能改变磁头方向,有部分时间浪费
  2. SCAN算法对个位置磁道的响应频率不平均,磁道号高的磁道更容易被多次访问,可以根据下图看出

image-20230502144857189

注意:若题目中无特别说明,则SCAN就是LOOK

LOOK调度算法

LOOK算法与SCAN算法的不同之处在于,弥补了SCAN算法的第一个缺点。

LOOK算法的思想是:如果在磁头的移动方向上已经没有别的请求,就可以立即改变磁头移动方向

image-20230502145037786

优点:相比于SCAN算法来,不需要每次都移动到最外侧或者最内侧才改变磁头方向,是寻道时间进一步缩短

循环扫描算法C-SCAN

C-SCAN算法其实也是对SCAN算法的一个改进,C-SCAN算法弥补了SCAN算法的缺点2——对不同位置的磁道访问频率不同

C-SCAN算法规定只有磁头朝某个特定方向运动时才处理磁道访问请求,而返回时直接快速移动至起事端而不处理任何请求

image-20230502145803653

优点:比SCAN算法,对各个位置磁道的响应频率都很平均

缺点:只有到达最边上的磁道时才能改变磁头移动方向,因此会浪费部分寻道时间(SCAN算法的缺点1)

注意:若题目中无特别说明,C-SCAN就是C-LOOK

C-LOOK算法

C-LOOK算法其实就是C-SCANLOOK算法的结合。

C-LOOK算法的思想:如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回,并且磁头只需要返回到有磁道请求的位置即可,返回过程中磁头不处理请求

image-20230502150327015

优点:比起C-SCAN算法来,不需要每次都移动到最外侧或最内侧才改变磁头方向,是寻道时间进一步缩短

注意:若题目中无特别说明,则SCAN就是LOOK;C-SCAN就是C-LOOK

减少延迟时间的方法

image-20230502152003644

假设现在要读取,下图这种扇区编号连续磁盘中的2、3扇区:

磁头在读取一个扇区的时候,需要一下小段的时间处理,此时磁头不工作。但此时磁头又在不停地旋转。因此当读取完2号扇区的时,无法连续地读入3号扇区,必须等待盘片继续旋转,再次划过磁头,才能完成扇区读入。

所以若磁盘按照顺序对扇区编号的时读取多个连续的逻辑区,可能要很长的延迟时间

image-20230502152422019

交替编号

阅读了上面这个小案例后,可以想到用不连续的给扇区编号来解决。即采用交替编号的策率,让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延时跟段

image-20230502153238327

磁盘地址结构的设计

这个小节就是解释为什么磁盘的物理地址是(柱面号,盘面号,扇区号)而不是(盘面号,柱面号,扇区号)

若要连续读取物理地址(00,000,000)~(00,000,111)两圈可读完,之后在读取物理地址相邻的区域,即(00,001,000)~(00,001,111)

若采用(盘面号,柱面号,扇区号)的地址结构,因为要切换磁道所以需要启动磁头臂,将磁头移动到下一个磁道,再转两圈对数据进行读取。

而要是采用(柱面号,盘面号,扇区号)的地址结构,因为两部分数据在不同盘片的同一磁道,因此只需要激活对应盘片磁道的磁臂即可,从而节省了启动磁头臂并移动的时间

虽然采用(盘面号,柱面号,扇区号)

错位命名

采用错位命名的原因和采用交替编号的理由类似。即如果要连续访问(00,00,111)(00,01,000)这两个地址。

若不采用错位命名的方式,如下图。当0号盘面读取完,一号盘面对应的磁头也一起转过了这个扇区,所以还需要再转一圈才可以读取出其中的数据

image-20230502154926315

而当采用错位命名的方式,如下图。由于采用错位命名方式,因此当读完磁盘块(00,00,111)之后,还有一段时间处理,当(00,01,000)第一次划过1号盘面的磁头下方时,就可以直接读取数据,从而减少了延迟时间

image-20230502155124451

磁盘的管理

磁盘的初始化

​ Step1:在磁盘可以存储数据之前,必须将它分成扇区,以便磁盘控制器可以进行读写,这个过程称为低级格式化(物理格式化),将磁盘的各个磁道划分为扇区。一个扇区通常可以分为头、数据区、尾三个部分组成。管理扇区的各种数据结构一般放在头、尾两根部分,包含扇区校验码(如奇偶校验、CRC循环冗余校验码等,校验码用于校验扇区中的数据是否发生错误)

​ Step2:将磁盘分区,每个分区由若干柱面组成(即C、D、E盘)

​ Step3:进行逻辑格式化,创建文件系统。包括创建问及那系统的根目录、初始化存储空间管理所使用的数据结构

引导块

​ 通常在ROM中保留很小部分的自举装入程序,而将完整的引导程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。具有启动分区的磁盘称为启动磁盘系统磁盘

坏块

对于简单的磁盘,可以在逻辑格式化时(建立文件系统时)对整个磁盘进行坏块检查,标明哪些扇区是坏扇区,例如在FAT表上标明。在这种方式中,坏块对操作系统不透明

对于复杂的磁盘,磁盘控制区(磁盘设备内部的一个硬件部件)会维护一个坏块链表。在磁盘出厂前进行低级格式化(物理格式化)时就将坏链进行初始化。会保留一些“备用扇区”,用于替换坏块。这种方案称为扇区备用。且这种处理方式的中,坏块对操作系统透明

固态硬盘

image-20230502190710481

固态硬盘SSD是一种基于闪存技术的存储器。它与U盘本质无差异。一个SSD由多个存储芯片和闪存翻译层组成。SSD有很多优点,例如没有任何机械噪声和震动,能耗低,抗震性号,安全性高等

​ SSD的写比较慢(但是快于磁盘),因为在写数据的时候,若写数据的页Pi已经含有数据了,那么这个块中所有含有用数据的页都必须被复制到一个新块中,然后才能对该页Pi进行写操作。

image-20230502190800842

固态硬盘的缺点是,闪存的擦写寿命是有限的。因此一般搭配磨损均衡技术,而磨损均衡技术分为两种:

  • 动态磨损均衡。写入数据时,自动选择较新的闪存块。老的闪存块先歇歇
  • 静态磨损均衡。这种技术更为先进,SSD会监测并自动进行数据分配,让老的闪存块承担无须写数据的存储任务,同时让较新的闪存块腾出空间

参考

  • 《王道 24 操作系统考研指导》
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值