第五章 输入输出系统 5.8 磁盘存储器的性能和调度
一、磁盘性能简述
1.数据组织和格式
- 物理地址形式:磁道号(柱面号)——磁头号——扇区
- 信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头
- 磁道从外缘,以“0”开始编号,往里面递增。所有盘面中处于同一磁道号上的所有磁道组成一个柱面
- 每个扇区大小为600字节(数据512字节),内层外层磁道的磁密度不同
- 可随机访问某块数据,但不能定位到某个字节
eg.一个10GB容量的磁盘,有8个双面可存储盘片,共16个盘面,每面有16383个磁道(柱面),63个扇区。

2.磁盘的访问过程
- 寻道 :磁头移动定位到指定磁道
- 旋转延迟:等待指定扇区从磁头下旋转经过
- 数据传输:数据在磁盘与内存之间的实际传输
3.磁盘访问时间:Ta=Ts+1/2r+b/rN
- 寻道时间:TS=m*n+s
m:常量,与磁盘驱动器速度有关,n:磁道数,s:磁臂启动时间。
对一般的磁盘, 其寻道时间将随寻道距离的增加而增大, 大体上是5-30 ms。
- 旋转延迟时间:指定扇区旋转到磁头下所需时间。 设每秒r转,则Tr=1/2r(均值) 对于7200转/分,平均延迟时间为4.2ms
- 数据传输时间:Tt=b/rN
b:读写字节数,r:磁盘每秒钟的转数,N:每道上的字节数

二、磁盘调度算法(先来先服务FCFS,最短寻道时间优先SSTF,扫描算法SCAN,循环扫描算法CSCAN)
1.先来先服务FCFS
- 按访问请求到达的先后次序服务
- 仅适用于请求磁盘I/O的进程数目较少的场合

2.最短寻道时间优先SSTF
- 优先选择距当前磁头最近的访问请求进行服务
- 优点:改善了磁盘平均服务时间
- 缺点:造成某些访问请求长期等待得不到服务,“饥饿”现象
3.扫描算法(电梯算法)SCAN
- 当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;
- 否则改变移动方向,并为经过的访问请求服务,如此反复

4.循环扫描算法CSCAN
- 总是向一个方向移动
- 移动臂到达最后个一个柱面后,立即带动读写磁头快速返回到最里的欲访问磁道
- 返回时不为任何的等待访问者服务
- SSTF、SCAN及CSCAN几种调度算法中, 都可能出现磁臂停留在某处不动的情况——磁臂粘着”。例如,有一个或几个进程对某一磁道有较高的访问频率, 即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。在高密度磁盘上容易出现此情况。
