我正在為考試而學習,我遇到了以下問題:
一張磁碟有 20000 個磁軌,速度為 7200 RPM,尋道時間為 1 毫秒。該問題要求我計算讀取磁碟上所有磁軌所需的總時間。它給我們一個提示:磁軌的傳輸時間是指它在磁頭下轉一整圈所需的時間。
我嘗試先找到轉乘時間,但我不知道是否正確。我得到7200/3600。
我該如何解決這個問題?
答案1
我認為如果像考試問題那樣問的話,問題實際上並不是關於計算機或硬碟。它更多的是關於基礎知識。
- 如果您的轉速為 7200 RPM,則表示磁碟
(7200/60) = 120
每秒旋轉次數 - 磁碟每次旋轉一整圈,理論上您就可以讀取 1 個完整磁軌。這意味著閱讀 1 首曲目需要
(1/120)s
那麼,現在1ms尋道時間的問題:
- 如果您可以連續讀取,那麼您只需新增一次尋道時間。因此,您必須
(1/120)s
為每個軌道一次添加尋道時間。這似乎過於簡單化了。 - 更現實的是:假設問題意味著您需要額外的時間
1ms (1/1000)s
才能從一個曲目切換到下一個曲目,那麼您無法像僅旋轉所建議的那樣每秒讀取 120 個曲目。 - 考慮到旋轉和尋道時間,每個磁軌都需要
(1/1000 + 1/120)s
讀取。
筆記:
正如@sawdust 在評論中正確指出的那樣,這個答案使用了多種簡化。這是因為問題中沒有提供更多信息,並且我嘗試使用基礎知識。如果問題更複雜(或處理實際硬件,而不是考試問題),則必須考慮以下因素:
- 磁碟可能有多個(例如
N
)磁碟片,因此 20000 個磁軌可以分佈在各個N
磁碟片上。一般來說,盤片兩面都可以使用。因此,驅動器中每個讀/寫磁頭的 20000 個磁軌2N
不是 20000 個柱面,而是20000/(2N)
柱面。這可能能夠2N
同時讀取曲目。然後,閱讀2N
曲目需要(1/120)s
. - 尋道時間不應固定為
1ms
。它通常是以下組合磁頭尋道時間,磁頭移動到正確的柱面(根據您在驅動器上的位置,該柱面可能並不總是恆定的),加旋轉延遲,這意味著磁碟本身必須旋轉,直到磁頭位於正確的磁區上方。平均而言,旋轉延遲可能會簡化為磁碟完成一整圈所需時間的一半。因此,(1/240)s
每個新圓柱體的旋轉延遲可能會存在。 - 當遇到正確讀取資料的問題時,真實的驅動器可能會出現某些延遲問題。當區塊損壞或難以讀取且磁碟機嘗試讀取具有不同磁頭定位和參數的磁區以增加檢索任何資料的機會時,就會發生這種情況。有時甚至可以在新的零售驅動器上觀察到由此產生的延遲,並且在規劃依賴於及時磁碟讀取的實際系統時必須考慮到這一點。因此,您不能總是假設磁軌在旋轉一圈後就會完全讀取。這個問題可能會變得非常嚴重,因此更多的企業驅動器提供 TLER 等功能來限制重試讀取扇區的時間。
[1]:維基百科:汽缸蓋扇區
[2]:Western Digital:桌面版(WD Blue、WD Green 和 WD Black)和 RAID(企業)版驅動器之間的區別