Понятие операционной системы; эволюция развития операционных систем; функции операционных систем и подходы к построению операционных систем



страница6/15
Дата14.04.2017
Размер0.56 Mb.
Просмотров4430
Скачиваний3
1   2   3   4   5   6   7   8   9   ...   15

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


Распределение памяти:

В однопрограммных ОС:

Непрерывное

Оверлейное

В мультипрограммных ОС:

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

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

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



Непрерывное распределение – это самая простая и распространенная схема, согласно которой вся память условно может быть разделена на три области:

Область, занимаемая ОС

Область, в которой размещается исполняемый процесс

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

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

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

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

(+)


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

Если логическое адресное пространство программы должно быть больше, чем свободная область памяти, или весь возможный объем ОП, то вся программа может быть разбита на главный и второстепенные сегменты, а в ОП одновременно могут находится только ее главная часть и один или несколько неперекрывающихся сегментов (структуры с перекрытием)

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

Поочередно можно загружать в память ветви А-В, А-С-D и А-С-Е программы



Мультипрограммные ОС

Для организации мультипрограммного режима необходимо обеспечить одновременное расположение в ОП нескольких задач (целиком или частями)

При решении этой задачи ОС должна учитывать целый ряд моментов:

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

Должны ли сегменты программы, загруженные в память, находится в одном месте в течении всего периода выполнения процесса или можно ее время от времени сдвигать

Что следует предпринять, если сегменты программы не помещаются в имеющуюся память





Распределение памяти фиксированными разделами

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

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

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



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

Сравнивает объем памяти, требуемый для вновь поступившего процесса, с размерами свободных разделов и выбирает подходящий раздел

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

(+): простота

(-):Существенные потери памяти от внутренней фрагментации

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

Применялся в ранних мультипрограммных ОС, сейчас – в ОСРВ за счет детерминированности вычислительного процесса и небольших затрат на реализацию



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

Чтобы уменьшить потери от внутренней фрагментации, целесообразно размещать в ОП задачи «плотно», одну за другой, выделяя ровно столько памяти, сколько задача потребует (распределение памяти динамическими разделами)

Обобщенный алгоритм:

Вся память свободна. Каждому вновь поступающему процессу выделяется вся необходимая память (если достаточный объем памяти отсутствует, то процесс не создается)

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

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

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

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

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

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

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

"первый попавшийся раздел достаточного размера"(first fit)

"раздел, имеющий наименьший достаточный размер"(best fit)

"раздел, имеющий наибольший достаточный размер"(worst fit)

(+)

Значительная гибкость



(-)

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



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

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



Дефрагментация может выполняться:

При каждом завершении задачи (меньше однократной вычислительной работы)

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

(+) более эффективное использование памяти

(-) требует значительных временных затрат



Задачи по управлению памятью

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

выделение и освобождение памяти процессам

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

возвращение процессов в оперативную память, когда в ней освобождается место

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

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

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

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

Возможны различные варианты перехода от символьных имен к физическим адресам.

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

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



  1. Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   15


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал