FE EXAM

固定区画方式(固定パーティション)

主記憶をあらかじめ固定サイズの区画に分けてプログラムを割り当てる方式。

INTERACTIVE VISUALIZATION
使用中
内部断片化
空き区画
フェーズ
idle
区画サイズ
100KB × 4
内部断片化 合計
シナリオ
ステップ1 / 5
STEP 1/5メモリ全体(割当て前)ここに400KBの主記憶があります。固定区画方式では、プログラムを割り当てる前に、あらかじめ区画の大きさと数を決めておきます。今回は「100KBの区画を4つ」と決めることにします。
主記憶(400KB)を 4 区画に固定分割0400KB空き区画1100KB空き区画2100KB空き区画3100KB空き区画4100KB
解説

📌
固定区画方式とは

同じ大きさの区画を先に作っておく区画1区画2区画3区画4すべて同じサイズ(固定)

固定区画方式とは、主記憶(=メモリ)をあらかじめ決まったサイズの区画に分割し、各区画に1つのプログラムを割り当てる方式のことです。

身近な例で考えると、同じ大きさのロッカーが並んだコインロッカーに似ています。荷物(プログラム)が小さくても大きくても、1人1ロッカーを使います。ロッカーの大きさは決まっているので、小さな荷物を入れると中に隙間ができてしまいます。

上のツールで▶ボタンを押すと、主記憶を固定サイズの区画に分割し、プログラムを割り当てて、区画の中に無駄(内部断片化)が生まれる流れを順に確認できます。

📐
区画分割の仕組み

固定区画方式では、プログラムを動かす前に、次の2つを先に決めて固定しておきます。
区画のサイズ:1つの区画を何KBにするか
区画の数:主記憶をいくつの区画に分けるか

区画ができたら、プログラムは「収まる区画」に入れるだけです。区画はもう動かさないので、「どこにどれだけ割り当てるか」を毎回計算する必要がなく、管理がとても単純です。これが固定区画方式の最大の長所です。

一方で、区画より大きいプログラムはその区画に入れられません。サイズが固定されているぶん、融通がきかない点に注意が必要です。上のツールのSTEP2で、主記憶が同じサイズの区画に区切られる様子を確認できます。

⚠️
内部断片化の発生

区画100KB に プログラム60KB を入れると…使用 60KB余り 40KBこの40KBが内部断片化

内部断片化(internal fragmentation)とは、プログラムが区画より小さいときに、区画の中にできる未使用の隙間のことです。

たとえば100KBの区画に60KBのプログラムを入れると、残りの100 − 60 = 40KBは区画の中に取り残されます。この40KBは空いているのに他のプログラムには使えません。区画はすでに「使用中」とみなされるからです。

プログラムが区画より小さいほど、この無駄は大きくなります。内部断片化は固定区画方式の欠点であり、メモリを効率よく使えない原因になります。上のツールのSTEP4とSTEP5で、各区画にできる余りと、その合計を確認できます。

💡
なぜあらかじめ固定サイズに区切るのか

固定区画管理シンプル/無駄が出やすい可変区画管理複雑/無駄が少ない

結論:管理コストを極限まで下げるためです。プログラムを実行するたびに「どこに何KBを割り当てるか」を計算していると、その計算自体がコンピュータの負担になります。区画を先に固定しておけば、「空いている区画に入れるだけ」という単純な操作だけで管理が完結します。

身近な例で考えると、コインロッカーは鍵の番号と大きさが最初から決まっているので、係員が「この荷物はあそこへ」と計算する必要がありません。一方で「その場で棚を仕切り直す」方式(可変区画)は荷物にぴったり合わせられる反面、仕切りの場所を毎回決める手間がかかります。
固定区画の長所:管理がシンプルで速い。プログラムが増えても処理が複雑にならない
固定区画の短所:プログラムが区画より小さいと内部断片化が起きてメモリが無駄になる

固定区画方式はメモリの効率より管理のシンプルさを優先した設計です。コンピュータの性能が低かった時代に使われた方式で、現代では可変区画方式などより柔軟な方法が一般的になっています。固定・可変それぞれのトレードオフ(長所と短所の関係)を理解しておくことが大切です。

練習問題

🎯
基本情報技術者 練習問題

Q1.固定区画方式の説明として最も適切なものはどれか。
A.プログラムが必要とするサイズちょうどにメモリを割り当てる
B.主記憶をあらかじめ決まったサイズの区画に分割し、各区画に1つのプログラムを割り当てる
C.使っていないプログラムを補助記憶に追い出す
D.プログラムを固定サイズのページに分けて出し入れする
Q2.固定区画方式で発生する内部断片化の説明として正しいものはどれか。
A.空き領域が小さく分断されて連続領域が足りなくなること
B.プログラムが区画より小さいとき、区画内に未使用領域が生じること
C.区画の数が足りなくなること
D.プログラムが補助記憶に追い出されること
Q3.100KBの区画に60KBのプログラムを割り当てたとき、その区画で生じる内部断片化はいくらか。
A.0KB
B.40KB
C.60KB
D.160KB

関連コンテンツ