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

Сегментная организация виртуальной памяти.

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

В настоящее время современные ЭВМ обеспечиваются множеством полностью независимых адресных пространств, называемых сегментами. Каждый сегмент содержит линейную последовательность адресов от 0 до некоторого максимума. Сегменты могут быть различной длины. Их размер может меняться во время выполнения. Поскольку каждый сегмент представляет собой отдельное адресное пространство, разные сегменты могут менять свои размеры независимо друг от друга.

Чтобы определить адрес такой памяти программы используют адрес, состоящий из двух частей – номера сегмента и адреса внутри сегмента. Максимальный размер сегмента определяется разрядностью виртуального адреса (для 32-х разрядного Pentium’а 2^32≈4Гб).

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

Преимущества:

  • Простота компоновки.

  • Легкость обеспечения доступа к различным сегментам во время выполнения программы.

  • Простота организации совместного использования фрагментов программы различным процессами.

На этапе создания процесса во время загрузки его образа в ОП ОС создает таблицу сегментов процесса, в которой указывает:

  • Базовый физический адрес начала сегмента в ОП;

  • Размер сегмента;

  • Правила доступа к сегменту;

  • Признаки модификации, присутствия, использования, разделения и защиты.

Недостатки:

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

  • Избыточность перемещаемых данных.

  • Внешняя фрагментация памяти.

Сегментно-страничная организация виртуальной памяти.

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

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

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

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

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

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