管理人

SEとして働く管理人「まつ」がつぶやく個人運営サイトになります。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。

2022/3/22

メモリコンパクションとデフラグテーションの違い

メモリコンパクションとデフラグテーション メモリコンパクションとデフラグテーションはどちらも断片化(フラグメンテーション)を解消するための手法です。 メモリコンパクションとデフラグテーションの違いは、メモリで発生した断片化を解消するのがメモリコンパクション、ハードディスクなどのストレージ機器で発生した断片化を解消するのがデフラグテーションです。 メモリコンパクション メモリの断片化 プログラム内蔵方式という方式を採用しているコンピュータは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記 ...

2022/3/22

ガベージコレクションとメモリコンパクションの違い

ガベージコレクションとメモリコンパクション オペレーティングシステム(OS)が持つメモリ管理の機能である「ガベージコレクション」と「メモリコンパクション」、実現方法によってはガベージコレクションと共にメモリコンパクションも行う仕組みのため、メモリコンパクションを含めてガベージコレクションと呼ぶ場合もありますが、厳密には区別されています。 本記事では、ガベージコレクションとメモリコンパクションの違いについて解説していきます。 ガベージコレクションとは ガベージコレクション(英:garbage collect ...

2023/8/3

ガベージコレクションとは

ガベージコレクション ガベージコレクションとは ガベージコレクション(英:garbage collection)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放し、空き領域として再利用できるようにすることです。GCという略記で表記されることもあります。 次の図は、ガベージコレクションのイメージ例です。 主記憶装置(メインメモリ)上にロードされたプログラムが不要になったタイミングで自動的に解放し、空き領域として再利用できるようにしています。 従来のプログラムは、プ ...

2023/8/3

デフラグメンテーション(デフラグ)とは

デフラグメンテーション(デフラグ) デフラグメンテーション(英:defragmentation)とは、ハードディスクなどのストレージ装置(外部記憶装置)に保存してあるデータを再配置し、各データの領域や空き領域を綺麗に整理することです。 デフラグメンテーションは、省略してデフラグと呼ばれることが多く、その目的はディスク上で発生した断片化(フラグメンテーション)を解消することです。 断片化(フラグメンテーション)とは ハードディスクなどのストレージ機器は、ファイルなどを保存するとき、空き領域から必要な大きさの ...

2023/8/3

メモリコンパクションとは

メモリコンパクション メモリコンパクション(英:memory compaction)とは、オペレーティングシステム(OS)などが持つ主記憶装置(メインメモリ)の管理機能の一つで、空き領域の断片化(フラグメンテーション)を解消し、連続したひとつの空き領域にすることです。 メモリの断片化 プログラム内蔵方式を採用しているコンピュータでは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このとき、主記憶装置にロードしたプログラムがロードした順 ...

2022/3/22

フラグメンテーションとは

フラグメンテーション(断片化) メモリのフラグメンテーションとは フラグメンテーション(英:fragmentation)とは、メモリの管理上の単位が小さく分割されてしまい、そのままでは有効活用できない状態のことをいいます。 プログラム内蔵方式を採用しているコンピュータは、プログラムを実行するとき補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。 このとき、主記憶装置(メインメモリ)にロードしたプログラムがロードした順番に終了するとは限りません。 例えば、次の図のよ ...

2022/3/22

可変区画方式とは

可変区画方式 可変区画方式(読み:かへんくかくほうしき)とは、主記憶装置(メインメモリ)にロードするプログラムのサイズに応じて必要なサイズの区画を確保し、その領域にプログラムをロードする方式のことです。 コンピュータはプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置にロードしてから実行します。(このような方式をプログラム内蔵方式という) 補助記憶装置に保存してあるプログラムを主記憶装置にロードするときの方式には「固定区画方式」「可変区画方式」「オーバーレイ方式」「スワッピング方式 ...

2023/8/3

固定区画方式とは

固定区画方式 固定区画方式(読み:こていくかくほうしき)とは、主記憶装置をあらかじめ一定の大きさ区画に分け、その領域にプログラムを読み込む(ロード)方式のことです。 コンピュータがプログラムを実行するとき、補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)にロードしてから実行します。このような方式をプログラム内蔵方式といいます。 固定区画方式は、補助記憶装置のプログラムを主記憶装置にロードするときの方式のひとつであり、固定区画方式には、単一区画方式と多重区画方式があります。 単一区画方式 単 ...

2023/8/3

【基本情報技術者試験】デッドロック

基本情報技術者試験や応用情報技術者試験で出題されるデッドロックの問題。システム開発の現場でもよく耳にする言葉であり、エンジニアであれば知っておきたい知識です。 本記事では、デッドロックについて図解で分かりやすく解説しています。 排他制御とロック 排他制御とは 排他制御とは、共有資源を複数のタスク(プログラム)が同時に操作しても問題なく動作できる仕組みのことです。 例えば、次の図のように共有資源に対して「+1」を加算するプログラムAとプログラムBがあるとします。 本来であれば、共有資源の値が「10」でその値 ...

2023/8/3

【基本情報技術者試験】排他制御(占有ロックと共有ロック)

基本情報技術者試験や応用情報技術者試験で出題される内容である排他制御。排他制御には「ロック」や「セマフォ」「ミューテックス」などがあります。 本記事では、排他制御について図解で分かりやすく解説しています。 排他制御 排他制御とは、共有資源を複数のタスク(プログラム)が同時に操作しても問題なく動作できる仕組みのことです。 例えば、次の図のように「プログラムA」と「プログラムB」が、共有の領域の値に対して同時に書き込む可能性があるとします。 「プログラムA」と「プログラムB」はお互い「+1」するプログラムであ ...

2022/2/9

ミューテックスとは

