ディスクからデータを読み出したり書き込んだりする時間を計算します。
総時間=[シーク時間]+[サーチ時間]+[転送時間]
- シーク時間
- アームが対象データが存在するトラックのところ(A)まで移動する時間。
- サーチ時間
- ディスクが回転して,対象となるデータの先頭部分(B)が回転して,アームのところ(A)に到達するまでの時間。平均的にはディスクが半回転する時間になります。
ディスクの回転速度は,rpm[回転数/分]で与えられるのが通常です。たとえば,6000rpmならば,100[回転/秒]ですから,1回転に要する時間は0.01[秒/回転],すなわち,10ms(ミリ秒)になります。サーチ時間は半回転の時間ですから5msとなります。
- 転送時間
- データを読取る時間。読むためのCPUやメモリの時間は,ディスクの回転速度よりも高速ですから,データの先頭部分(B)がAに来てから,末尾部分(C)がAに来るまでの時間になります。
この時間を求めるには,対象データがトラックのどれだけを占めるかを知る必要があります。もし,1トラックの容量が92KBであり,対象データが18.4KBならば,18.4/92=0.2[回転]ですから,転送時間は0.2×10=2msになります。
- 問題
- 次の磁気ディスクで1KBを転送するのに要する時間を求めよ。
回転数 6,000rpm
トラックの記録密度 200セクタ/トラック
セクタ長 500バイト/セクタ
シーク時間 1ms
ただし,1KBは1000バイトとして計算せよ。
- 解答
- 6,000rpm[回転/分]→100[回転/秒]→10[ms/回転]
1トラック当たりの容量=500×200=100,000バイト
1回転(10ms)で100,000バイト→10,000[バイト/ms]
1KB(1000バイト)では0.1ms
転送に要する時間
= シーク時間 1ms
+ サーチ時間 5ms(←半回転)
+ データ転送時間 0.1ms
合計 6.1ms ・・・答