Большинство стратегий управления памятью базируется на концепции локальности, суть которой заключается в том, что распределение запросов процессов на обращение к памяти имеет, как правило, неравномерный характер с высокой степенью локальной концентрации. Свойство локальности проявляется как во времени, так и в пространстве. Временная локальность, означающая, что к ячейкам памяти, к которым недавно производилось обращение, с большой вероятностью будет обращение в ближайшем будущем, обуславливается наличием следующих факторов: программных циклов, подпрограмм, стеков, переменных, используемых в качестве счетчиков. Пространственная локальность, означающая, что обращения к памяти, концентрируются таким образом, что в случае обращения к следующей ячейке памяти с большой вероятностью можно ожидать обращения к близлежащим ячейкам, обуславливается наличием следующих факторов: организацией данных в виде массивов; последовательным выполнением кода программы; тенденцией программистов размещать описания взаимосвязанных переменных поблизости друг от друга.
На основе заключения свойства локальности сформулирована теория рабочего множества. Рабочее множество – подмножество страниц, к которым процесс активно обращается. Для обеспечения эффективного выполнения программы необходимо, чтобы её рабочее множество находилось в первичной памяти. В противном случае может возникнуть режим чрезмерно интенсивной подкачки страниц. Во время работы процесса его рабочие множества динамически меняются. Иногда происходят резкие изменения. Выделение основной памяти при управлении памятью на основе рабочих множеств можно представить следующим образом:
Рабочие множества время
· Планирование на верхнем уровне. Средства этого уровня определяют, каким заданиям будет разрешено активно конкурировать за захват ресурсов системы. На этом уровне определяется какие задания будут допущены в систему. Вошедшие в систему задания становятся процессами.
· Планирование на промежуточном уровне. Средства этого уровня определяют, каким процессам будет разрешено состязаться за захват центрального процессора. Планировщик промежуточного уровня оперативно реагирует на колебания системной нагрузки приостанавливая и вновь активизируя процессы для достижения определённых скоростных характеристик.
· Планирование на нижнем уровне. Средства этого уровня определяют, какому из готовых к выполнению процессов будет предоставляться освободившийся ЦП. Планирование на нижнем уровне производится так называемым диспетчером, который работает с большой частотой и поэтому всегда должен располагаться в основной памяти.