Следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память «кусками»? Должны ли сегменты программы, загруженные в память, находиться на одном месте в течение всего периода выполнения процесса или можно ее время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память? Разные ОС по-разному отвечают на эти и другие базовые вопросы управления памятью.
На рис. 4. 3 представлена схема алгоритмов распределения памяти.
Методы распределения памяти
|
Без использования внешней памяти
|
С использованием внешней памяти
|
Сегментно-страничное
распределение
|
Рис. 4. 3. Классификация методов распределения памяти
Все алгоритмы разделены на два класса: алгоритмы, в которых используется перемещение сегментов процессов между оперативной памятью и диском, и алгоритмы, в которых внешняя память не привлекается.