1.一次磁盤讀/寫操作需要的時間
1.尋找時間
尋找時間(尋道時間)
Ts:在讀/寫數(shù)據(jù)前,將磁頭移動到指定磁道所花的時間。
①啟動磁頭臂
是需要時間的。假設(shè)耗時為s;
②移動磁頭
也是需要時間的。假設(shè)磁頭勻速移動,每跨越一個磁道耗時為m,總共需要跨越n條磁道。
則尋道時間 T s = s + m ? n Ts =s + m*n Ts=s+m?n
2.延遲時間
延遲時間 T R T_R TR?:通過旋轉(zhuǎn)磁盤,使磁頭定位到目標(biāo)扇區(qū)所需要的時間。
設(shè)磁盤轉(zhuǎn)速為r(單位:轉(zhuǎn)/秒,或轉(zhuǎn)/分),
則平均所需的延遲時間
: T R = ( 1 / 2 ) ? ( 1 / r ) = 1 2 r T_R=(1/2)*(1/r)= \frac{1}{2r} TR?=(1/2)?(1/r)=2r1?
1/r就是轉(zhuǎn)一圈需要的時間。找到目標(biāo)扇區(qū)平均需要轉(zhuǎn)半圈
,因此再乘以1/2。
3.傳輸時間
傳輸時間Tt:從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時間,假設(shè)磁盤轉(zhuǎn)速為r,此次讀/寫的字節(jié)數(shù)為b,每個磁道上的字節(jié)數(shù)為N。
則傳輸時間
T t = ( 1 / r ) ? ( b / N ) = b / ( r N ) Tt=(1/r)*(b/N) = b/(rN) Tt=(1/r)?(b/N)=b/(rN)
每個磁道要可存N字節(jié)的數(shù)據(jù),因此b字節(jié)的數(shù)據(jù)需要b/N個磁道才能存儲。
而讀/寫一個磁道所需的時間剛好又是轉(zhuǎn)一圈所需要的時間1/r.
因此總的存取時間 T a = 尋道時間 T S + 延遲時間 T R + 傳輸時間 T t T_a=尋道時間T_S+延遲時間T_R+傳輸時間T_t Ta?=尋道時間TS?+延遲時間TR?+傳輸時間Tt?
4.影響讀寫操作的因素
延遲時間和傳輸時間都與磁盤轉(zhuǎn)速相關(guān)
,且為線性相關(guān)。
而轉(zhuǎn)速
是硬件的固有屬性,因此操作系統(tǒng)也無法優(yōu)化延遲時間和傳輸時間。
但是操作系統(tǒng)的磁盤調(diào)度算法會直接影響尋道時間
。
2.磁盤調(diào)度算法
1.先來先服務(wù)(FCFS)
根據(jù)進程請求訪問磁盤的先后順序進行調(diào)度。
1.例題
2.優(yōu)缺點
優(yōu)點
:公平;如果請求訪問的磁道比較集中的話,算法性能還算過的去。缺點
:如果有大量進程競爭使用磁盤,請求訪問的磁道很分散,則FCFS在性能上很差,尋道時間長。
2.最短尋找時間優(yōu)先(SSTF)
SSTF算法會優(yōu)先處理的磁道是
與當(dāng)前磁頭最近
的磁道。
可以保證每次的尋道時間最短,但是并不能保證總的尋道時間最短。
(其實就是貪心算法
的思想,只是選擇眼前最優(yōu),但是總體未必最優(yōu)
)
1.例題
2.優(yōu)缺點
優(yōu)點
:性能較好,平均尋道時間短缺點
:可能產(chǎn)生“饑餓
”現(xiàn)象
3.饑餓的原因
本例中,如果在處理18號磁道的訪問請求時又來了一個38號磁道的訪問請求,處理38號磁道的訪問請求時又來了一個18號磁道的訪問請求。
如果有源源不斷的18號、38號磁道的訪問請求到來的話,150、160、184號磁道的訪問請求就永遠得不到滿足,從而產(chǎn)生“饑餓”現(xiàn)象。
3.掃描算法(SCAN)
SSTF算法會產(chǎn)生饑餓的原因在于:磁頭有可能在一個小區(qū)域內(nèi)來回來去地移動。
為了防止這個問題,可以規(guī)定,只有磁頭移動到最外側(cè)磁道的時候才能往內(nèi)移動,移動到最內(nèi)側(cè)磁道的時候才能往外移動
。這就是掃描算法(SCAN)的思想。
由于磁頭移動的方式很像電梯,因此也叫電梯算法
。
1.例題
2.優(yōu)缺點
優(yōu)點
:性能較好,平均尋道時間較短,不會產(chǎn)生饑餓現(xiàn)象。缺點
:①只有到達最邊上的磁道時才能改變
磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了。
②SCAN算法對于各個位置磁道的響應(yīng)頻率不平均
(如:假設(shè)此時磁頭正在往右移動,且剛處理過90號磁道,那么下次處理90號磁道的請求就需要等磁頭移動很長一段距離;而響應(yīng)了184號磁道的請求之后,很快又可以再次響應(yīng)184號磁道的請求了)
4.LOOK調(diào)度算法
掃描算法(SCAN)中,只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處埋了184號磁道的訪問請求之后就不需要再往右移動磁頭了。
LOOK調(diào)度算法就是為了解決這個問題,如果在磁頭移動方向上已經(jīng)沒有別的請求,就可以立即改變磁頭移動方向
。(邊移動邊觀察,因此叫LOOK)
1.例題
2.優(yōu)點
比起SCAN算法來,不需要每次都移動到最外側(cè)或最內(nèi)側(cè)才改變磁頭方向,使尋道時間進一步縮短。
5.循環(huán)掃描算法(C-SCAN)
SCAN算法對于各個位置磁道的響應(yīng)頻率不平均,而C-SCAN算法就是為了解決這個問題。
規(guī)定只有磁頭朝某個特定方向移動時才處理磁道訪問請求,而返回時直接快速移動至起始端而不處理任何請求
。
1.例題
2.優(yōu)缺點
優(yōu)點
:比起SCAN來,對于各個位置磁道的響應(yīng)頻率很平均。缺點
:只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了;并且,磁頭返回時其實只需要返回到18號磁道即可,不需要返回到最邊緣的磁道。
另外,比起SCAN算法來,平均尋道時間更長。
6.C-LOOK調(diào)度算法
C-SCAN算法的主要缺點是只有到達最邊上的磁道時才能改變磁頭移動方向,并且磁頭返回時不一定需要返回到最邊緣的磁道上。
C-LOOK算法就是為了解決這個問題。
如果磁頭移動的萬同上已繪沒有磁道訪問請求了,就可以立即讓磁頭返回,并且磁頭只需要返回到有磁道訪問請求的位置即可。
1.例題
文章來源:http://www.zghlxwxcb.cn/news/detail-717233.html
2.優(yōu)點
優(yōu)點:比起C-SCAN算法來,不需要每次都移動到最外側(cè)或最內(nèi)側(cè)才改變磁頭方向,使尋道時間進一步縮短。文章來源地址http://www.zghlxwxcb.cn/news/detail-717233.html
到了這里,關(guān)于磁盤調(diào)度算法之先來先服務(wù)(FCFS),最短尋找時間優(yōu)先(SSTF),掃描算法(SCAN,電梯算法),LOOK調(diào)度算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!