磁盘臂调度算法
磁盤調(diào)度在多道程序設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)中,各個(gè)進(jìn)程可能會不斷提出不同的對磁盤進(jìn)行讀/寫操作的請求。由于有時(shí)候這些進(jìn)程的發(fā)送請求的速度比磁盤響應(yīng)的還要快,因此我們有必要為每個(gè)磁盤設(shè)備建立一個(gè)等待隊(duì)列,常用的磁盤調(diào)度算法有以下四種:
(https://baike.baidu.com/item/磁盤調(diào)度算法/3505728?fr=aladdin)
1. 先來先服務(wù)算法(FCFS)
根據(jù)進(jìn)程請求訪問磁盤的先后順序進(jìn)行調(diào)度,這是一種最簡單的調(diào)度算法。
該算法的優(yōu)點(diǎn)是具有公平性。
- 如果只有少量進(jìn)程需要訪問,且大部分請求都是訪問簇聚的文件扇區(qū),則有望達(dá)到較好的性能;
- 但如果有大量進(jìn)程競爭使用磁盤,那么這種算法在性能上往往接近于隨機(jī)調(diào)度。
所以,實(shí)際磁盤調(diào)度中考慮一些更為復(fù)雜的調(diào)度算法。
1.1舉例
假設(shè)磁盤訪問序列:98,183,37,122,14,124,65,67。
讀寫頭起始位置:53。
求:磁頭服務(wù)序列和磁頭移動總距離(道數(shù))。
服務(wù)序列:即為請求序列98,183,37,122,14,124,65,67
磁頭移動總距離:45+85+146+85+108+110+59+2=640
2. 最短尋道時(shí)間優(yōu)先算法(SSTF)
SSTF算法選擇調(diào)度處理的磁道是與當(dāng)前磁頭所在磁道距離最近的磁道,以使每次的尋找時(shí)間最短。
當(dāng)然,總是選擇最小尋找時(shí)間并不能保證平均尋找時(shí)間最小,但是能提供比FCFS算法更好的性能。這種算法會產(chǎn)生“饑餓”現(xiàn)象。
2.1 舉例
假設(shè)磁盤訪問序列:98,183,37,122,14,124,65,67。
讀寫頭起始位置:53。
求:磁頭服務(wù)序列和磁頭移動總距離(道數(shù))。
服務(wù)序列:65,67,37,14,98,122,124,183
磁頭移動總距離:12+2+30+23+84+24+2+59=236
3. 掃描算法(SCAN)(電梯算法)
SCAN算法在磁頭當(dāng)前移動方向上選擇與當(dāng)前磁頭所在磁道距離最近的請求作為下一次服務(wù)的對象。由于磁頭移動規(guī)律與電梯運(yùn)行相似,故又稱為電梯調(diào)度算法。
SCAN算法對最近掃描過的區(qū)域不公平,因此,它在訪問局部性方面不如FCFS算法和SSTF算法好。
假設(shè)磁頭朝 0 移動并且磁頭初始位置還是 53,磁頭接下來處理 37,然后 14。在柱面 0 時(shí),磁頭會反轉(zhuǎn),移向磁盤的另一端,并處理柱面 65、67、98、122、124、183(圖 3)上的請求。如果請求剛好在磁頭前方加入隊(duì)列,則它幾乎馬上就會得到服務(wù);如果請求剛好在磁頭后方加入隊(duì)列,則它必須等待,直到磁頭移到磁盤的另一端,反轉(zhuǎn)方向,并返回。
服務(wù)順序:37,14,65,67,98,122,124,183
磁頭移動總距離:45+23+14+65+2+31+24+2+59=265
4. 循環(huán)掃描算法(CSCAN)
在掃描算法的基礎(chǔ)上規(guī)定磁頭單向移動來提供服務(wù),回返時(shí)直接快速移動至起始端而不服務(wù)任何請求。
由于SCAN算法偏向于處理那些接近最里或最外的磁道的訪問請求,所以使用改進(jìn)型的C-SCAN算法來避免這個(gè)問題。
釆用SCAN算法和C-SCAN算法時(shí)磁頭總是嚴(yán)格地遵循從盤面的一端到另一端,顯然,在實(shí)際使用時(shí)還可以改進(jìn),即磁頭移動只需要到達(dá)最遠(yuǎn)端的一個(gè)請求即可返回,不需要到達(dá)磁盤端點(diǎn)。這種形式的SCAN算法和C-SCAN算法稱為LOOK和C-LOOK調(diào)度。這是因?yàn)樗鼈冊诔粋€(gè)給定方向移動前會查看是否有請求。注意,若無特別說明,也可以默認(rèn)SCAN算法和C-SCAN算法為LOOK和C-LOOK調(diào)度。
服務(wù)順序:65,67,98,122,124,183,199,0,14,23
磁頭移動總距離:12+2+31+24+2+59+16+199+14+23=382
5. 比較
| 公平、簡單 | 平均尋道距離大,效率不高 | 僅應(yīng)用在磁盤I/O較少的場合 |
| 性能比“先來先服務(wù)”好 | 能保證平均尋道時(shí)間最短,可能出現(xiàn)“饑餓”現(xiàn)象 | ? |
| 尋道性能較好,可避免“饑餓”現(xiàn)象;既考慮了距離,同時(shí)又考慮了方向。 | 不利于遠(yuǎn)離磁頭一端的訪問請求 | ? |
| 消除了對兩端磁道請求的不公平, | ? | ? |
?
?
?
總結(jié)
- 上一篇: 事务、事件(文件、时间、调度和执行)、复
- 下一篇: 题库练习1(单词长度、统计字符个数、)