磁盤調度算法

前言

??上文介紹了磁盤的結構汞窗,本文介紹磁盤的調度算法相關的內容硕糊。
??本文內容

1 一次磁盤讀/寫操作需要的時間

??尋找時間(尋道時間)Ts:在讀/寫數(shù)據(jù)前院水,需要將磁頭移動到指定磁道所花費的時間性昭。
??尋道時間分兩步:

(1) 啟動磁頭臂消耗的時間:s土全。
(2) 移動磁頭消耗的時間:假設磁頭勻速移動谱仪,每跨越一個磁道消耗時間為m掸读,共跨越n條磁道串远。

??則尋道時間 Ts = s + m * n。

??磁頭移動到指定的磁道儿惫,但是不一定正好在所需要讀/寫的扇區(qū)澡罚,所以需要通過磁盤旋轉使磁頭定位到目標扇區(qū)。


??延遲時間TR:通過旋轉磁盤肾请,使磁頭定位到目標扇區(qū)所需要的時間留搔。設磁盤轉速為r(單位:轉/秒,或轉/分)筐喳,則平均所需延遲時間TR = (1/2)*(1/r) = 1/2r催式。

1/r就是轉一圈所需的時間函喉。找到目標扇區(qū)平均需要轉半圈,因此再乘以1/2荣月。

??傳輸時間TR:從磁盤讀出或向磁盤中寫入數(shù)據(jù)所經歷的時間管呵,假設磁盤轉速為r,此次讀/寫的字節(jié)數(shù)為b哺窄,每個磁道上的字節(jié)數(shù)為N捐下,則傳輸時間TR = (b/N) * (1/r) = b/(rN)。

每個磁道可存N字節(jié)數(shù)據(jù)萌业,因此b字節(jié)數(shù)據(jù)需要b/N個磁道才能存儲坷襟。而讀/寫一個磁道所需的時間剛好是轉一圈的時間1/r。

??總的平均時間Ta = Ts + 1/2r + b/(rN)生年,由于延遲時間和傳輸時間都是與磁盤轉速有關的婴程,且是線性相關。而轉速又是磁盤的固有屬性抱婉,因此無法通過操作系統(tǒng)優(yōu)化延遲時間和傳輸時間档叔。所以只能優(yōu)化尋找時間。

2 磁盤調度算法

??2.1 先來先服務算法(FCFS)

??算法思想:根據(jù)進程請求訪問磁盤的先后順序進行調度蒸绩。
??假設磁頭的初始位置是100號磁道衙四,有多個進程先后陸續(xù)地請求訪問55、58患亿、39传蹈、18、90步藕、160惦界、150、38漱抓、184號磁道表锻。
??按照先來先服務算法規(guī)則恕齐,按照請求到達的順序乞娄,磁頭需要一次移動到55、58显歧、39仪或、18、90士骤、160范删、150、38拷肌、184號磁道到旦。

??磁頭共移動了 45 + 3 + 19 + 21 + 72 + 70 + 10 + 112 + 146 = 498個磁道旨巷。響應一個請求平均需要移動498 / 9 = 55.3個磁道(平均尋找長度)。
??優(yōu)點:公平添忘;如果請求訪問的磁道比較集中的話采呐,算法性能還算可以
??缺點:如果大量進程競爭使用磁盤搁骑,請求訪問的磁道很分散斧吐,F(xiàn)CFS在性能上很差,尋道時間長仲器。

??2.2 最短尋找時間優(yōu)先(SSTF)

??算法思想:優(yōu)先處理的磁道是與當前磁頭最近的磁道煤率。可以保證每次尋道時間最短乏冀,但是不能保證總的尋道時間最短蝶糯。(其實是貪心算法的思想,只是選擇眼前最優(yōu)辆沦,但是總體未必最優(yōu))裳涛。

??假設磁頭的初始位置是100號磁道,有多個進程先后陸續(xù)地請求訪問55众辨、58端三、39、18鹃彻、90郊闯、160、150蛛株、38团赁、184號磁道。


??磁頭總共移動了(100 -18)+ (184 -18) = 248個磁道谨履。響應一個請求平均需要移動248 / 9 = 27.5個磁道(平均尋找長度)欢摄。
??缺點:可能產生饑餓現(xiàn)象
??本例中笋粟,如果在處理18號磁道的訪問請求時又來了一個38號磁道的訪問請求怀挠,處理38號磁道的訪問請求又來了一個18號磁道訪問請求。如果有源源不斷的18號害捕、38號磁道訪問請求绿淋,那么150、160尝盼、184號磁道請求的訪問就永遠得不到滿足吞滞,從而產生饑餓現(xiàn)象。這里產生饑餓的原因是磁頭在一小塊區(qū)域來回移動盾沫。

