前言:
当前看官们对“磁盘驱动程序在磁盘请求生成后原则是”大致比较注意,咱们都需要剖析一些“磁盘驱动程序在磁盘请求生成后原则是”的相关知识。那么小编同时在网络上汇集了一些关于“磁盘驱动程序在磁盘请求生成后原则是””的相关知识,希望姐妹们能喜欢,姐妹们一起来学习一下吧!为什么需要磁盘调度算法?
磁盘调度
磁盘调度算法是为了提高磁盘的访问性能,一般是通过优化磁盘的访问请求顺序来做的。其中寻道是磁盘较为耗时的部分,因此如果请求顺序得当,可以节省一些不必要的寻道时间。
寻道算法有几种?
先来先服务算法最短寻道时间优先算法扫描算法循环扫描算法LOOK与C-LOOK算法
假设磁头的初始位置在53磁道。
先来先服务算法
如果请求的顺序如下:
98,183,37,122,14,124,65,67
那么磁盘的写入顺序如下图:
大量应用进程竞争使用磁道,访问的磁道一般比较分散,这种算法性能低下,寻道时间过长。
最短寻道算法
该算法优先选择从当前磁头位置所需寻道时间最短的请求,
如果请求的顺序如下:
98,183,37,122,14,124,65,67
那么磁盘的写入顺序为:65,67,37,14,98,122,如下图:
该算法相对于先来先服务寻道时间会减少很多,但是会造成饥饿现象,因为我们的磁盘的请求随时都可能产生,假设后续的请求都是小于183磁道,那么183磁道的请求永远不会被响应,于是就产生了饥饿现象。
扫描算法
扫描算法(电梯算法)规定:磁头在一个方向上移动,访问所有未完成的请求,直到磁头到达该方向上的最后的磁道才调换方向。
如果请求的顺序如下:
98,183,37,122,14,124,65,67
假设前进的方向是磁道号减少的方向,那么处理请求的顺序是37,14,0,65,67,98,122,124,183,如下图:
扫描算法虽然不会产生饥饿,但是对于中间部分的磁道来说响应较快,边缘部分响应较慢。
循环扫描算法
循环扫描算法规定:磁头只能朝某个方向移动,返回时直接复位磁头(这个很快),并且返回过程中不处理任何请求。
如果请求的顺序如下:
98,183,37,122,14,124,65,67
假设磁头先朝磁道增加的方向移动,处理请求顺序则是:65,67,98,122,124,183,199,0,14,37,如下图:
循环扫描算法相比于扫描算法,每个磁道的响应频率比较平均。
LOOK与C-LOOK算法
LOOK算法和C-LOOK算法分别是对扫描算法和循环扫描算法的优化,优化的思路就是:磁头在移动到最远的请求位置,然后立刻向反方向移动。
LOOK算法反向移动途中会响应请求C-LOOK反向移动途中不响应请求