Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСИ.docx
Скачиваний:
14
Добавлен:
29.10.2018
Размер:
434.23 Кб
Скачать

12. Управление памятью: задачи управления, типы адресации

Задачи управления:

  • Отслеживание свободной и занятой памяти

  • Выделение памяти процессам и ее освобождения после их завершения

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

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

  • Динамическое распределение и перераспределение памяти после ее первоначального выделения процессам.

  • Защита памяти: защита от записи или чтения данных данных выполняемым процессом у другого процесса.

Типы адресации:

НЕ ОТОБРАНИЕ, А ОТОБРАЖЕНИЕ

Между этими этапами, обращения к памяти имеют форму виртуального адреса.

Виртуальное адресное пространство (виртуальная память) – множество всех допустимых значений виртуального адреса для некоторой программы. Зависит от архитектуры и системы программирования, а не от объема реальной физ. памяти.

Для перехода от символьных имен к физическим адресам существует несколько вариантов:

  • Тождественность виртуального адресного пространства исходному логическому пространству имен – отображение проводит ОС с использованием таблицы символьных имен.

  • Полная тождественность физической памяти виртуальному адресному пространству – т.е. генерируется абсолютно двоичная программа, которая может работать только при соответствии физических и виртуальных адресов. Некоторые программные модули должны быть абсолютно двоичными (программы загрузки ОС и пр.)

  • Прочие промежуточные варианты.

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

Распределение памяти в однопрограммных ОС:

  • Непрерывное распределение – самая простая и распространенная схема, согласно которой память делится на три части:

  1. Область, занимаемая ОС (ОС+ необходимые программам модули)

  2. Область, в которой находится активный процесс

  3. Свободная область памяти

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

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

«-» - Потери процессорного времени, пока задача ожидает завершения ввода-вывода.

Потери ОП, тк. не каждая задача занимает всю ОП.

  • Оверлейное распределение

Используется для создания программ, логическое адресное пространство которой должно быть больше чем свободная область памяти или весь объем ОП.

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

Не выполняющиеся сегменты во внешней памяти.

Пример программы с перекрытием, в данном случае, в память можно загружать ветви A-B, A-C-D, A-C-E.

Распределение памяти в мультипрограммных ОС:

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

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

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

«-» - Существенные потери при внутренней фрагментации.

  • Распределение динамическими разделами

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

* На освободившееся от процесса П4 место загружается процесс П6

Задачи ОС:

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

    • При поступлении новой задачи – анализ запроса, поиск по таблицам достаточной свободной области для размещения задачи.

    • Загрузка задачи в раздел и соотв. Корректировка таблиц свободных и занятых областей.

    • После завершения задачи – корректировка таблиц свободных и занятых областей.

«-» - Существенные потери при внутренней фрагментации.

Выбор раздела для вновь поступившей задачи может осуществляться по разным правилам:

  1. Первый попавшийся достаточного раздела

  2. Раздел имеющий наименьший достаточный размер

  3. Раздел имеющий наибольший достаточный размер

  • Распределение перемещаемыми разделами

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

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

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