※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
さて今回は、基本情報技術者試験対策として、フラグメンテーションについてまとめたいと思います。
フラグ??メンテーション??名前だけではイメージつかないですよね。
本記事ではフラグメンテーションとは何かだけでも覚えていただければOKです。
それではさっそく見ていきましょう!
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
フラグメンテーションとは何か?
フラグメンテーションの定義
フラグメンテーションとは、データがストレージやメモリ上で断片化(分散)する現象のことを指します。データや記憶領域が小さな単位に分割され、そのままでは有効に利用できません。一番理想的なのは、データが連続的な領域に保存されることです。
フラグメンテーションはシステムのパフォーマンスに影響を及ぼす可能性があるため、フラグメンテーションを適切に管理し、必要に応じて解消することが重要です。
イメージしにくかったら日常生活で考えてください。端から順番に格納されていれば綺麗ですが、あっちこっちに散らばって保存されていると汚いですよね??しかも散らばっていては本来入るはずのものが入らないなんてこともありますよね??そう、このあっちこっちに散らばっている、断片化(分散)されている状態がフラグメンテーションなのです。
フラグメンテーションが起こる理由
フラグメンテーションは、ファイルの追加、削除、変更などの一連の操作により発生します。
最初はまとまった領域でデータを保存しようとしますが、新しくデータを追加したり、削除したりの動作を繰り返すことによって、虫食い状態になってしまいます。連続したデータの一部を削除するわけですから、まぁしょうがないです。そしてぽっかりと空いたところが増えてくると、今度は連続した領域が用意できずにバラバラにデータを保存する、といったように負の連鎖でフラグメンテーションは生じてしまいます。まぁ仕方のないことなのでいいのですが。
フラグメンテーションが起こると困ること
フラグメンテーションはシステムのパフォーマンスに影響を及ぼす可能性があるとお伝えしましたが、もう少しイメージをつけやすく説明しておきます。
ハードディスクを例にとって考えてみましょう。
※これからの話は「ハードディスクの深層:データアクセス時間と算出例【備忘録-基本情報技術者試験対策 #30-3】」を知っていればよりしっくりとくる内容です。まだご覧になっていない方は是非!!
※ハードディスクの仕組み
ハードディスクに関する記事も以前まとめています。こちらも基本情報必須の知識になりますので必ず頭に入れておきましょう!!
さてさて、
ハードディスクがデータにアクセスする際、「シーク」と「サーチ」が必要になります。
★シーク(位置決め):磁気ヘッドを特定のトラックの上に持ってくるまでのプロセス
★サーチ(回転待ち):プラッタを回転させて、磁気ヘッドが特定のセクタに到達するまで待機するプロセス
まぁ要するに、ハードディスクのデータを読み取る部分(磁気ヘッド)が目的のデータが保存されている箇所にたどり着くまでのプロセスと考えていただければOKです。
となってくると、何となく理解できると思います。
データが連続された領域に保存されていると、データを読み取る部分(磁気ヘッド)が目的のデータを探す時間が少なくなり、何のストレスなく必要なデータへとアクセスできますよね??
逆にデータがバラバラに散らばっていると、必要なデータを全て読み込むために、あっちに行ったりこっちに行ったりと、もう大変この上ない状態となってしまいます。
とまぁこんな感じで、フラグメンテーションはシステムのパフォーマンスに影響を与えるといったわけです。
フラグメンテーションの解消方法
フラグメンテーションの解消方法は基本的にストレージだろうが、メモリだろうが同じ手順を踏みます。基本的には以下の手順です。
- Step1分析
ストレージやメモリを分析してフラグメンテーションのレベルを判断
- Step2再配置
断片化したデータを再配置して連続した空き領域を作成
- Step3最適化
頻繁にアクセスされるデータを前方に移動させ、パフォーマンスを最適化
別にやっていることは難しくありません。
Step1でどんだけデータがバラバラになってるの??といったところを分析し、Step2で配置を変えて連続したデータとなるように整えます。Step3は若干おまけですかね、頻繁にアクセスするデータによっては最適化を図るといったようなイメージです。
ちなみにストレージとメモリでそれぞれフラグメンテーションの解消方法に対して名称があるそうです??あまり重要ではないと思いますが、いちおう覚えておいて損はないと思います。
ディスクデフラグメンテーション
ディスクデフラグメンテーションは、ストレージ上の断片化されたファイルを再配置して連続した領域に保存するプロセスです。これにより、ディスクの読み取り/書き込み速度を向上させることができます。
デフラグメンテーションの頻度は、コンピュータの使用方法とハードドライブの種類によります。一般的には、月に1回程度のデフラグメンテーションが推奨されます。ただし、SSD(Solid State Drive)はデフラグメンテーションを必要としないため、HDD(Hard Disk Drive)にのみ適用されるものとなります。
メモリコンパクション
メモリコンパクションは、断片化されたメモリを再配置して大きな連続した空き領域を作成するプロセスです。これにより、大きなメモリブロックの割り当てを可能にします。
メモリコンパクションの頻度は、システムの使用状況とメモリの総量によります。一般的には、メモリ使用率が高く、フラグメンテーションが多い場合に、メモリコンパクションが行われます。
ディスクデフラグメンテーションもメモリコンパクションも、データを物理的に移動するため、プロセス中に電源が切れるとデータ損失のリスクがあります。したがって、必ず重要なデータのバックアップを取ることをお勧めします。
※おまけ:フラグメンテーションの種類
ストレージのフラグメンテーション
ストレージ(ハードディスクやSSDなど)上で発生するフラグメンテーションは、ファイルシステムがデータを保存する方法により引き起こされます。ファイルが更新されるたびに、新しい情報が既存のファイルから離れた場所に保存される可能性があります。これにより、ファイルは物理的に断片化し、その結果、ディスクの読み取り/書き込み速度が低下します。
メモリのフラグメンテーション
メモリフラグメンテーションは、プログラムが動的にメモリを割り当てて解放するときに発生します。これにより、利用可能なメモリが小さなブロックに分割され、大きな連続した空き領域が不足する可能性があります。これは特に長時間稼働するシステムで問題となる可能性があります。
最後に
さて今回は、基本情報技術者試験対策として、フラグメンテーションについてまとめました。
内容は難しくないですね??色々と説明しましたが、最終的に覚えておいてほしいのは「フラグメンテーションとは何か??」だけです。それだけ覚えておいてもらえればOKだと思います。
データがストレージやメモリ・ストレージ上で断片化(分散)する現象
以上!
前回まとめた記事も読んでもらえると嬉しいです!
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント