Следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память «кусками»? Должны ли сегменты программы, загруженные в память, находиться на одном месте в течение всего периода выполнения процесса или их можно время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память? Разные ОС по-разному отвечают на эти и другие базовые вопросы управления памятью.
На рис. 4.3 представлена схема алгоритмов распределения памяти.
Методы распределения памяти
|
С использованием внешней памяти
|
Без использования внешней памяти
|
![](https://konspekta.net/studopediaorg/baza3/3089900031951.files/image058.gif)
Сегментно-страничное
распределение
|
![](https://konspekta.net/studopediaorg/baza3/3089900031951.files/image058.gif)
Рис. 4.3. Классификация методов распределения памяти
Все алгоритмы разделены на два класса: алгоритмы, в которых используется перемещение сегментов процессов между оперативной памятью и диском, и алгоритмы, в которых внешняя память не привлекается.