基本情報技術者 2014年 春期 午前(科目A) 問12
問題文
磁気ディスク装置の性能に関する記述のうち、適切なものはどれか。
選択肢
ア:アクセス時間は、回転速度を上げるか位置決め時間を短縮すると短くなる。(正解)
イ:アクセス時間は、処理装置の前処理時間、データ転送後の後処理時間も含む。
ウ:記憶容量は、トラック当たりの記憶容量と1シリンダ当たりのトラック数だけで決まる。
エ:データ転送速度は、回転速度と回転待ち時間で決まる。
🔒 解説は解答すると表示されます
磁気ディスクの性能要素【午前解説】
正解の理由
磁気ディスクの「アクセス時間」は、ディスク内部で目的トラックへのヘッド位置決め(シーク時間)と、目的扇区が回転してヘッド下に来るまでの回転待ち時間(平均回転遅延)およびデータの転送時間で構成されます。選択肢の中でこれを正しく表しているのが ア です。回転数を上げれば平均回転遅延は短くなり、位置決め時間(シーク時間)を短くすればシーク成分が小さくなるため、アクセス時間全体が短くなります。
一方で、アクセス時間はCPUや周辺機器の前後処理時間を含むものではなく(イは誤り)、記憶容量はトラック当たり容量と「1シリンダ当たりのトラック数」という表現だけでは不十分かつ誤解を招きます(ウは誤り)。またデータ転送速度は回転速度とトラックのデータ密度などから決まり、回転待ち時間(回転遅延)はアクセス時間の一部であり、単に「回転速度と回転待ち時間で決まる」とだけ述べるのは不正確です(エは誤り)。
解法ステップ
- 「アクセス時間」の定義を確認する(シーク+回転遅延+転送時間)。
- 各選択肢が上の構成要素を正しく反映しているかを判定する。
- 「記憶容量」「データ転送速度」に関する用語の正確な定義(シリンダの意味、面数/ヘッド、トラック当たり容量、回転速度とデータ密度の関係)で検証する。
- 最も定義に合致する選択肢を選ぶ(ア)。
選択肢別の誤答解説
-
ア:正。アクセス時間はシーク時間(位置決め)+平均回転遅延+転送時間で表され、回転速度を上げる(平均回転遅延の減少)か位置決め時間を短縮することでアクセス時間は短くなる。
-
イ:誤。アクセス時間はディスク内部でのアクセスにかかる時間要素(シーク、回転遅延、転送)を指す。処理装置の前処理時間やデータ転送後の後処理時間(ホスト側の処理)は含まれない。
-
ウ:誤。記憶容量は「トラック当たりの記憶容量 × トラック数 × 面数(ヘッド数)」などで与えられる。重要な点は「シリンダ数」は各表面に存在する同心円状のトラックの数(=トラック数/面)であって、「プラッタ枚数×トラック数」という定義は誤り。正しくは、シリンダ数 = 1面あたりのトラック数(=円の集合の数)であり、総容量はトラック当たり容量 × シリンダ数 × 面数(ヘッド数)で算出する。
-
エ:誤。データ転送速度(シリアルに読み書きできるバイト/秒)は回転速度(rpm)とトラック当たりのデータ量(トラック密度)によって決まる。回転待ち時間(回転遅延)はアクセス時間の一部であって、それ自体を転送速度を決定する因子とする表現は混同を招く。回転速度を上げれば平均回転遅延は減り、同時に1秒当たりに読み取れるトラック分量が増えるため転送速度は向上するが、転送速度は「回転速度と回転待ち時間の和」で決まるわけではない。
よくある誤解
- シリンダ数とプラッタ枚数を混同する:シリンダは同じ半径にある全面のトラックの集合であり、シリンダ数は「各面のトラック数」に等しい。プラッタ枚数は面数(ヘッド数)に関連するがシリンダ数とは別概念。
- 転送速度とアクセス時間を混同する:転送速度は連続転送中のバイト/秒を意味し、アクセス時間は1回の読み書きの開始までにかかる遅延要素(シーク+回転遅延+転送の先頭到達)を指す。
- 回転待ち時間=転送速度の因子と単純に言い切る:回転待ち時間はアクセスの遅延要素であり、転送速度は回転数とデータ密度で決まる。
補足コラム
代表的な式と実例
-
平均回転遅延(平均回転待ち時間):例:7200 rpm の場合 。
-
アクセス時間(おおよそ):
-
転送速度(連続読み取り時):あるいはセクタ単位で
-
記憶容量(典型式):別表現としては
-
シリンダの定義補足:同じ半径(同じトラック番号)にある全ての面のトラック群を「シリンダ」と呼ぶ。したがって「シリンダ数」は各面に存在するトラック数(トラック番号の総数)と同値である。
簡単な計算例(Python例)
# 例:1トラックあたり400KB、トラック数(面あたり)10000、面数4
bytes_per_track = 400 * 1024
tracks_per_surface = 10000
surfaces = 4
capacity_bytes = bytes_per_track * tracks_per_surface * surfaces
print(capacity_bytes / (1024**3), "GB")
FAQ
Q1: シーク時間と位置決め時間は同じですか?
A1: 実務的には同義で使われることが多く、ヘッドを目的トラック位置へ移動して確定するまでの時間を指します(短縮すればアクセス時間全体が短くなる)。
A1: 実務的には同義で使われることが多く、ヘッドを目的トラック位置へ移動して確定するまでの時間を指します(短縮すればアクセス時間全体が短くなる)。
Q2: 回転数を上げれば必ず転送速度も速くなりますか?
A2: 基本的には回転数が上がると1秒間に通過するデータ量が増えるため転送速度は上がるが、記録密度(トラック当たりのデータ量)やインターフェースの上限も影響するため必ずしも線形増にはならない。
A2: 基本的には回転数が上がると1秒間に通過するデータ量が増えるため転送速度は上がるが、記録密度(トラック当たりのデータ量)やインターフェースの上限も影響するため必ずしも線形増にはならない。
Q3: 「シリンダ数 = プラッタ枚数 × トラック数」って見たが本当?
A3: いいえ。シリンダ数は各面にあるトラック数(トラック番号の総数)であり、プラッタ枚数(面数・ヘッド数)とは別の概念です。総容量を求める際は「トラック当たり容量 × トラック数(=シリンダ数) × 面数(ヘッド数)」が正しい式です。
A3: いいえ。シリンダ数は各面にあるトラック数(トラック番号の総数)であり、プラッタ枚数(面数・ヘッド数)とは別の概念です。総容量を求める際は「トラック当たり容量 × トラック数(=シリンダ数) × 面数(ヘッド数)」が正しい式です。
関連キーワード: 磁気ディスク、アクセス時間、シーク時間、回転遅延、転送速度、記憶容量、シリンダ、トラック、面数、回転数

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

