主記憶をあらかじめ固定サイズの区画に分けてプログラムを割り当てる方式。
固定区画方式とは、主記憶(=メモリ)をあらかじめ決まったサイズの区画に分割し、各区画に1つのプログラムを割り当てる方式のことです。
身近な例で考えると、同じ大きさのロッカーが並んだコインロッカーに似ています。荷物(プログラム)が小さくても大きくても、1人1ロッカーを使います。ロッカーの大きさは決まっているので、小さな荷物を入れると中に隙間ができてしまいます。
上のツールで▶ボタンを押すと、主記憶を固定サイズの区画に分割し、プログラムを割り当てて、区画の中に無駄(内部断片化)が生まれる流れを順に確認できます。
固定区画方式では、プログラムを動かす前に、次の2つを先に決めて固定しておきます。
・区画のサイズ:1つの区画を何KBにするか
・区画の数:主記憶をいくつの区画に分けるか
区画ができたら、プログラムは「収まる区画」に入れるだけです。区画はもう動かさないので、「どこにどれだけ割り当てるか」を毎回計算する必要がなく、管理がとても単純です。これが固定区画方式の最大の長所です。
一方で、区画より大きいプログラムはその区画に入れられません。サイズが固定されているぶん、融通がきかない点に注意が必要です。上のツールのSTEP2で、主記憶が同じサイズの区画に区切られる様子を確認できます。
内部断片化(internal fragmentation)とは、プログラムが区画より小さいときに、区画の中にできる未使用の隙間のことです。
たとえば100KBの区画に60KBのプログラムを入れると、残りの100 − 60 = 40KBは区画の中に取り残されます。この40KBは空いているのに他のプログラムには使えません。区画はすでに「使用中」とみなされるからです。
プログラムが区画より小さいほど、この無駄は大きくなります。内部断片化は固定区画方式の欠点であり、メモリを効率よく使えない原因になります。上のツールのSTEP4とSTEP5で、各区画にできる余りと、その合計を確認できます。
結論:管理コストを極限まで下げるためです。プログラムを実行するたびに「どこに何KBを割り当てるか」を計算していると、その計算自体がコンピュータの負担になります。区画を先に固定しておけば、「空いている区画に入れるだけ」という単純な操作だけで管理が完結します。
身近な例で考えると、コインロッカーは鍵の番号と大きさが最初から決まっているので、係員が「この荷物はあそこへ」と計算する必要がありません。一方で「その場で棚を仕切り直す」方式(可変区画)は荷物にぴったり合わせられる反面、仕切りの場所を毎回決める手間がかかります。
・固定区画の長所:管理がシンプルで速い。プログラムが増えても処理が複雑にならない
・固定区画の短所:プログラムが区画より小さいと内部断片化が起きてメモリが無駄になる
固定区画方式はメモリの効率より管理のシンプルさを優先した設計です。コンピュータの性能が低かった時代に使われた方式で、現代では可変区画方式などより柔軟な方法が一般的になっています。固定・可変それぞれのトレードオフ(長所と短所の関係)を理解しておくことが大切です。