- HOME >
- 管理人
管理人
SEとして働く「分かる君」がつ運営するサイトです。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。
基本情報技術者試験や応用情報技術者試験で出題される「実記憶管理」の問題。聞きなれない言葉のため難しく感じますが、「実記憶管理」の各方式の動きを理解してしまえばそこまで難しい問題ではありません。 本記事では、「実記憶管理」について図解で分かりやすく解説しています。 実記憶管理とは プログラム内蔵方式を採用しているコンピュータは、プログラムを実行するときハードディスクなどの補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)に読み込んでから実行します。 このようにコンピューターがプログラムを主記憶 ...
スワッピング方式 スワッピング方式とは、主記憶装置の空き領域が少ないとき、優先度の低いプログラムを一時的にハードディスクなどの補助記憶装置に退避(スワップアウト)させて空き領域を作り、退避させたプログラムが必要になったら再び主記憶装置にロードする(スワップイン)方式のことです。 実記憶管理 プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するときハードディスクなどの補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このように主記憶装置に ...
スワップイン スワップインとは スワップイン(swap-in)とは、スワップアウトによりハードディスクなどの補助記憶装置に退避していたプログラムを主記憶装置に再ロードすることです。 主記憶装置(メインメモリ)の空き領域が少ないとき、優先度の低いプログラムを一時的にハードディスクなどの補助記憶装置に移すことをスワップアウトといいます。 次の図は、スワップアウトのイメージ例です。 そして、スワップアウトにより退避していたプログラムが必要となり、主記憶装置に戻すことをスワップインといいます。 次の図は、スワップ ...
スワップアウト スワップアウトとは スワップアウト(英:swap-out)とは、主記憶装置の空き領域が少ないとき、一時的に優先度の低いプログラムをハードディスクなどの補助記憶装置に移すことです。 次の図は、スワップアウトのイメージ例です。主記憶装置にロードしていた「プログラムC」を補助記憶装置に退避させることで、主記憶装置に空き領域を作っています。 そして、スワップアウトしたプログラムを、主記憶装置に戻すことを「スワップイン」といいます。 次の図は、スワップインのイメージ例です。スワップアウトにより補助記 ...
オーバーレイ方式 オーバーレイ方式とは、プログラムをセグメントという単位に分割し、その時に必要なセグメントだけを主記憶装置(メインメモリ)にロードする方式のことです。 実記憶管理 プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するときハードディスクなどの補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このように主記憶装置に効率よくプログラムを割り当てることを実記憶管理といい、実記憶管理には、「固定区画方式」「可変区画方式」「オーバー ...
メモリリーク メモリリークとは メモリリーク(英:memory leak)とは、プログラムが確保したメモリ領域の一部 または すべてを解放し忘れ、確保したまま放置してしまうことであり、プログラミングにおけるバグの一種です。 通常プログラムは、次の図のように主記憶装置から必要な領域を確保し、役割を終えて不要になったタイミングで確保したメモリ領域を解放し、空き領域に戻します。 しかし、プログラムの記述ミスなどにより解放処理を怠ると、不要になったプログラムがメモリ領域を確保したままになってしまう現象が起こります ...
メモリコンパクションとデフラグテーション メモリコンパクションとデフラグテーションはどちらも断片化(フラグメンテーション)を解消するための手法です。 メモリコンパクションとデフラグテーションの違いは、メモリで発生した断片化を解消するのがメモリコンパクション、ハードディスクなどのストレージ機器で発生した断片化を解消するのがデフラグテーションです。 メモリコンパクション メモリの断片化 プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記 ...
ガベージコレクションとメモリコンパクション オペレーティングシステム(OS)が持つメモリ管理の機能である「ガベージコレクション」と「メモリコンパクション」、実現方法によってはガベージコレクションと共にメモリコンパクションも行う仕組みのため、メモリコンパクションを含めてガベージコレクションと呼ぶ場合もありますが、厳密には区別されています。 本記事では、ガベージコレクションとメモリコンパクションの違いについて解説していきます。 ガベージコレクションとは ガベージコレクション(英:garbage collect ...
ガベージコレクション ガベージコレクションとは ガベージコレクション(英:garbage collection)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放し、空き領域として再利用できるようにすることです。GCという略記で表記されることもあります。 次の図は、ガベージコレクションのイメージ例です。 主記憶装置(メインメモリ)上にロードされたプログラムが不要になったタイミングで自動的に解放し、空き領域として再利用できるようにしています。 従来のプログラムは、プ ...
デフラグメンテーション(デフラグ) デフラグメンテーション(英:defragmentation)とは、ハードディスクなどのストレージ装置(外部記憶装置)に保存してあるデータを再配置し、各データの領域や空き領域を綺麗に整理することです。 デフラグメンテーションは、省略してデフラグと呼ばれることが多く、その目的はディスク上で発生した断片化(フラグメンテーション)を解消することです。 断片化(フラグメンテーション)とは ハードディスクなどのストレージ機器は、ファイルなどを保存するとき、空き領域から必要な大きさの ...
メモリコンパクション メモリコンパクション(英:memory compaction)とは、オペレーティングシステム(OS)などが持つ主記憶装置(メインメモリ)の管理機能の一つで、空き領域の断片化(フラグメンテーション)を解消し、連続したひとつの空き領域にすることです。 メモリの断片化 プログラム内蔵方式を採用しているコンピュータでは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このとき、主記憶装置にロードしたプログラムがロードした順 ...
フラグメンテーション(断片化) メモリのフラグメンテーションとは フラグメンテーション(英:fragmentation)とは、メモリの管理上の単位が小さく分割されてしまい、そのままでは有効活用できない状態のことをいいます。 プログラム内蔵方式を採用しているコンピュータは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このとき、主記憶装置(メインメモリ)にロードしたプログラムがロードした順番に終了するとは限りません。 例えば、次の図のよ ...
可変区画方式 可変区画方式(読み:かへんくかくほうしき)とは、主記憶装置(メインメモリ)にロードするプログラムのサイズに応じて必要なサイズの区画を確保し、その領域にプログラムをロードする方式のことです。 コンピュータはプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置にロードしてから実行します。(このような方式をプログラム内蔵方式という) 補助記憶装置に保存してあるプログラムを主記憶装置にロードするときの方式には「固定区画方式」「可変区画方式」「オーバーレイ方式」「スワッピング方式 ...
固定区画方式 固定区画方式(読み:こていくかくほうしき)とは、主記憶装置をあらかじめ一定の大きさ区画に分け、その領域にプログラムを読み込む(ロード)方式のことです。 コンピュータがプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。このような方式をプログラム内蔵方式といいます。 固定区画方式は、補助記憶装置のプログラムを主記憶装置にロードするときの方式のひとつであり、固定区画方式には、単一区画方式と多重区画方式があります。 単一区画方式 単 ...
基本情報技術者試験や応用情報技術者試験で出題されるデッドロックの問題。システム開発の現場でもよく耳にする言葉であり、エンジニアであれば知っておきたい知識です。 本記事では、デッドロックについて図解で分かりやすく解説しています。 排他制御とロック 排他制御とは 排他制御とは、共有資源を複数のタスク(プログラム)が同時に操作しても問題なく動作できる仕組みのことです。 例えば、次の図のように共有資源に対して「+1」を加算するプログラムAとプログラムBがあるとします。 本来であれば、共有資源の値が「10」でその値 ...
基本情報技術者試験や応用情報技術者試験で出題される内容である排他制御。排他制御には「ロック」や「セマフォ」「ミューテックス」などがあります。 本記事では、排他制御について図解で分かりやすく解説しています。 排他制御 排他制御とは、共有資源を複数のタスク(プログラム)が同時に操作しても問題なく動作できる仕組みのことです。 例えば、次の図のように「プログラムA」と「プログラムB」が、共有の領域の値に対して同時に書き込む可能性があるとします。 「プログラムA」と「プログラムB」はお互い「+1」するプログラムであ ...
ミューテックス ミューテックス(英:mutex)とは、複数のプログラム(タスク)が同時に処理を行う環境(並列処理)で、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのひとつです。 複数のプログラム(タスク※1)が共有資源に同時にアクセスするとき、最初のプログラムが共有資源をロック(ミューテックスオブジェクトを非シグナル状態にする)し、ロック中はロックが解放されるまで他のプログラムは共有資源にアクセスができず待機します。 そして、ロック中のプログラム(タスク)の処理が終了すると、他のプログラム ...
セマフォ セマフォ(英:semaphore)とは、複数のプログラム(タスク)が同時に処理を行う環境(並列処理)で、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのひとつです。 共有資源に対して同時にアクセスしても問題なく動作できる仕組みを「排他制御」といい、排他制御には「ロック」や「ミューテックス」「セマフォ」などがあります。 排他制御とは 排他制御とは、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのことです。 例えば、次の図のようにプログラムAとプログラムBがアクセスできる ...
基本情報技術者試験や応用情報技術者試験で出題されるマルチプログラミングの問題。過去問を見ると難しく感じる問題です。しかし、マルチプログラミングの動きを理解していれば、そこまで難しい問題ではありません。 本記事では、マルチプログラミングについて図解で分かりやすく解説していきます。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことで、コンピュータが処理するプログラムもタスクです。 タスクには「実行可能状態」「実行状態」「待機状態」の3つの状態があり、次の状態遷移図のとおりに遷移します。 ...
基本情報技術者試験や応用情報技術者試験の過去問では、タスクの状態遷移についての問題が出題されています。 本記事では、タスクの状態遷移について図解を利用して分かりやすく解説しています。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことです。 例えば、アプリケーションのアイコンをクリックすると、クリックしたアプリケーションを開くように命令します。このような命令により発生する処理の単位をタスクといい、コンピュータの頭脳である「CPU」がこのタスクを処理します。 生成されたタスクには次の3 ...