操作系统之磁盘调度算法

磁盘调度是在多道程序设计的计算机系统中,系统运行过程中各个进程可能会不断地提出不同的磁盘读写请求。由于提出的请求速度通常比磁盘的响应速度要快,所以针对不同的请求对磁盘进行调度安排很有必要,故磁盘调度算法被提出,常用的磁盘调度算法有一下几种:

  • 先来先服务算法(FCFS)
  • 最短寻道时间优先算法(SSTF)
  • 扫描算法(SCAN)
  • 循环扫描算法(CSCAN)

1. 先来先服务算法:

该算法是一种比较简单的磁盘调度算法。它依据各个进程发出磁盘读写请求的先后顺序进行调度安排。该算法的优点是:公平简单,且每个进程都能得到处理,不会出现某一进程请求长期得不到满足的情况。缺点是:该算法未对寻道进行优化,针对磁盘访问请求较多的情况下,此算法会降低设备的吞吐量,导致平均寻道时间可能较长。
2. 最短寻道时间优先算法:

该算法选择的调度方案为,每次挑选请求磁道距离当前磁头所在磁道距离最近的请求响应,以达到,每次的寻道时间最短,该算法可以得到较好的系统吞吐量,但是不能保证平均寻道时间最短。缺点是:对于用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。(选取距离当前磁道最近的请求磁道)

3.扫描算法(电梯调度算法)

扫描算法不近考虑到欲访问的磁道与当前磁道的距离,更考虑的是磁头的当前移动方向。同比(最短寻道算法),考虑了当前磁头的移动方向,自里向外地访问,直到再无更外的磁道需要访问,才将磁臂换向,自外向里进行移动。优点:避免了饥饿现象的出现,由于这种算法中磁头移动的规律颇似电梯的运行,因此又称为电梯调度算法。它克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点。

4.循环扫描算法

循环扫描算法是对扫描算法的改进。如果对磁道访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求比较少,由于这些磁道刚被处理,而磁盘的另一端的请求密度比较高,且这些访问请求等待的时间也会比较长。因此,循环扫描规定进行单向循环,即从里自外,当磁头位于最外层磁道时,访问结束后,立即返回最里层磁道。

猜你喜欢

转载自blog.csdn.net/qq_33546256/article/details/81201389
今日推荐