Организация и управление основной памятью вычислительной машины – один из самых важных факторов, определяющих построение операционных систем.
Организация памяти требует ответа на следующие вопросы:
? Будем ли мы помещать в основную память только одну программу пользователя или несколько программ одновременно?
? Если в основной памяти размещается несколько пользовательских программ сразу, будем ли мы предоставлять каждой из них одинаковое количество ячеек или разобьем основную память на части (разделы) различных размеров?
? Будем ли мы разбивать основную память жестким образом, когда разделы определяются на достаточно длительные периоды времени, либо предусмотрим более динамическое разбиение, позволяющее вычислительной машине быстро реагировать на изменение потребностей программ пользователя в ресурсах?
? Будем ли мы требовать такого построения программ пользователя, чтобы они выполнялись только в конкретном разделе, либо предусмотрим возможность выполнения программ с занятием любых подходящих для них разделов?
? Будем ли мы требовать, чтобы каждая программа помещалась в одном напрерывном, сплошном блоке ячеек памяти, либо допустим возможность разбиения программ на отдельные блоки, размещаемые в любых свободных участках (дырах) основной памяти.?
Существуют ОС, построенные с ориентацией на каждую из указанных схем.
Независимо от того, какую схему организации памяти мы примем, необходимо решить, какие стратегии следует применять для достижения оптимальных характеристик. Для этого надо решить следующие вопросы:
1.Когда мы должны помещать новую программу в память? Будем ли мы помещать ее когда система специально попросит об этом, либо будем пытаться предупреждать запросы системы.
2.В какое место основной памяти мы будем помещать очередную программу дял выполнения? Будем ли размещать программы как можно более плотно с занятием имеющихся свободных участков, чтобы свести к минимуму потери памяти, либо будем стремиться к возможно более быстрому размещению программ, чтобы свести к минимуму потери машинного времени.
3.Каким образом помещать новую программу в основную память, если она занята целиком? Замещать программы которые находятся в памяти дольше других, или программы, используемые наименее часто, или те, которые дольше всего не использовались.
Существуют системы, ориентированные на использование каждой из этих стратегий управления памятью.