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