応用情報技術者 2012年 秋期 午前2 問12
問題文
毎分6,000回転、平均位置決め時間が 20ミリ秒、1 トラック当たりの記憶容量が 20kバイトの磁気ディスク装置がある。1ブロック4kバイトのデータを1ブロック転送するのに要する平均アクセス時間は何ミリ秒か。ここで、磁気ディスクコントローラのオーバヘッドは無視できるものとする。
選択肢
ア:20
イ:22
ウ:27(正解)
エ:32
🔒 解説は解答すると表示されます
磁気ディスク平均アクセス時間【午前2解説】
正解の理由
磁気ディスクの平均アクセス時間は、位置決め(シーク)時間、平均回転遅延(平均的に半回転を待つ時間)、およびデータ転送時間の合計で求められます。問題文で「磁気ディスクコントローラのオーバヘッドは無視できる」とあるためコントローラの固定的な遅延は考慮しませんが、転送に要する時間はディスクの回転特性とトラック当たり容量から必ず計算します。与えられた値を使うと、
- 平均位置決め時間 = 20 ms
- 回転数 6000 rpm ⇒ 1回転 = 60 / 6000 = 0.01 s = 10 ms ⇒ 平均回転遅延 = 10 / 2 = 5 ms
- 1トラック = 20kB、1ブロック = 4kB ⇒ 1トラックに 5 ブロック。1ブロック転送に要する時間は 1回転のうちの 4k/20k = 0.2 相当 = 10 ms × 0.2 = 2 ms
これらを合計すると となり、選択肢のうち ウ に該当します。
解法ステップ
- 回転周期を求める: →
- 平均回転遅延は半回転:
- 転送時間はブロックがトラックの何分の一かで算出:
- 合計(コントローラオーバヘッドは無視):
式でまとめると、
選択肢別の誤答解説
- ア: 20
20 ms は位置決め時間のみで、回転遅延と転送時間を無視しているため不足。問題は「1ブロック転送するのに要する平均アクセス時間」を問うており、回転遅延と転送時間も含める必要があります。 - イ: 22
22 ms は位置決め 20 ms に平均回転遅延 2 ms(もしくは一部の誤りによる計算)を足した値で、回転遅延を実際の半回転の 5 ms とせず誤った値を用いているため不正確です。 - ウ: 27
上述の通り、シーク 20 ms + 平均回転遅延 5 ms + 転送時間 2 ms = 27 ms で正しい合計です。 - エ: 32
32 ms は必要以上に大きな値(例えばフル回転の遅延や余分なオーバヘッドを加えた場合)で、与えられた条件では過大見積りです。
よくある誤解
- 転送時間は無視してよい:問題文が無視できるとするのは「磁気ディスクコントローラのオーバヘッド」です。転送時間はディスクの回転とデータ量に依存するため、必ず計算する必要があります。転送時間を省くと誤答になります。
- 平均回転遅延をフル回転で計算してしまう:平均回転遅延は期待値として「半回転(T/2)」を使います。フル回転 T を使うと大きく過大評価します。
- トラック当たり容量の扱いミス:トラック容量を正しくブロック数に直さない(例:20k/4k = 5)と転送時間が誤ります。
補足コラム
- 実務上は平均アクセス時間以外にも、ランダムアクセスのばらつき(最悪時シーク長やキューイング)、キャッシュの有無、ディスクのゾーン記録(外周と内周で転送速度差)などが性能に影響します。試験では与えられた条件に従って期待値を計算することが求められます。
- ブロックがトラックをまたぐ場合やブロックがトラックいっぱい(または複数トラック)を占める場合は転送時間の計算式が変わります。今回のようにブロックがトラックの一部であれば比率で計算できます。
FAQ
Q1: 「磁気ディスクコントローラのオーバヘッドを無視できる」とは何を意味しますか?
A1: それは、コントローラ固有の固定的な処理遅延(コマンド処理やソフトウェアオーバヘッドなど)が問題設定上無視できるほど小さいという意味です。コントローラ遅延をゼロ扱いしてよい、というだけであり、回転による待ち時間や実データの転送に要する時間は別に計算します。
A1: それは、コントローラ固有の固定的な処理遅延(コマンド処理やソフトウェアオーバヘッドなど)が問題設定上無視できるほど小さいという意味です。コントローラ遅延をゼロ扱いしてよい、というだけであり、回転による待ち時間や実データの転送に要する時間は別に計算します。
Q2: なぜ回転遅延は半回転(T/2)を使うのですか?
A2: ランダムに到達する位置(セクタ)までの待ち時間の期待値は回転周期の中央値であり、均一分布なら平均は半回転になります。したがって平均回転遅延 = 1/2 × 1回転時間です。
A2: ランダムに到達する位置(セクタ)までの待ち時間の期待値は回転周期の中央値であり、均一分布なら平均は半回転になります。したがって平均回転遅延 = 1/2 × 1回転時間です。
Q3: 転送時間を求めるときにトラック当たり容量を使う理由は?
A3: 同一トラック上に並んだデータは回転によって順次ヘッドの下を通過します。1回転でトラック全体のデータが転送されるので、1ブロックはトラック容量に占める割合に応じた回転時間分だけ転送時間がかかるためです。
A3: 同一トラック上に並んだデータは回転によって順次ヘッドの下を通過します。1回転でトラック全体のデータが転送されるので、1ブロックはトラック容量に占める割合に応じた回転時間分だけ転送時間がかかるためです。
関連キーワード: 回転遅延、シークタイム、転送時間、トラック容量、平均アクセス時間

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