??2.3 掃描算法(SCAN)

??SSTF算法會產生饑餓的原因在于:磁頭有可能再一個小區(qū)域內來回得移動裁赠。為了防止這個問題殿漠,可以規(guī)定:磁頭只有移動到請求最外側磁道或最內側磁道才可以反向移動,如果在磁頭移動的方向上已經沒有請求佩捞,就可以立即改變磁頭移動凸舵,不必移動到最內/外側的磁道。這就是掃描算法的思想失尖。由于磁頭移動的方式很像電梯啊奄,因此也叫電梯算法

??假設某磁盤的磁道為0~200號掀潮,磁頭的初始位置是100號磁道菇夸,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續(xù)的訪問55仪吧、58庄新、39、18薯鼠、90择诈、160、150出皇、38羞芍、184號磁道。


??磁頭共移動了(184 - 100)+ (184 -18) = 250個磁道郊艘。響應一個請求平均需要移動 250 / 9 = 27.5個磁道(平均尋找長度)荷科。

??優(yōu)點:性能較好,尋道時間較短纱注,不會產生饑餓現(xiàn)象畏浆。
??缺點:SCAN算法對于各個位置磁道的響應頻率不平均。(假設此時磁頭正在往右移動狞贱,且剛處理過90號磁道刻获,那么下次處理90號磁道的請求就需要等待低頭移動很長一段距離;而響應了184號磁道的請求之后瞎嬉,很快又可以再次響應184號磁道請求了蝎毡。)

??2.4 循環(huán)掃描算法(C-SCAN)

??SCAN算法對各個位置磁道的響應頻率不平均,而C-SCAN算法就是為了解決這個問題佑颇。規(guī)定只有磁頭朝某個特定方向移動時才處理磁道訪問請求顶掉,而返回時直接快速移動至最靠邊緣的并且需要訪問的磁道上而不處理任何請求草娜。
??通俗理解就是SCAN算在改變磁頭方向時不處理磁盤訪問請求而是直接移動到另一端最靠邊的磁盤訪問請求的磁道上挑胸。

??假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道宰闰,且此時磁頭正在往磁道號增大的方向移動茬贵,有多個進程先后陸續(xù)的訪問55簿透、58、39解藻、18老充、90、160螟左、150啡浊、38、184號磁道胶背。



??磁頭共移動了(184 -100)+ (184 - 18)+(90 - 18)=322個磁道巷嚣。響應一個請求平均需要移動322 / 9 = 35.8個磁道(平均尋找長度)。

??優(yōu)點:相比于SCAN算法钳吟,對于各個位置磁道響應頻率很平均廷粒。
??缺點:相比于SCAN算法,平均尋道時間更長红且。

3 小結

??本文完

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末坝茎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暇番,更是在濱河造成了極大的恐慌嗤放,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁酬,死亡現(xiàn)場離奇詭異斤吐,居然都是意外死亡,警方通過查閱死者的電腦和手機厨喂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門和措,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜕煌,你說我怎么就攤上這事派阱。” “怎么了斜纪?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵贫母,是天一觀的道長。 經常有香客問我盒刚,道長腺劣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任因块,我火速辦了婚禮橘原,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己趾断,他們只是感情好拒名,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芋酌,像睡著了一般增显。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脐帝,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天同云,我揣著相機與錄音,去河邊找鬼堵腹。 笑死梢杭,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秸滴。 我是一名探鬼主播武契,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荡含!你這毒婦竟也來了咒唆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤释液,失蹤者是張志新(化名)和其女友劉穎全释,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體误债,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡浸船,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了寝蹈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片李命。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖箫老,靈堂內的尸體忽然破棺而出封字,到底是詐尸還是另有隱情,我是刑警寧澤耍鬓,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布阔籽,位于F島的核電站,受9級特大地震影響牲蜀,放射性物質發(fā)生泄漏笆制。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一涣达、第九天 我趴在偏房一處隱蔽的房頂上張望在辆。 院中可真熱鬧证薇,春花似錦、人聲如沸开缎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕删。三九已至,卻和暖如春疗认,著一層夾襖步出監(jiān)牢的瞬間完残,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工横漏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谨设,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓缎浇,卻偏偏與公主長得像扎拣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子素跺,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351