オペレーティングシステム

メモリ割当てと断片化

連続領域の割当てと解放を繰り返すと、空きが散在します。合計は十分でも、大きな連続領域を確保できなくなる場合があります。

100KBメモリの外部断片化シミュレータ

1. 空き領域の選び方

2. サイズ指定または例を再生

0255075100 KB
空き合計100 KB
最大空き領域100 KB
空き領域数1個

色付きは使用中、斜線は空きです。使用中のブロックを押すと解放できます。

3つの割当て方式

First-fitは先頭から調べ、最初に収まる領域を使います。

Best-fitは収まる最小領域を使いますが、小さな使えない断片を生むことがあります。

Worst-fitは最大領域を使います。残りを大きく保つ一方、後の大きな要求に必要な領域を失う場合があります。

外部断片化

空きの合計は十分でも、連続していないため要求を満たせない状態です。空き合計と最大空き領域を比較してください。

コンパクションは使用中の領域を寄せて空きをまとめます。ページングは固定長単位を使い、連続配置を不要にします。現代のOSは主にページングを使います。