一、磁盘的结构 --图
- 盘面(Platter):一个磁盘有多个盘面;
- 磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道;
- 扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小;
- 磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者将电信号转换为盘面的磁场(写);
- 制动手臂(Actuator arm):用于在磁道之间移动磁头;
- 主轴(Spindle):使整个盘面转动。
1、如何在磁盘中 读/写数据?
需要把 “磁头” 移动到想要读/写的扇区所在的磁道。通过磁头臂让磁盘转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作
2、磁盘的物理地址
3、磁盘的分类
二、磁盘调度算法 --图
1、先来先服务算法(First Come First Served)
根据进程请求磁盘的先后顺序进行调整
优点:公平,如果请求访问的磁道比较集中的话,算法性能还算过得去
缺点:如果有大量进程竞争使用磁盘,请求访问的磁盘很分散,则FCFS性能很差,寻道时间 长
2、最短寻找时间优先(SSTF, Shortest Seek Time First)
3、扫描算法
4、Look调度算法
三、减少磁盘延迟时间的方法
读写一个磁盘块的时间的影响因素有:
- 延迟时间(将目标扇区转到磁头下面所化的时间)
- 寻道时间(制动手臂移动,使得磁头移动到适当的磁道上)
- 传输时间 (读/写 数据花费的时间)
其中,寻道时间最长,因此磁盘调度的主要目标是使磁盘的平均寻道时间最短。
交替编号
做法:让编号相邻的扇区在物理上不相邻
原理:读取完一个扇区后需要一段时间处理才可以进行读入下一个扇区
错误命名
做法:让相邻的盘面的扇区编号“错位”
原理 :与 “交替编号的原理相同”。错位命名法可降低延迟时间
为什么 磁盘的物理地址是 (柱面号,盘面号,扇区号) 而不是(盘面号,柱面号,扇区号)?
答:读取连续地址的磁盘块时,采用前者的地址结构,可以减少磁头移动消耗的时间