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

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

Если память выделяется динамически, этим процессом должна управлять опера-
ционная система. Существует два способа учета использования памяти:

  • битовые массивы, иногда называемые битовыми картами,
  • и списки свободных участков.

При работе с битовым массивом память разделяется на единичные блоки раз-
мещения размером от нескольких слов до нескольких килобайт
. В битовой карте
каждому свободному блоку соответствует один бит, равный нулю, а каждому за-
нятому блоку — бит, установленный в 1 (или наоборот).

На рис. 4.7 показана часть памяти и соответствующий ей битовый массив. Черточками отмечены единичные
блоки памяти. Заштрихованные области @ в битовой карте) свободны.
Размер единичного блока представляет собой важный вопрос стадии разработ-
ки системы. Чем меньше единичный блок, тем больше потребуется битовый мас-
сив. Однако даже при маленьком единичном блоке, равном четырем байтам, для
32 битов памяти потребуется 1 бит в карте. Тогда память размером в 32*N будет ис-
пользовать N битов в карте, таким образом, битовая карта займет всего лишь 1/33
часть памяти
. Если выбираются большие единичные блоки, битовая карта стано-
вится меньше, но при этом может теряться существенная часть памяти в послед-
нем блоке каждого процесса (если размер процесса не кратен размеру единичного
блока).

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

этой схеме, заключается в том, что при решении переместить А-блочный процесс
в память модуль управления памяти должен найти в битовой карте серию из
k следующих друг за другом нулевых битов. Поиск серии заданной длины в бито-
вой карте является медленной операцией (так как искомая последовательность
битов может пересекать границы слов в битовом массиве). В этом состоит аргу-
мент против битовых карт.

454656

На картинке - битовый массив - это прямоугольник слева внизу - с нулями и единицами - как мы можем видеть из схемы -
в каждой строчке может быть размещена какая угодно часть памяти процесса (отображение в виде бит занятости блока) - половина -целый процесс или сразу два процесса .
Из чего можно заключить , что подобное разбиение массива на строки - чисто условно.

_____________________________________________
Источники(читать подробнее)=
из книги "современные операционные системы"
Ключевые слова и фразы(для поиска)=