磁碟的驅動排程如何實現公平 高效的訪盤請求?

2021-07-10 03:02:46 字數 2233 閱讀 1829

磁碟是一種高速旋轉的儲存裝置。磁頭沿著磁碟片直徑的方向移動,同時對指定磁軌上的扇面中的資料進行讀寫操作。當多個訪盤請求在等待時,系統採用一定的策略,對這些請求的服務順序進行調整安排,使尋道時間和延遲時間都盡可能小的那個訪問請求可以優先得到服務,並降低若干個訪問者的總訪問時間,增加磁碟單位時間內的操作次數。達到降低平均磁碟服務時間的目的,從而實現公平、高效的訪盤請求。

一次訪盤時間=尋道時間+旋轉延遲時間+傳輸時間;

磁碟驅動排程由「移臂排程」和「旋轉排程」兩部分組成:

移臂排程目的是盡可能減少尋找磁軌時間;

旋轉排程目的是盡可能減少尋找扇區時間。

按照訪問請求的次序為各個程序服務。

優點:簡單,公平;

缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反覆移動,增加了服務時間,對機械也不利。

優先選擇距離當前磁頭最近的訪問請求進行服務,主要考慮尋道優先。

特點:改善了平均服務時間;

缺點:經常改變磁臂的移動方向,花費時間多又影響機械部件;還會導致「飢餓」現象,即較遠距離的孤立訪問可能很長時間不能獲得訪問磁碟的機會。

它克服了sstf演算法的缺點,考慮了距離和方向。

特點:較好地解決了尋道效能,又防止了「飢餓」現象。

缺點:會出現剛訪問過的柱面再次提出請求時,會等待較長的時間。

在scan的基礎上改進的。磁臂改為單向移動,由外向裡。

特點:較好地解決了尋道效能,又防止了「飢餓」現象。不會讓剛訪問過的磁軌再次提出訪問請求時等待較長的時間。

缺點:會出現磁臂的「黏著」現象。

根據延遲時間來決定執行次序的排程成為「旋轉排程」。

若磁頭的當前位置在100磁軌上,磁頭正向磁頭號增加的方向移動。現有一磁碟讀寫請求佇列:23、376、205、132、19、61、190、398、29、4、18、40. 採用fcfs、sstf、scan演算法,計算平局尋道長度各是多少。

①fcfs;

磁頭移動磁軌總數為:

77+353+171+73+113+42+129+208+369+25+14+22=1596

平均移動磁軌數為:

1596/12=133

②sstf;

磁頭移動磁軌總數為:

32+58+15+144+21+11+6+4+1+14+372+22=700

平均移動磁軌數為:

700/12=58.3

③scsn;

磁頭移動磁軌總數為:

32+58+171+22+337+21+11+6+4+1+14=692

平均移動磁軌數為:

692/12=57.7

磁碟的驅動排程

一 磁碟的物理結構 二.磁碟的型別 對於磁碟,可以從不同的角度進行分類。最常見的有 將磁碟分成硬碟和軟盤 單片盤和多片盤 固定頭磁碟和活動頭 移動頭 磁碟等。下面僅對固定頭磁碟和移動頭磁碟做些介紹。1 固定頭磁碟。2 移動頭磁碟。柱面號,磁軌號,扇區號。假定以l,m,n 分別表示盤組的柱面數,盤面數...

驅動api 如何真正實現由文件驅動的API設計?

如果單從api文件出發,由於資訊量不足,通常很難了解它具體想實現的功能,正因為有這種假設的存在,使得經常在開發之後才會想起對文件進行完善。但這種習慣對於任何開發人員而言,都不是乙個好事情,在乙個專案中他們會被分配完成不同的任務,不管是什麼任務,必須要準確理解每個功能後,才能找到合適的方法完成工作,而...

如何用高效的方式實現遊戲世界中的擊中效果

模擬乙個飛彈或者炮彈擊中乙個標目,是大部分遊戲經常要做得的一件事,通常我們會使用遊戲引擎中自帶的碰撞檢測事件來實現這個效果,或者是判斷距離,但這兩者都不是最優的方法,下面我會介紹一種我目前使用的方法。這裡著重以unity舉例來說,但是不限制於unity引擎,也就是適用於任何一款遊戲引擎。1.理由 碰...