计算机操作系统磁盘调度

来源:互联网 发布:nginx listen 编辑:程序博客网 时间:2024/05/18 01:18

磁盘调度算法

磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:

1.先来先服务算法(FCFS)

该算法是最简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。该算法仅适合用于请求磁盘I/O的进程数目较少的场合。

FCFS调度算法
FCFS调度算法

2.最短寻道时间优先算法(SSTF)

该算法要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种算法不能保证平均寻道时间最短。SSTF算法可能导致进程发生“饥饿”现象。

SSTF调度算法
SSTF调度算法

3.扫描算法(SCAN)

SCAN算法(电梯调度算法)考虑的是下一个访问的磁盘既在当前磁道之外又是距离最近。这样自里向外地访问,直至无更外的磁道需要访问时,才将磁臂换向自外向里移动。简单地说该算法既要考虑磁道距离也要考虑当前磁头移动方向。该算法既能获得较好的寻道性能,又能防止“饥饿”现象。但有可能造成进程延迟。

SCAN算法
SCAN调度算法

4.循环扫描算法(CSCAN)

CSCAN算法规定磁头单向移动,例如,当前只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里欲访问的磁道。亦即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。

CSCAN算法
CSCAN调度算法

0 0
原创粉丝点击