Современные операционные системы

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

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

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

Важным вопросом для разработчика является размер единичного блока памяти. Чем меньше блок, тем больше битовая матрица. Но даже с таким небольшим единичным блоком памяти, размер которого равен 4 байта, для 32 бит памяти понадобится 1 бит матрицы. Память, состоящая из 32п бит, будет использовать п бит матрицы, таким образом, битовая матрица займет лишь 1/33 памяти.

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


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

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

Другим способом отслеживания памяти является ведение связанных списков распределенных и свободных сегментов памяти, где сегмент либо содержит процесс, либо является пустым пространством между двумя процессами. Участок памяти, изображенный на рис. 3.6, а, представлен на рис. 3.6, в как связанный список сегментов. Каждая запись в списке хранит обозначение, содержит сегмент «дыру» — hole (Н) или процесс —process (Р), адрес, с которого сегмент начинается, его длину и указатель на следующую запись.

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


Управление памятью  Алгоритм - первое подходящее

Алгоритм - первое подходящее

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

Алгоритм - первое подходящее читать полное описание.


Управление памятью  Наименее подходящее

Наименее подходящее

При попытке обойти проблему разбиения практически точно подходящих пространств памяти на память, отводимую под процесс, и на небольшие пустые пространства, можно прийти к идее алгоритма наименее подходящее, то есть к неизменному выбору самого большого подходящего пустого пространства, чтобы вновь образующееся пустое пространство было достаточно большим для дальнейшего использования. Моделирование показало, что применение алгоритма «наименее подходящее» также далеко не самая лучшая идея.

Наименее подходящее читать полное описание.


Управление памятью  Быстро искомое подходящее

Быстро искомое подходящее

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

Быстро искомое подходящее читать полное описание.