Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по Ос иС.doc
Скачиваний:
34
Добавлен:
19.08.2019
Размер:
4.46 Mб
Скачать
    1. Управление реальной памятью

Функции ОС по управлению памятью

Функциями ОС по управлению памятью в мультипрограммной системе являются:

  1. отслеживание свободной и занятой памяти;

  2. выделение памяти процессам и освобождение памяти по завершении процессов;

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

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

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

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

Новый процесс, поступивший на выполнение, помешается либо в общую очередь, либо в очередь к некоторому размеру. Эта схема представлена на рисунке 2.12, а и б.

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

  1. сравнивает объем памяти с размерами свободных разделов и выбирает подходящий раздел;

  2. осуществляет загрузку программы в один из разделов и настройку адресов.

Достоинство этого метода – простота реализации.

Недостаток – жесткость. Так как в каждом разделе может выполняться только один процесс, то уровень мультипрограммирования заранее ограничен числом разделов. Независимо от размера программы она будет занимать весь раздел.

Рисунок 2.12, а – Распределение памяти фиксированными разделами с общей очередью.

Рисунок 2.12, б - Распределение памяти фиксированными разделами с отдельными очередями.

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

В случае распределения памяти с разделами переменного размера память машины не делится заранее на разделы. В произвольный момент времени оперативная память пред­ставляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рисунке 2.13 показано состояние памяти в раз­личные моменты времени при использовании динамического распределения. Так, в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 процессами, причем процесс П4, завершаясь, покидает память. На осво­бодившееся от процесса П4 место загружается процесс П6, поступивший в мо­мент t3.

Функции операционной системы для реализации данного ме­тода управления памятью:

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

  2. при создании нового процесса — анализ требований к памяти, просмотр таб­лицы свободных областей и выбор раздела, размер которого достаточен для размещения кодов и данных нового процесса;

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

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

Рисунок 2.13 – Распределение памяти переменными разделами.

Дан­ный метод обладает гораздо большей гибкостью, но с этим у него есть серьезный недостаток – фрагментация памяти. Фрагментация — это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов).

Распределение памяти переменными разделами лежит в основе популярной в 60-70 годах ОС OS/360.

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

Сжатие может выполняться:

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

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

Рисунок 2.14 – Распределение памяти перемещаемыми разделами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]