磁盘访问时间计算
通常磁盤數據訪問時間計算分為三個部分(實際上是四個,但是啟動時間不加說明時忽略不計):
- 尋道時間,也稱尋找時間:磁頭移動到指定磁道需要的時間
- 延遲時間:磁頭定位到某一磁道的扇區所需要的時間
- 傳輸時間:從磁盤讀出或者寫入經歷的時間
值得強調的是,尋找磁道的時間是最大的影響因子,因此各種調度算法目的都是為了優化尋道的時間。盤面上密密麻麻的同心圓,找到需要的那個想來就很費時間,再加上訪問的數據不必在相鄰或相近磁道,因此如何降低總的尋道時間是我們關注的重點。
一旦找磁道的問題得到了解決,那么在道上尋找扇區也不會那么難了。最多是轉一圈就可以找到,最少是進到道上就是需要的扇區。因此平均是轉半圈的時間。
而讀取磁道上的數據耗時計算,我們通常是簡化了的,即讀一個磁道的數據耗時就是轉動一圈的時間。
實際上,為了達到這個效果,需要的策略是扇區的交錯編號。為什么呢,因為讀完一個扇區,就需要一點時間休息調整一下。機器也要緩沖,不能連續不斷工作。
連續編號是指,讀取的扇區是0,1,2,3…編號時它們不相鄰,隔著一段能夠修整好的時間,通常隔一個扇區即可。這樣讀取一圈磁道需要耗時并不是轉一圈的時間,而是兩圈。但是我們計算時還是簡化了,也不考慮背后的設計邏輯,簡單考慮為,可以連續工作。
背后的設計與妥協可以思考一下,計算本身還是依據簡化的模型來。
因此總的時間可以簡單記為:尋道+轉半圈尋找扇區+讀取。
看一個例子,這里需要注意的是轉速的單位。我們通常用r轉/s,但是不排除有些故意挖坑,設置為r s/轉。因此要留心。
已知某磁盤的平均轉速是r秒/轉,平均尋找時間是T秒,每個磁道可以存儲的字節數是N,現在向該磁盤寫入b字節的數據,采用隨機尋道的方法,每道的所有扇區組成一個簇,其平均訪問時間是(r+T)b/N.
推導:尋道時間已經告知為T, 現在需要讀出b字節,隨機讀寫,則需要的磁道數是b/N。
那么尋道的總時間是:bT/N.
因為一個道就作為一個簇,不用涉及尋找扇區時間,因此讀寫總時間就是:rb/N.
因此總時間就是(r+T)b/N。
總結
- 上一篇: TMAC------NBA的西西弗斯
- 下一篇: 有哪些性能优秀的无线蓝牙耳机值得推荐?便