磁盘调度算法——FCFS、SSTF、SCAN、CSCAN

      为了减少对文件的访问时间,应采用一种最佳的磁盘调度算法,以使各进程对磁盘的平均访问时间最少。由于在访问磁盘时主要是寻道时间。因此,磁盘调度的目标是使磁盘的平均寻道时间最少。

一.先来先服务(FCFS)

1.方法

根据进程请求访问磁盘的先后顺序进行调度

2.优点

公平、简单、每个进程请求都能依次得到处理,不会出现某一进程的请求长期得不到满足。

3.缺点

平均寻道时间有点长,适用于磁盘I/O进程数目较少的场合

4.举例

FCFS调度算法
从100号磁道访问
被访问的下一个磁道号移动距离(磁道数)
55

                          45

583
3919
1821
9072
16070
15010
38112
184146
平均寻道长度:55.3

二.最短寻道时间优先(SSTF)

1.方法

其要求访问的磁道与当前磁头所在的磁道距离最近

2.缺点

优先级低的进程会发生“饥饿”现象。因为新进程请求到达,且其所要访问的磁道与磁头当前所在的磁道距离较近,必先优先满足。

3.举例

SSTF调度算法
从100号磁道访问
被访问的下一个磁道号移动距离(磁道数)
90

                          10 

5832
553
3916
381
1820
150132
16010
18424
平均寻道长度:27.5

三.扫描算法(电梯调度算法)(SCAN)

1.方法

1.首先自里向外访问,下一个对象是其欲访问的磁道既在当前磁道之外,又是距离最近的;

2.直至无更外的磁道需要访问时,才将磁臂换向为自外向里移动;

3.下一个访问的磁道在当前位置内为距离最近者;直至再无更里面的磁道要访问。

2.优点

不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑了磁头当前的移动方向;避免了出现“饥饿”现象。被广泛用于大、中、小型机器和网络中的磁盘调度。

3.缺点

当磁道刚从里向外移动而越过了某一磁道时,刚好一进程请求访问此磁道,这时此进程会等待,待磁头继续从里向外,然后从外向里扫描完处于外面的所有要访问的磁道后,才处理此进程,致使该进程的请求被大大推迟。

4.举例

SCAN调度算法
从100#号磁道开始,向磁道号增加方向访问
被访问的下一个磁道号移动距离(磁道数)
150

                          50 

16010
18424
9094
5832
553
3916
381
1820
平均寻道长度:27.8

四.循环扫描算法(CSCAN)

1.方法

1.首先自里向外访问,当磁头移到最外的磁道并访问后,磁头返回到最里的欲访问磁道,即将最小磁道号紧接着最大磁道号构成循环,继续循环扫描

2.直至无更外的磁道需要访问时,才将磁臂换向为自外向里移动;

3.下一个访问的磁道在当前位置内为距离最近者;直至再无更里面的磁道要访问。

2.优点

弥补扫描算法的不足

3.举例

SCAN调度算法
从100#号磁道开始,向磁道号增加方向访问
被访问的下一个磁道号移动距离(磁道数)
150

                          50 

16010
18424
18166
3820
391
5516
583
9032
平均寻道长度:35.8


 

### 回答1: FCFS:先来先服务,是一种调度算法,按照作业到达的顺序进行调度。 SSTF:最短寻道时间优先,是一种磁盘调度算法,按照磁头距离最近的磁道进行调度。 SCAN:扫描算法,是一种磁盘调度算法磁头按照一个方向移动,直到到达磁盘的一端,然后改变方向继续移动。 CSCAN:循环扫描算法,是一种磁盘调度算法磁头按照一个方向移动,直到到达磁盘的一端,然后回到磁盘的另一端继续移动。 ### 回答2: FCFS(先来先服务)是一种最基本的磁盘调度算法,它按照磁盘请求的先后顺序来安排磁盘访问,不会对请求的位置进行任何优化,也无法避免磁盘头的寻道移动,因此会造成长等待时间和低效率的情况。FCFS适用于只有一个程序在磁盘上读写且磁盘访问请求较少的情境。 SSTF(最短寻道时间优先)算法是一种更高效的磁盘调度算法,它通过计算相邻请求磁道与当前磁头的距离来决定下一次磁头移动方向,从而使得磁头磁盘上移动的距离最小。但是SSTF并不能避免饥饿问题,当存在大量服务请求时,它可能无法及时响应部分请求,从而使得磁头移动距离增加。 SCAN(扫描)算法也是一种磁盘调度算法,它是按磁头扫描方向进行调度的,当磁头到达一侧边界时,磁头会反向扫描,这样可以使得磁盘上的请求得到均匀的调度。但是SCAN算法也存在一定的缺点,当请求比较密集时,磁头来回移动的次数增加会影响磁盘的性能。 CSCAN(循环扫描)算法是SCAN算法的改进版,它能够有效地减少磁头磁盘上移动的距离。CSCAN算法也是按磁头扫描方向进行调度,当磁头到达一侧边界时,它会直接返回到另一端进行扫描,这样可以避免磁头反向移动。这种算法适用于请求比较密集的情境,能够合理调度磁盘读写请求,提高磁盘调度效率。 总之,不同的磁盘调度算法都有其适用的情境和优劣点,需要根据实际情况进行选择。 ### 回答3: FCFSSSTF、SCAN、C-SCAN是磁盘调度算法,用于指导磁盘按照何种顺序读写数据。 FCFS(First-Come-First-Serve)算法是最简单的磁盘调度算法,它按照请求的先后顺序进行读写。但是,FCFS算法存在低效问题,当磁盘读写密度大、请求并发高时,平均等待时间会变得十分长。 SSTF(Shortest-Seek-Time-First)算法是一种优化算法,它总是选择最短路径的读写请求SSTF能极大地减小平均寻道时间,提高磁盘读写效率。但是SSTF算法优先考虑寻找靠近当前磁道的读写请求,可能出现在磁盘的某个区域形成“饥饿”现象。 SCAN算法(又叫电梯算法)是按照一个方向前进处理磁盘读写请求,直到该方向无请求之后,再改变方向处理请求。SCAN算法的特点是避免了“饥饿”现象,其缺点在于在每次改变方向时需要退回至磁盘的最大磁道。 C-SCAN(Circular-SCAN)算法是SCAN算法的进一步改进。C-SCAN的处理方式是,在磁盘某一磁道没有读写请求时,将磁头移动到磁盘的最小或最大磁道,继续处理请求。C-SCAN算法适用于具有轴对称特点的磁盘系统,能够让磁头遍历磁盘并进行全部请求读写操作。 综上所述,FCFS适用于请求较少的情况,SSTF适用于需要高效处理寻道时间的情况,SCAN适用于请求密集且磁盘范围较大的情况,C-SCAN适用于在请求密集的情况下同时保证磁盘访问范围较小的情况。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值