ハードディスクの深層:ハードディスクの記憶容量【備忘録-基本情報技術者試験対策 #30-2】

基本情報技術者試験

※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。

はじめに

さて今回は、基本情報技術者試験対策として、ハードディスクの記憶容量についてまとめたいと思います。

前回はハードディスクの構造についてまとめました。

今回は、構造というよりも、どれだけ記憶容量があるのかの計算練習です。テストでよく問われるので、必ずできるようにしておきましょう。

また、計算を実行していくにあたり、「セクタ」、「トラック」、「シリンダ」を理解しておくことが非常に重要です。最後のポイントでもまとめますが、この記事を通して理解していただけると嬉しいです。

それではさっそくいきましょう!

ちなみに私はこの参考書を使って勉強してました。

漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。

過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!

最新版はこちらです。

少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。

フォーマット

いきなり「セクタ」、「トラック」、「シリンダ」には入りません。まずは「フォーマット」についてです。

新しいハードディスクを初めて使用するときには、「フォーマット(初期化)」と呼ばれる作業が必要になります。

ハードディスクをフォーマットするとは、ハードディスク上のデータをすべて消去し、新たにデータを保存するための領域を作成することを指します。具体的には、ハードディスク上にファイルシステムを構築し、データがどのように保存され、どのようにアクセスされるかを定義します。

また、新しく使用する場合以外にも、ハードディスクに深刻なエラーが発生した場合や、ウイルスに感染した場合などにも、フォーマットが行われることがあります。

簡単に言えば、データのリセットですね。

前回ハードディスクの構造についてまとめましたが、その中のディスク(プラッタ)を細かく区切って分割していくようなイメージです。

フォーマットのプロセスは次のように行われます。

  • 低レベルフォーマット:
    これはハードディスクの製造時に一度だけ行われます。プラッタ上に数百万から数十億の微小な磁気領域(セクタ)を作成します。
  • 高レベルフォーマット:
    これはユーザーが新しいハードディスクを初めて使用するときや、ハードディスクを再フォーマットするときに行われます。ファイルシステムを作成し、データがどのセクタに保存されるかを管理するデータ構造を作成します。

フォーマットは重要なプロセスですが、注意が必要です。フォーマットを行うとハードディスク上の既存のデータはすべて消去され、通常は復元できなくなるからです。

セクタ、トラック、シリンダ

セクタ

上画像オレンジ色の領域がセクタです。

セクタは、ハードディスクのディスク(プラッタ)上の最小のデータ単位で、データを保存するための領域です。

ディスク(プラッタ)は、中心から外側へ向かって複数の同心円(トラック)に分割されています。各トラックはさらに、データが記録されるセクタに分割されます。ハードディスク上の各セクタには一意のアドレスが割り当てられており、このアドレスを使用してデータの読み書きが行われます。

トラック

上画像オレンジ色の領域がトラックです。

単純に、「セクタを1周分集めたもの」 = 「トラック」でOKです。ディスク(プラッタ)を同心円に区切っていった際の、1つというわけですね。

陸上競技場をイメージしてあげればいいですね。トラックとかいうはずです。多分・・・

シリンダ

上画像オレンジ色の領域がシリンダです。

簡単に言うと、「トラックを複数集めたもの」 = 「シリンダ」です。

通常ハードディスクは、ディスク(プラッタ)が重なったような構造をしており、そのうち、複数のトラックを1つの塊としてとらえた場合に、「シリンダ」という単位が使われるわけですね。

ハードディスクの記憶容量(計算練習)

セクタ、トラック、シリンダのイメージはつきましたかね??このイメージがしっかりと持てていると、ハードディスクの記憶容量も計算できます。テストでは計算問題も問われるはずなので、計算できるようにしておきましょう!

以下、例題です。

ハードディスクの条件が以下だった場合で計算練習をしてみましょう!

