Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

4.3.1. Управление памятью с помощью битовых матриц

Когда применяются битовые матрицы, память разделяют на единичные блоки фиксированного размера (от 4 байт до нескольких килобайт). В битовой матрице для каждого единичного блока заводится бит, который будет содержать нулевое значение при незанятом соответствующим единичном блоке и единичное значение при занятом. Битовая матрица и часть контролируемой ей памяти изображены на рис. 4.3.

Разработчик должен определиться с размером единичного блока. Чем меньше будет блок памяти, тем большая битовая матрица должна быть создана для управления такими блоками.

Рис

Рис. 4.3. Часть памяти, в которой находятся пять
процессов и есть три свободных пространства,
единичные блоки обозначены вертикальными штрихами:
а — заштрихованные области являются свободными;
б —битовая матрица; в — та же самая информация
в виде списка

Если выбирается больший объем для единичного блока памяти, то и соответствующая битовая матрица будет иметь меньший объем. Однако, когда последний блок процесса не кратен размеру единичного блока, то довольно существенный объем памяти будет использоваться неэффективно.

Использование битовой матрицы упрощает отслеживание слов памяти при ее фиксированном объеме. Проблемой битовых матриц и аргументом против их использования является то, что поиск диспетчером памяти в битовой матрице последовательности заданной длины нулевых битов для размещения некоторого процесса является довольно медленной операцией.

Предыдущий раздел Оглавление Следующий раздел