どうも初めまして!
最近基本情報技術者の資格取得に向けて勉強中な駆け出しエンジニアのワカです。
■この記事を書こうと思ったきっかけ
最近書籍を購入して勉強しているのですが、暗記ばかりでなかなか身にならないと思いました。
そこで基本情報に書かれている内容を自分なりに解釈したものをここに備忘録として書き残すことにしました。
そうすれば手も動かせるし人にみられると思うとその分責任感出ますしね!
あと個人的に今自作PCを作りたいとも考えているのでこの機会に詳しくなっとこうと思ったのも理由の一つです笑
もしかすると間違っている点などあるかもしれませんので、その時は指摘していただけると嬉しいです。
■HDD
ハードディスクの構造と記録方法
HDD(ハードディスクドライブの略)はどのようにしてデータを保管しているのかというと
中にあるプラッタと呼ばれるディスクにアクセスアームと言われる針で読み書きをしています。
例えると古いレコードを聞くような形を思ってもらえればいいかと…。
ただ、ハードディスクを最初使う際には初期化(フォーマット)が必要です。
フォーマットを行うことで読み書きを行うための準備が整うわけです。
フォーマットされたディスクには実は区画で細かく分けられています。
この区画のひと区画、最小の範囲をセクタと呼んでおり、そのセクタが連なり、一周したものをトラックと呼びます。
またハードディスク内のディスクは1枚ではなく複数枚あり、同心円上のトラックをまとめるとシリンダと呼びます。
つまりセクタの集まりがトラック、トラックの集まりがシリンダというようにそれぞれが単位のような役割を果たしていると思ってもらえればOKです。
セクタ < トラック < シリンダ
ただOSが読み書きするとき複数セクタを一つのブロックとして扱います。これをクラスタと呼びます。
ちなみに…もし読み書きしたデータが1ブロックみたない場合に余分な空き容量(セクタ)が発生することがありますが、これは全て無駄な領域として見なされてしまいます。
データへのアクセスにかかる時間
データへアクセスして任意のデータを読み出すために必要なステップは以下の通りです。
①シーク(位置決め)
↓
②サーチ(回転待ち)
↓
③データ転送
これら①〜③にかかる時間を全て合わせたものがアクセス時間となるわけです。
フラグメンデーション
ハードディスクに書き込みや消去を行っていくとファイルが断片化してきます。
そうなると読み書きに必要な時間が多くかかってきてしまいます。
どういうことかというと…
十分に容量があれば一度のアクセスで全てのデータ転送が完了するはずが、空きがなく分散していると分散しているところにアクセスしなおす必要があるので必要アクセス分時間がかかることになるわけです。
このファイルがあちこちに分散してしまうことをフラグメンデーションと呼びます。
ではその場合どのようにすると良いかというとあちこちに散らばったデータを連続したデータ領域に並べ替えてしまうことで解消します。これを**デフラグ(デフラグメンデーション)**と言います。
RAID(レイド)
ハードディスクの速度や信頼性を向上させるためにRAID(レイド)呼ばれる技術があります。
これは複数のハードディスクを組み合わせて仮想的なハードディスクを構築、運用することを指します。RAIDの種類は以下の通りです。
種類 | 説明 | メリット&デメリット |
---|---|---|
RAID0(ストライピング) | 一つのデータを2台以上のディスクに分散させて書き込みする | 高速化が図れる いずれかの1台が故障すると全データがなくなる(信頼性が低い) |
RAID1(ミラーリング) | 2台以上のディスクに対して同じデータを書き込む | 常時バックアップがある状態(信頼度高) 使えるディスク領域は半分に… |
RAID5 | 3台以上のディスクを使ってデータと同時にパリティ情報(※1)を使って書き込む | 複数のディスクに分散させて書き込む。 いずれかの1台が故障してもパリティ情報を使って復元できる |
※1パリティ情報・・・誤り訂正符号。送られてきた情報が正しいかどうかを確かめる情報。
■最後に
ここまで長々と読んでくださりありがとうございました!
少し説明がわかりにくかった部分があるかと思いますが、もしわからないところがあればコメントしていただけると嬉しいです。
では!次の記事にて!