[OS复习]设备管理4

来源:互联网 发布:js检验只能输入数字 编辑:程序博客网 时间:2024/06/05 20:09

1.引入磁盘调度的例子

假定:一个硬盘的扇区长度为512个字节,磁道长度为32个扇区,平均寻道时间为20ms,传输速率为1MB/s,转速为3600rpm。显然, 如果一个长度为128K个字节的文件存放在该硬盘上,那么该文件将在该硬盘上占用256个扇区。问:如果系统从该硬盘上完整地读入该文件, 将花费多长时间?
A.若文件连续地存放在硬盘的8个相邻的磁道上,那么系统完整地读入该文件需要花费的时间:
(20+8.3+16.7)+(8.3+16.7)×7=220ms
B。若文件随机地存放在硬盘的256个扇区上,那么读入该文件需要花费的时间:
(20+8.3+0.5)×256=7373ms
比较与分析
如果文件的存储方式不同,系统访问文件的效率就不同;即,文件的存储方式影响着系统访问文件的效率。文件的存储方式对系统访问文件的效率的影响主要在于:访问文件总的寻道时间和总的旋转延迟。
结论
当系统访问一组磁盘扇区时,如果能够减少总的寻道时间和总的旋转延迟,那么系统的访问效率将得到提高。

2.磁盘调度算法小结FCFS、SSTF、SCAN、N-SCAN

假定:当前有9个磁盘读写请求;这9个磁盘读写请求要访问的磁道号按照各个磁盘读写请求到达的次序依次为:55、58、39、18、90、160、150、38、184。此外,磁头当前位于100号磁道上。如果系统使用SCAN算法,还假定磁头当前的移动方向为磁道号增长的方向
问:如果系统分别使用FIFS策略、SSTF算法、SCAN算法调度磁盘,那么系统处理这9个磁盘读写请求时磁头的平均寻道长度为多少?

1.FIFS


2.2 SSTF


2.3 SCAN

3.Disk Cache的工作原理

当用户进程请求从磁盘读入一个扇区时,系统首先在disk cache中寻找该扇区的副本。 如果能够找到,那么系统将从disk cache中取出该扇区的副本并返给用户进程;否则,系统首先从磁盘上读入该扇区并在disk cache中为其建立一个副本,然后将该副本返给用户进程。
当用户进程请求向磁盘上写出一个扇区时,系统同样首先在disk cache中寻找该扇区的副本。如果能够找到,那么系统将根据用户进程的请求修改该扇区的副本;否则,系统同样首先从磁盘上读入该扇区并在disk cache中为其建立一 个副本,然后根据用户进程的请求修改该副本。
磁盘高速缓存的数据安全性
Disk Cache中的数据写出到磁盘:1.在系统空闲或需要淘汰被写的缓存空间时进行写。2.周期性地进行写。3.立即写回,称为“写穿透高速缓存”,相当于只有读缓存而没有写缓存。

4.磁盘管理的另一个有效方法

高性能的文件系统,磁盘碎片整理,使磁盘文件尽量连续。
磁盘容错技术
磁盘中常常存储着非常重要的数据,例如交易数据、帐目数据、学生成绩等。若这些数据出了问题,或者存储这些数据的磁盘报废,其后果是非常严重的。因此,要求保证磁盘数据的可靠性。
磁盘容错技术通过在系统中设置冗余部件来提高系统可靠性。冗余部件包括增加冗余的磁盘驱动器、磁盘控制器等,使得当磁盘系统某部分出现缺陷或故障时,磁盘仍能正常工作,且不至于造成数据的错误和丢失。
磁盘容错技术级别
第一级容错技术 :最早出现、最基本的容错技术,包括:双份目录和双份文件分配表、热修复重定向和写后读校验。
第二级容错技术 SFT-II:用于防止磁盘驱动器或磁盘控制器发生故障。包括:磁盘镜像、磁盘双工。磁盘双工的成本较高;可靠性更高;对两个磁盘的写入是并行进行,速度较快;在某些实现中读数据时,还可使用分离查找技术,从响应快的通道上取得数据,加快读取速度。 

5.RAID技术 

RAID(Redundant Array of Independent/ Inexpensive Disks):独立或廉价磁盘冗余阵列,其中,“独立”是目前通用的一个行业术语,强调RAID阵列的重要性和可靠性;“廉价”是较早使用的一个术语,重在强调RAID磁盘阵列中采用的相对较小的、价格较便宜的磁盘。
RAID磁盘阵列技术能以较低的成本,提供大容量、快速、安全可靠的磁盘存储系统。从容错的角度讲,RAID技术应属第二级容错技术,但其内涵远远不止容错。 一组可以并行工作的磁盘所构成的磁盘阵列,在磁盘子系统中执行的或者在主机系统中执行的磁盘阵列管理软件。 磁盘阵列管理软件把逻辑上连续的一组数据交叉分布存储在磁盘阵列中的各个磁盘上,如图所示:

该技术通常被称为磁盘条带化(Disk Striping),其好处是数据可以被并行读出,给主机的感觉是磁盘快了多倍。

5.1条带Strip的粒度

条带可以是细粒度的(如一个字节或字), 也可以是粗粒度的(如一个扇区或多个扇区)。若采用细粒度条带,几乎每个存取请求都会导致同时存取RAID中的所有磁盘,使得无法同时响应多个存取请求。 因此,细粒度的条带只利于对单个存取请求进行并行处理。若采用粗粒度条带,不会使每个存取请求都同时存取RAID中的所有磁盘;但,多个独立的存取请求通常会导致同时存取RAID中的所有磁盘。 显然,粗粒度的条带只利于对多个独立的存取请求进行并行处理。
磁盘阵列管理软件在存储数据的同时还将存储相关的校验信息;使得当磁盘阵列中的某个磁盘发生故障时,磁盘阵列管理软件可以恢复存储在该磁盘上的数据。
如果磁盘阵列管理软件在主机系统中执行,则属软件实现的RAID;如果磁盘阵列管理软件在磁盘子系统中执行,则属硬件实现的RAID,相应的硬件称为RAID控制器或RAID卡。采用RAID控制器方案的成本较高,但其效率高,不增加主机负担。此类RAID技术对主机完全透明,在主机看来,RAID就是一个容量大、速度快、可靠性高的磁盘。

5.2RAID的常见组织形式(6种)

RAID Level 0、RAID Level 1、RAID Level 2、RAID Level 3、RAID Level 4、RAID Level 5、还可对基本RAID级别进行组合
RAID0
仅使用了条带化技术,不存储数据的校验信息,能提供大容量、快速的磁盘存储能力,具备最好的读/写性能和最低的成本,磁盘容量的利用率为100%。但其安全性最低,其中任何一个磁盘损坏便会导致整个系统不可使用。
RAID1
仅使用了磁盘镜像或磁盘双工技术,能提供最好的安全性,其中任何一个磁盘损坏都不会导致数据丢失。但磁盘容量的利用率只有50%,成本较高;对磁盘的读/写性能没有提高。
RAID3
同时使用了磁盘条带化技术(细粒度,条带大小为一个字节或一个字)和奇偶校验容错技术,如图所示:
假定磁盘阵列中有N个磁盘,则RAID3将数据条带化到其中N-1个磁盘上,使用一个磁盘专门存储N-1个磁盘的奇偶校验数据。因此,N个磁盘中任意损坏一个,都不会导致数据的丢失。RAID3的优点是有较快的速度和较高的安全性,磁盘空间的利用率为(N-1)/N,成本相对RAID1较低。
RAID5
与RAID3类似,主要区别是:1、RAID3使用一个磁盘专门存储奇偶校验数据,对于每一个写操作(可能仅是一个条带),均要写奇偶校验磁盘。不但奇偶校验磁盘的负担较重、容易损坏,而且多个独立的写操作不能并行进行。2、RAID5使用粗粒度的条带,将奇偶校验数据分布到每一个磁盘中,没有专门的奇偶校验盘,因而克服了RAID3的缺点。当然,RAID5比RAID3稍复杂。如图:

6设备管理部分总结

设备管理功能、常用设备分配技术、I/O缓冲技术、磁盘工作原理、磁盘调度算法、磁盘阵列RAID技术。
设备、通道、控制器与主机间的连接方式通常是多对多的关系;在主机的角度看,所有设备都连接在I/O总线上,它们通过I/O指令和某个I/O端口地址、中断、通道、控制器等与主机交流,主机看不到这些设备具体细节。即插即用技术解决了设备间I/O端口地址、中断等的冲突,方便了用户在计算机系统中安装外部设备;对设备的具体操作都由设备驱动程序完成。
为了便于使用,设备管理程序为用户提供的是逻辑设备,而逻辑设备到物理设备的映射和转换由设备管理程序完成;为了实现对设备的管理,操作系统需要设立多种表格,详细记录设备的分配和使用情况;从资源管理的角度讲,设备可以分为独占型设备和共享型设备两大类。
缓冲区技术、虚拟设备技术、磁盘调度策略等等。操作系统中与磁盘管理相关的技术包括磁盘三维地址到一维地址的转换、磁盘碎片的整理、磁盘高速缓存、磁盘调度策略、磁盘系统容错、RAID技术等。

0 0
原创粉丝点击