操作系统(day14)-- 磁盘与IO

磁盘与IO

磁盘

磁盘的构成

盘面:一般磁盘有多个盘面,一个盘片的正反两面有两个盘面
操作系统(day14)-- 磁盘与IO_第1张图片
柱面: 所有盘面中相对位置相同的磁道组成煮面,上图中四个黄圈构成一个柱面
操作系统(day14)-- 磁盘与IO_第2张图片
扇区: 一个磁道又被划分为一个个扇区,每个扇区就是一个”磁盘块“
操作系统(day14)-- 磁盘与IO_第3张图片

磁盘调度算法

一次磁盘 读/写操作需要的时间由,寻找时机 + 延迟时间(跟磁盘转速相关)+ 传输时间(也跟磁盘转速相关),
而磁盘转速是硬件的固有属性,因此操作系统页无法优化延迟时间传输时间,只能通过磁盘的调度算法来直接影响寻道时间
引入磁盘调度的目的:降低磁盘访问时间,提高文件系统的效率
操作系统(day14)-- 磁盘与IO_第4张图片
先来先服务算法(FCFS)
FCFS算法根据进程请求访问磁盘先后顺序进行调度,这是一种最简单的调度算法。
操作系统(day14)-- 磁盘与IO_第5张图片
最短寻找时间优先(SSTF)
SSTF算法选择调度处理的磁道是与当前所在磁道距离最近的磁道,以便使每次的寻找时间最短。(类似于贪心,总是选择当前最近的)
操作系统(day14)-- 磁盘与IO_第6张图片
优点:性能较好,平均寻道时间短
缺点:可能产生”饥饿“现象

扫描算法(SCAN)
SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象,实际上就是在最短寻找时间优先算法的基础上规定了磁头运动的方向。又称电梯算法。
操作系统(day14)-- 磁盘与IO_第7张图片
优点:性能较好,寻道时间短,不会产生饥饿现象
缺点:只有达到最边上的磁道时才能改变磁头移动方向;对于各个位置的磁道响应频率不平均

循环扫描算法(C-SCAN)
操作系统(day14)-- 磁盘与IO_第8张图片
缺点也是只有达到最边上的磁道时才能改变磁头移动方向
因此改进了 C-LOOK调度算法(如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回

操作系统(day14)-- 磁盘与IO_第9张图片

减少磁盘延迟时间的方法

交替编号
若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小
(因为如果逻辑上相邻,物理也相邻,那么磁头在读取完一个扇区后,没办法立即处理下一个扇区,而磁盘又在继续的转)

磁盘地址结构的设计
采用(柱面号、盘面号、扇区号)
把柱面号放到高位上去,增大柱面号的大小范围,从而减少柱面号的变更(因为柱面号变更,磁头需要变更磁道,这种物理变更所花费的时间很长)
操作系统(day14)-- 磁盘与IO_第10张图片
错位命名
操作系统(day14)-- 磁盘与IO_第11张图片
操作系统(day14)-- 磁盘与IO_第12张图片

磁盘的管理

操作系统(day14)-- 磁盘与IO_第13张图片

你可能感兴趣的:(操作系统,操作系统)