補助記憶装置

この記事での学習内容 基本情報 応用情報

代表的な補助記憶装置や記憶媒体の種類,特徴,仕組み,用途,装置の諸元に基づく記憶容量や,平均アクセス時間の計算方法を理解する。

用語例:ハードディスク装置,SSD(ソリッドステートドライブ),SD/SDHC/SDXC カード,CD-R/RW ドライブ,ブルーレイドライブ,DVD-R/RW ドライブ,磁気テープ装置,トラック,シリンダ,ブロック化因数,IBG(Interblock Gap:ブロック間隔),セクタ,トラック密度,スピンドル,アクセスアーム,磁気ヘッド,固定ディスク,デフラグメンテーション,シークタイム,サーチタイム,データ転送時間,データ転送速度,ボリューム,ボリュームラベル,見出しラベル,後書きラベル,ディスクアレイ,RAID

ハードディスク

ハードディスクは、磁気を使った高速かつ大容量の補助記憶装置として、広く使われています。PC用としては、数100GB~数TB程度の容量が主流です。

ハードディスクの構造

内部には磁性体をぬった金属などの円盤(ディスク)が数枚、軸を中心に固定されており、高速に回転します。(5000~10000回転/分 程度)
磁気ヘッドの付いたアームがディスク状をスライドし、表面を磁化することでデータを読み書きします。この時に、磁気ヘッドはディスクの表面と接触することはありません。
なお、磁気ヘッドとディスクは接触しないようになっているが、外部からの強い振動で接触してしまう可能性があり、それが故障につながるため、ハードディスクは振動に弱いとされています。

トラックとセクタ

ディスクのオモテウラには、トラックというデータ記録用の領域が同心円状に何本も作られます。1本のトラックはさらにセクタというデータを格納するための小さい区画に分割されます。

各トラックとセクタにはアドレス番号が振られ、この番号でデータが格納されたセクタの記録位置を識別します。

なお、磁気ヘッドのアームはディスクの裏表それぞれに伸びているので、同じ半径上にある全トラックに同時にアクセスできます。同時にアクセスできるトラックをまとめて、シリンダと呼びます。

ディスクの容量

ディスク1面のトラック数や、1トラックあたりのセクタ数、各セクタに格納できるバイト数は、ディスクのフォーマット(初期化)時の形式によって異なります。
これによって、ハードディスク全体の格納容量が決まります。

ディスクの容量

ディスク容量 = ディスク面数 × トラック数 × セクタ数 × セクタのサイズ

ディスクのアクセス時間

ハードディスクはデータを読み取る時、次のような順序で動作します。

  1. 磁気ヘッドがデータのあるトラック位置に来るまでアームを移動(シーク)
  2. ディスクが回転してデータのあるセクタがヘッド位置に来るまで待つ(サーチ)
  3. セクタ内のデータを読み取ってメモリに転送

シーク時間、ディスク回転の平均時間、データ転送時間の合計をディスクのアクセス時間といいます。

ディスクのアクセス時間

アクセス時間 = シーク時間 + サーチ時間 + データ転送時間

*サーチ時間は1/2回転にかかる時間とするのが一般的

ハードディスクの断片化

ディスク内のファイルにデータの削除や追加を何度も繰り返すと、論理的には1つのファイルでありながら、物理的にはディスクのバラバラな領域に格納されてしまうことがあります。この状態を断片化(フラグメンテーション)といいます。

断片化が起きると、データを読み取るために磁気ヘッドがディスク状を頻繁に移動しなければならず、シーク時間が増えてアクセスが遅くなります。

断片化を解消するためには、ファイルを連続した領域に格納し直します。断片化を解消する作業を「デフラグ」(デフラグメンテーション)といいます。
デフラグを行うためには、OSに付属するツールを使うか、ファイルを一旦別の媒体にバックアップし、初期化したハードディスクに再度書き戻します。

ブロック化因数

ブロック化因数とは、入出力ファイルの1ブロックに含まれるレコード数です。レコードはプログラムが処理する論理的なデータの単位です。それに対して、ブロックはコンピュータが入出力装置とデータをやり取りする単位です。

ブロック化因数がnなら、入出力のやり取りをするアクセス回数がn分の1になり、効率が向上します。

ブロック間隔

ブロック間隔は入出力のブロックとブロックの間の間隔です。ブロック間隔は本来記憶可能な部分ですが、1ブロックのアクセス開始や終了に必要な空き領域です。

ブロック化したファイルの容量

ファイル容量 = (レコード長 × ブロック化因数 + ブロック間隔)× ブロック数