磁盘的性能与调度算法

磁盘性能

首先与格式有关

盘片、面、磁道、扇区

为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。

磁盘”格式化”的过程就是按规定的格式规划盘块。

与速度有关

磁盘访问时间主要包括:寻道时间(到磁道)、旋转延迟(到扇区)、传输时间。

磁盘调度的目标:对所有请求访问磁盘的进程进行合理调度,使平均寻道时间最少,使对磁盘的平均访问时间最小。

调度算法

1、FCFS 先来先服务

磁盘的性能与调度算法_第1张图片

多个进程的磁盘I/O请求构成一个随机分布的请求队列,磁盘I/O执行顺序按磁盘请求的先后顺序。

2、SSTF(ShortestSeekTimeFirst )最短寻道时间优先

磁盘的性能与调度算法_第2张图片

选择从当前位置出发移动最少的磁盘I/O请求,使每次磁头移动时间最少。不一定是最短平均柱面定位时间

可能会有进程处于饥饿状态。  改进→考虑距离的同时,更优先考虑方向。引进SCAN算法。

3、SCAN 磁盘电梯调度算法

规定磁头移动方向:自里向外,再自外向里移动。后续请求,哪个在规定方向上距离最近,就先执行哪个。

如当前为100,后续要求558695180165,105。

调度过程    先由内向外:选最近的105执行,再判断剩余的,选165180。再由外向内:95,86,55

存在“错过”问题:反方向较近的55号磁道请求的进程相对“饥饿”很久。改进→将SCAN规定的移动方向改为“单向移动”。引进CSCAN算法。

4、CSCAN

由里向外后,再由里向外。

前述算法存在“磁臂粘着”——磁头静止在一个磁道上,导致其它进程无法及时进行磁盘I/O。(因:高密度盘,进程的读写可能集中在某一磁道)。改进→N-Step-SCAN算法。

5、N-Step-SCAN

将磁盘请求队列分成长为N 的子队列 ,按FCFS选择子队列,队列内又按SCAN算法。

N=1时,就是FCFS,N很大时就是SCAN。

6、F-SCAN

N-Step-SCAN的简化。

请求队列只分为两个子队列,当前一个队列,按SCAN算法执行,扫描期间新生成的组成一个队列,等待被扫描。

 

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