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