ミューテックス ミューテックス(英:mutex)とは、複数のプログラム(タスク)が同時に処理を行う環境(並列処理)で、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのひとつです。 複数のプログラム(タスク※1)が共有資源に同時にアクセスするとき、最初のプログラムが共有資源をロック(ミューテックスオブジェクトを非シグナル状態にする)し、ロック中はロックが解放されるまで他のプログラムは共有資源にアクセスができず待機します。 そして、ロック中のプログラム(タスク)の処理が終了すると、他のプログラム ...

2022/2/19

セマフォとは

セマフォ セマフォ(英:semaphore)とは、複数のプログラム(タスク)が同時に処理を行う環境(並列処理)で、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのひとつです。 共有資源に対して同時にアクセスしても問題なく動作できる仕組みを「排他制御」といい、排他制御には「ロック」や「ミューテックス」「セマフォ」などがあります。 排他制御とは 排他制御とは、共有資源に対して同時にアクセスしても問題なく動作できる仕組みのことです。 例えば、次の図のようにプログラムAとプログラムBがアクセスできる ...

2023/8/4

【基本情報技術者試験】マルチプログラミング(マルチタスク)

基本情報技術者試験や応用情報技術者試験で出題されるマルチプログラミングの問題。過去問を見ると難しく感じる問題です。しかし、マルチプログラミングの動きを理解していれば、そこまで難しい問題ではありません。 本記事では、マルチプログラミングについて図解で分かりやすく解説していきます。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことで、コンピュータが処理するプログラムもタスクです。 タスクには「実行可能状態」「実行状態」「待機状態」の3つの状態があり、次の状態遷移図のとおりに遷移します。 ...

2023/8/4

【基本情報技術者試験】タスクの状態遷移とディスパッチ

基本情報技術者試験や応用情報技術者試験の過去問では、タスクの状態遷移についての問題が出題されています。 本記事では、タスクの状態遷移について図解を利用して分かりやすく解説しています。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことです。 例えば、アプリケーションのアイコンをクリックすると、クリックしたアプリケーションを開くように命令します。このような命令により発生する処理の単位をタスクといい、コンピュータの頭脳である「CPU」がこのタスクを処理します。 生成されたタスクには次の3 ...

2022/1/30

アイドルタイムとは

アイドルタイム 使用可能な状態だが使用されていない、何も処理を行っていない、すぐ使用できるように待機しているといった状態のことを、ITの分野では「アイドル状態」もしくは「アイドル」といい、アイドル状態で待機している時間を「アイドルタイム」といいます。 具体的には、稼動中のCPUやオペレーティングシステム(OS)が何の仕事もせず遊休状態になっているときや、通信回線や通信装置が何の通信もしていない状態のときの時間をアイドルタイムといいます。 例えば、次のようなプログラムがあるとします。 プログラムAは処理する ...

2023/8/4

マルチプログラミング(マルチタスク)とは

マルチプログラミング(マルチタスク) マルチプログラミングとは マルチプログラミングとは、複数のプログラム(タスク)を並行して同時に実行することです。マルチタスクや多重プログラミングとも呼ばれています。 コンピュータで実行するプログラムには「CPUによる処理」と「入出力処理」があり、入出力処理をしている間、CPUは何もしていません。 次の図は、プログラムの内訳例です。 「90ミリ秒」かかる処理の中で、CPUが処理している時間は「30ミリ秒」です。「60ミリ秒」間は入出力の処理であり、その間、CPUは何もし ...

2022/10/8

プリエンプションとは

プリエンプション プリエンプション(英:preemption)とは、複数のタスクを同時に実行するマルチタスク(マルチプログラミング)に対応したOSの制御機能のひとつで、実行状態のタスクを一旦停止して、実行可能状態に戻すこと(他のタスクを実行状態にする)ことをいいます。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことです。タスクはコンピュータの頭脳である「CPU」が処理します。 生成されたタスクには次の3つの状態があります。 状態 説明 実行可能状態(READY) CPUの使用権が ...

2023/8/4

タスクのディスパッチとは

ディスパッチ タスクのディスパッチとは ディスパッチ(英:dispatch)とは、複数のタスクを同時に実行するマルチタスク(マルチプログラミング)に対応したOSの制御機能のひとつで、実行可能状態のタスクの中から次に実行すべきタスクを選択してCPUの使用権を割り当てることです。 そして、ディスパッチを行うプログラムをディスパッチャ(英:dispatcher)といいます。 タスクの状態遷移 タスクとは、コンピュータが処理する作業の最小単位のことです。コンピュータの頭脳である「CPU」がタスクを処理します。 生 ...

2023/8/4

【基本情報技術者試験】タスクスケジューリング

基本情報技術者試験や応用情報技術者試験の過去問では、タスクスケジューリングの方式についての問題が出題されています。 本記事では、タスクスケジューリングについて図解を利用して分かりやすく解説しています。 タスクスケジューリング タスクとは、コンピュータが処理する作業の最小単位のことです。 例えば、アプリケーションのアイコンをクリックすると、クリックしたアプリケーションを開くように命令します。このような命令により発生する処理の単位をタスクといいます。コンピュータの頭脳である「CPU」がこのタスクを処理します。 ...

2022/1/20

拡張スロットとは

拡張スロット 拡張スロット(英:extension slot)とは、コンピュータの機能を拡張する「拡張カード」を差し込むための差し込み口(長細い接続端子)のことです。 コンピュータの内部には、マザーボードという様々な部品が取り付けられている基盤が入っており、この基盤には拡張カードを差し込むための差し込み口があります。この拡張カードを差し込むための細長い接続端子のことを拡張スロットといいます。 拡張スロットのコネクタの形状にはいくつかの規格があります。 1988年に策定されたISAバスが事実上の標準だったが ...