Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

29. Распределение физической памяти. (Лекция 7)

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

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

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

П одсистема управления памятью сравнивает объем памяти, требуемый для вновь поступившего процесса, с размерами свободных разделов и выбирает подходящий раздел, а затем загружает программу в один из разделов и настраивает адреса. Уже на этапе трансляции разработчик программы может задать раздел, в котором ее следует выполнять. Это позволяет сразу, без использования перемещающего загрузчика, получить машинный код, настроенный на конкретную область памяти. «+»: простота реализации. «–»: жесткость заданных размеров памяти для каждого процесса. Схема применялась в OS/360; сейчас не используется.

Преимущества: процессы гарантировано получают память

Проблемы: - внутренняя фрагментация – неполное использование раздела; - ограниченное число процессов

Процессам по мере необходимости выделяются фрагменты требуемого объема.

Преимущества: - число процессов может меняться.

- меняющиеся потребности каждого процесса удовлетворяются

Проблемы: Внешняя фрагментация – неполное использование всего объема ОЗУ.

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

С тратегии динамического распределения: «наиболее подходящий» (best fit); «первый подходящий» (first fit); «наихудший подходящий» (worst fit). Наибольшего подходящего дает много мелких фрагментов.

Для борьбы с внешней фрагментацией используется либо перемещение разделов (relocating), либо страничная логическая адресация.

Функции ОС:

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

- при создании процесса – анализ требований к памяти, просмотр таблицы свободных областей и выбор подходящего по размеру раздела по разным правилам (первый попавшийся раздел достаточного размера, раздел, имеющий наименьший достаточный размер, раздел, имеющий наибольший достаточный размер)

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

- после завершения процесса – корректировка таблиц свободных и занятых областей

«+»: больше гибкости

«–»: фрагментация памяти – наличие несмежных участков свободной памяти

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