1セクタ当たりのバイト数512
1トラック当たりのセクタ数80
1シリンダ当たりのトラック数40
シリンダ数1500

1セクタ当たりのバイト数が512 バイト、それが80 個集まって、1つのトラックとなるわけなので、1トラック当たりのバイト数は、

1トラック当たりのバイト数 = 512 バイト * 80 個 = 40960 バイト 

となるわけです。

さて、1トラック当たりのバイト数は、40960 バイトだと分かりました。そして、1シリンダ当たりのトラック数が40 個なので、1シリンダ当たりのバイト数は、

1シリンダ当たりのバイト数 = 40960 バイト * 40 個 = 1638400 バイト 

となります。

1シリンダ当たりのバイト数が1638400 バイトと分かりましたので、あと少しです。ハードディスクのシリンダ数が1500 個だとすると、

記憶容量 = 1638400 バイト * 1500 個 = 2457600000 バイト

となります。

したがって今回の場合は、記憶容量 = 2457600000 バイト = 2.4576 × 10^9 B = 約2.5 GB(ギガバイト)となるわけです。

全然難しくないですよね??それぞれの構造・構成を理解して、あとは掛け算をしていくだけです。

クラスタ

セクタは、ハードディスクのディスク(プラッタ)上の最小のデータ単位で、データを保存するための領域だと先述しました。しかし、OS(WindowsやMacなど)がファイルを保存する際は、セクタ単位でデータを保存するのでなく、複数のセクタを1つとみなした「ブロック」と呼ばれる単位でデータを保存します。

これも例題を見ながらイメージしておきましょう。

1セクタ当たりのバイト数512
1ブロック当たりのセクタ数8
1ブロック当たりのバイト数4096
1ブロック当たりのバイト数 = 512 B * 8 個 = 4096 B

上記は大丈夫ですよね??単純に掛け算しただけです。

さて、では例題です。1ブロック当たりのバイト数が4096 バイトの状態で、例えば3000 バイトのデータを保存するとします。この時、1ブロックでデータを保存できるので、1096 バイトの余力を残した状態で保存ができるわけです。となると、1096バイトは無駄になってしまいます。このような状態を、「クラスタの内部断片化」といいます。まぁ単純に、1096バイトのストレージを無駄にしている状態というだけですね。

今度は例えば、5000 バイトのデータを保存するとします。この時、1ブロックではデータを保存できないので、2ブロック使用する必要があります。5000 バイトの内の、4096 バイト分を1つ目のブロックに保存し、残りの904 バイトを2つ目のブロックに保存します。2つ目のブロックは904 バイトしか使っていませんので、3192 バイトも無駄にしてしまっています。もったいないですね。このような状態を、「クラスタの外部断片化」と呼びます。

イメージできましたかね??ブロック単位で保存すること、余った分はストレージの無駄になってしまうことは頭に入れておきましょう!

最後に

さて今回は、基本情報技術者試験対策として、ハードディスクの記憶容量についてまとめました。

とにかく大切なのは、「セクタ」、「トラック」、「シリンダ」をしっかりと理解しておくことです。これさえ理解していれば、計算問題もなんのそのです。テスト前には必ず頭に入れておくようにしましょう!

★セクタ
ディスク(プラッタ)上の最小のデータ単位、ディスク(プラッタ)の同心円を区切ったもの

★トラック
セクタを1周分集めたもの、ディスク(プラッタ)の同心円1つ分

★シリンダ
トラックを複数集めたもの

前回まとめた記事も読んでもらえると嬉しいです!

データアクセス時間の計算もまとめていますのでそちらも是非!

基本情報以外の勉強記事も是非!

オススメ参考書 & Udemy講座

オススメ参考書

私が勉強する際に使用していたオススメ参考書は以下です。

上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)

Udemy講座

私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。

誰かに解説してもらった方が分かりやすい場合もありますからね~

画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!

コメント

タイトルとURLをコピーしました