1. 一次磁盘读写操作需要的时间
1.1寻道时间Ts
在读写数据前,将磁头移动到指定磁道所花的时间
- 启动磁头臂是需要时间的。假设耗时为s;
- 移动磁头也是需要时间的。假设磁头均匀移动,每跨越一个磁道耗时为m,总共跨越n条磁道。
则:
Ts = s + m * n
1.2旋转延迟时间Tr
通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设磁盘转速为r(单位:转/秒,或转/分),则平均所需的延迟时间为:
Tr = (1/2)*(1/r) = 1/2r
1/r
就是转一圈需要的时间- 找到目标平均需要转半圈,因此乘以
1/2
1.3传输时间Tt
从磁盘读出或向磁盘写入数据所经历的时间,假设磁盘转速为r,此次读写字节数为b,每个磁道上的字节数为N,则传输时间:
Tt = (1/r)*(b/N) = b/(rN)
- 每个磁道要存N字节的数据,因此b字节的数据需要b/N个磁道才能存储
- 读写一个磁道所需时间刚好是转一圈所需要的时间
1.4平均存取时间
Ta =Ts + 1/2r + b/(rN)
延迟时间和传输时间都与磁盘转速相关,且线性相关。而转速是硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间;但操作系统的磁盘调度算法直接影响寻道时间。
2. 先来先服务算法(FCFS)
- 按访问请求到达的先后顺序进行处理
- 优点:公平;如果请求访问的磁道比较集中,算法性能还算过得去
- 缺点:如果有大量进程竞争使用磁盘,请求分担,性能差,寻道时间长

3. 最短寻找时间优先(SSTF)
- 每次都优先响应距离磁头最近的磁道访问请求
- 贪心算法思想,能保证眼前最优,但无法保证总的寻道时间最短
- 缺点:可能导致饥饿

4. 扫描算法(电梯算法、SCAN)
- 只有磁头移动到最边缘的磁道时才可以改变磁头移动方向
- 缺点
- 只有到达最边上的磁道才能改变磁头移动方向
- 对各个位置磁道的响应频率不均匀

5. LOOK调度算法
SCAN算法的改进,只要在磁头移动方向上不在有请求,就立即改变磁头方向

6. 循环扫描算法(C-SCAN)
只有磁头朝某个方向移动时才会响应请求,移动到边缘后立即让磁头返回起点,返回途中不响应任何请求

7. C-LOOK调度算法
C-SCAN算法的改进,只要在磁头移动方向上不在有请求,就立即让磁头返回
