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

14. Сегментное распределение памяти

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

Обращение к элементам программы происходит по имени сегмента (порядковый номер), которому соответствует некоторый адрес, с которого данный сегмент начинается, и смещения относительно начала этого сегмента (прибавляется к адресу начала сегмента).

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

Вся информация о текущем размещении сегментов в памяти сводится в таблицу сегментов (таблица дескрипторов сегментов задачи), формируемую для каждого исполняющегося процесса. Если сегмент находится в ОП, то для него, бит присутствия P выставляется в 1.

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

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

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

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

  • FIFO (First In First Out) первый пришёл – первый ушёл

  • LRU (Least Recently Used ) не используемый дольше других

  • LFU (Least Frequently Used) используемый реже других

  • Random-случайный выбор сегмента

15. Страничное распределение памяти

Метод обладает значительно меньшей фрагментацией памяти.

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

Говорят, что ОП разбивается на физические страницы, а программа на виртуальные.

Где Nвс – номер виртуальной страницы ; Nфс – номер физической страницы

При обращении к виртуальной странице, не оказавшейся в данный момент в ОП, возникает прерывание, и управление передается диспетчеру памяти, который должен найти свободное место. Обычно предоставляется первая же свободная страница. Если свободной физической страницы нет, то диспетчер памяти по одной из вышеупомянутых дисциплин замещения (LRU, LFU, FIFO, случайный доступ) определит страницу, подлежащую расформированию или сохранению во внешней памяти. На ее месте он разместит новую виртуальную страницу, к которой было обращение из задачи, но которой не оказалось в ОП.

В Windows NT, для того, что бы избавиться от аппаратной зависимости, используется принцип FIFO.

+” – Минимальная фрагментация.

-” :

  • существенные накладные расходы по трансляции виртуальной памяти.

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