操作系统——磁盘和固态硬盘

1.磁盘

磁盘安装在一个磁盘驱动器中,它由磁头臂、用于旋转磁盘的主轴和用于数据输入/输出的电子设备组成。如图5.14 所示,多个盘片垂直堆叠,组成磁盘组,每个盘面对应一个磁头,所有磁头固定在一起,与磁盘中心的距离相同且一起移动。所有盘片上相对位置相同的磁道组成柱面扇区是磁盘可寻址的最小单位,磁盘上能存储的物理块数目由扇区数、磁道数及磁盘面数决定,磁盘地址用“柱面号·盘面号·扇区号”表示

2.磁盘的管理

1.磁盘初始化

一个新的磁盘只是一个磁性记录材料的空白盘。在磁盘可以存储数据之前,必须将它分成扇区,以便磁盘控制器能够进行读写操作,这个过程称为低级格式化(或称物理格式化)。

2.分区 

在可以使用磁盘存储文件之前,操作系统还要将自己的数据结构记录到磁盘上,分为两步:第一步是,将磁盘分为由一个或多个柱面组成的分区(即我们熟悉的C盘、D 等形式的分区)每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中;第二步是,对物理分区进行逻辑格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲空间和已分配的空间以及一个初始为空的目录。

因扇区的单位太小,为了提高效率,操作系统将多个相邻的扇区组合在一起,形成一簇。

 3、引导块

计算机启动时需要运行一个初始化程序(自举程序),它初始化 CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,将它加载到内存,并转到起始地址,从而开始操作系统的运行。

自举程序通常存放在 ROM 中,为了避免改变自举代码而需要改变 ROM 硬件的问题,通常只在ROM中保留很小的自举装入程序,而将完整功能的引导程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。具有启动分区的磁盘称为启动磁盘或系统磁盘。

4,坏块

由于磁盘有移动部件且容错能力弱,因此容易导致一个或多个扇区损坏。部分磁盘甚至在出厂时就有坏块。

对于简单磁盘,如采用IDE 控制器的磁盘,坏块可手动处理,如MS-DOS的Format命令执行逻辑格式化时会扫描磁盘以检查坏块。坏块在FAT 表上会标明,因此程序不会使用它们。

对于复杂的磁盘,控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时就已初始化,并在磁盘的使用过程中不断更新。低级格式化将一些块保留作为备用,操作系统看不到这些块。控制器可以采用备用块来逻辑地替代坏块,这种方案称为扇区备用。

对坏块的处理实质上就是用某种机制使系统不去使用坏块。 

3.磁盘调度算法 

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

1)寻找时间 T1。活动头磁盘在读写信息前,将磁头移动到指定磁道所需要的时间。这个时间除跨越n条磁道的时间外,还包括启动磁臂的时间s,即 T= m x n + s ,式中,m是与磁盘驱动器速度有关的常数,约为0.2ms,磁臂的启动时间约为2ms。

2)旋转延迟时间T2。磁头定位到某一磁道的扇区所需要的时间,设磁盘的旋转速度为r,则

T2=1 / 2r 

3)传输时间 T3。从磁盘读出或向磁盘写入数据所经历的时间,这个时间取决于每次所读/写的字节数 b和磁盘的旋转速度:
T3 = b / rN
式中,r为磁盘每秒的转数,N为一个磁道上的字节数。
在磁盘存取时间的计算中,寻道时间与磁盘调度算法相关;而延迟时间和传输时间都与磁盘旋转速度相关,且为线性相关,所以在硬件上,转速是磁盘性能的一个非常重要的参数。


总平均存取时间T4可以表示为  T4 = T1 + 1 / 2r + b / rN
虽然这里给出了总平均存取时间的公式,但是这个平均值是没有太大实际意义的,因为在实际的磁盘 I/O操作中,存取时间与磁盘调度算法密切相关。

目前常用的磁盘调度算法有以下几种。
(1)先来先服务 ( First Come First Served,FCFS) 算法
FCFS 算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。

(2)最短寻找时间优先(Shortest SeekTime First,SSTF) 算法

SSTF 算法选择调度处理的磁道是与当前磁头所在碰道距离最近的磁道,以便使每次的寻找时间最短。当然,总是选择最小寻找时间并不能保证平均寻找时间最小,但能提供比 FCFS 算法更好的性能。这种算法会产生“饥饿”现象。

(3)扫描 (SCAN)算法(又称电梯调度算法)

SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象,实际上就是在最短寻找时间优先算法的基础上规定了碰头运动的方向,由于磁头移动规律与电梯运行相似,因此又称电梯调度算法。SCAN 算法对最近扫描过的区域不公平,因此它在访问局部性方面不如FCFS 算法和SSTF 算法好。

(4)循环扫描 (Circular SCAN,C-SCAN)算法

在扫描算法的基础上规定磁头单项移动来提供服务,回返时直接快速移动起始端而不服务任何请求。

采用SCAN 算法和 C-SCAN 算法时,磁头总是严格地遵循从盘面的一端到另一端,显然,在实际使用时还可以改进,即磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点这种形式的SCAN算法和C-SCAN 算法称为LOOK调度

 

除减少寻找时间外,减少延迟时间也是提高磁盘传输效率的重要因素。可以对盘面扇区进行交替编号,对磁盘片组中的不同盘面错位命名。

4.固态硬盘 

固态硬盘(SSD) 是一种基于闪存技术的存储器。它与U盘并无本质差别,只是容量更大存取性能更好。数据是以页为单位读写的。只有在一页所属的块整个被擦除后,才能写这一页。不过,一旦擦除一块,块中的每页就都可以直接再写一次。某块进行若干次重复写后,就会磨损坏,不能再使用。

比起传统磁盘,SSD有很多优点,它由半导体存储器构成,没有移动的部件,因而随机访问速度比机械磁盘要快很多,也没有任何机械噪声和震动,能耗更低、抗震性好、安全性高等。 

缺点:闪存的擦写寿命是有限的,一般是几百次到几千次。

为了弥补SSD的寿命缺陷,引入了磨损均。SSD 磨损均衡技术大致分为两种:
1)动态磨损均衡。写入数据时,自动选择较新的闪存块。老的闪存块先歇一歇。

2)静态磨损均衡。这种技术更为先进,就算没有数据写入,SSD 也会监测并自动进行数据分配,让老的闪存块承担无须写数据的存储任务,同时让较新的闪存块腾出空间,平常的读写操作在较新的闪存块中进行。如此一来,各闪存块的寿命损耗就都差不多。

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值