Методы распределения памяти

Разные ОС по-разному распределяют память между процессами

Методы распределения памяти можно разделить на:

— без использования внешней памяти

— фиксированными разделами

— динамическими разделами

— перемещаемыми разделами

— с использованием внешней памяти

— страничное распределение

— сегментное распределение

— сегментно-страничное распределение

Фиксированные разделы

Наиболее простой и примитивный способ распределения памяти. Во время старта или загрузки системы память разбивается на разделы фиксированной величины, после чего границы разделов не сдвигаются.

Новый процесс поступает либо в общую очередь, либо в очередь конкретного раздела.

Система:

— сравнивает требуемый объем памяти с памятью раздела

— загружает программу в один из разделов и настраивает адреса

Недостаток системы:

— жесткость

— уровень мультипрограммирования заранее ограничен числом разделов

— невозможно выполнить прогу, которая больше самого большого раздела

Все же используется в системах реального времени, т.к. там детерминированность компенсирует недостаточную гибкость.

Динамические разделы

  • Память изначально свободна и не разбита на разделы
  • При поступлении процесса на исполнение ей выдается столько памяти, сколько нужно, если памяти не хватает, то процесс не исполняется
  • После завершения процесса память освобождается

ОС должна:

— вести таблицы свободных и занятых областей

— анализировать требования к памяти при создании нового процесса, подыскивать ему незанятую область

— загружать процесс в выделенный ему раздел, корректировать таблицы

— корректировать таблицы после завершения процесса

Плюсы:

— гибче

Минусы – фрагментация памяти.

Так организована память в ОС/360

Перемещаемые разделы

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

Ко всем функциям, исполняемым ОС в динамических разделах, добавляется сжатие, которое должно производиться:

— либо при каждом завершении процесса

— либо когда для нового процесса не хватает места.

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

Минусы:

— затраты времени

Рандомно подобранные статьи с сайта:

Лекция 9: Виртуальная память


Похожие статьи:

admin