Управление основной памятью. Часть 1.

Основная память используется для размещения выполняемых программ и их данных.
Различают два вида основной памяти (рис. 3.12):

  1. реальная оперативная память; при этом основная память совпадает с оперативной;
  2. виртуальная память; при этом основная память моделируется на НМД. Используется странично-сегментная организация. Используемые ЦП страницы загружаются из виртуальной памяти в реальную, вытесняя другие страницы. Виртуальная память может намного превышать реальную.
Основная память в системе

Функции супервизора памяти. Управление основной памятью осуществляет супервизор памяти, являющийся компонентом управляющей программы.

Супервизор памяти управляет распределением основной памяти. В мультипрограммном режиме основная память используется большой совокупностью задач, принадлежащих системе и выполняемым в текущий момент заданиям. По этой причине память является ресурсом, подлежащим распределению.

Как правило, в операционных системах используется многоуровневое распределение основной памяти, при котором на верхнем уровне выделяются области основной памяти, подлежащие дальнейшему распределению. Распределение на самом нижнем уровне осуществляется динамически; на самом верхнем уровне может быть как статическим, так и динамическим.

Выбор того или иного принципа распределения памяти осуществляется исходя из его особенностей. Статический принцип распределения уменьшает до минимума временные системные издержки на распределение, однако не обеспечивает гибкости в распределении, что может привести к значительным издержкам памяти. Динамический принцип, наоборот, обеспечивает высокую гибкость распределения основной памяти и эффективность ее использования, но требует дополнительного времени на выполнение системных функций распределения.

Супервизор памяти выполняет следующие функции:

  1. учет свободных участков основной памяти (основа управления основной памятью);
  2. выделение участков памяти по запросам;
  3. освобождение участков памяти, выделенной ранее по запросу;
  4. борьба с фрагментацией памяти;
  5. многоуровневое распределение основной памяти;
  6. повышение уровня мультипрограммирования.