磁盘结构
磁盘结构
磁盘格式化
磁盘性能
磁盘性能指标
磁盘调度
磁盘I/O请求
每当一个进程需要进行I/O操作时,都会需要进行操作系统提供的系统调用。这个I/O请求包含如下信息:
1.这个操作是输入还是输出。
2.磁盘的地址(柱面号,磁头号,扇区号)。
3.内存的地址。无论是输入还是输出,都是和内存有关的。
4.扇区数量。
磁盘调度
对于多道程序系统,当有很多进程想要进行I/O请求时,会有一个专门的队列用来存放这些请求。当一个请求完毕,操作系统会从队列中选择下一个请求进行服务。
调度策略
- FCFS
总共滑过640个柱面
- 最短寻道时间优先
总共滑过236个柱面。效率虽然高,但是有可能会产生饥饿现象。因为有可能后面大量的请求都是集中在某个柱面附近。
- 扫描算法
当请求散落在各个柱面时,可以达到负载均衡。但是可以进一步优化:就像图中的例子,磁头一开始在53号柱面,当它往0号柱面扫描时,如果再原路返回,效率是会比较低下的,因为这段区域刚刚已经扫描过了,新的I/O请求在这一块区域的可能性不大。需要被扫描的扇区是在离53号柱面较远的一端。所以说,当磁头扫描到0号柱面时,应该把磁头立马调度到另一端,于是就有了新的算法:C-SCAN。
- C-SCAN 循环扫描算法
总是往一个方向去扫描,当磁头到了顶端时,立即跳回另一端接着扫描。 - LOOK
基于扫描算法的一个优化。也就是没有必要到达顶端再掉头。
各种算法的比较