Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
02.05.2014
Размер:
285.18 Кб
Скачать

5.3.2.3. Совместное использование страниц процессами

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

Обычно программы содержат процедуры и данные.

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

Неизменяемые процедуры называются реентерабельными или повторновходимыми.

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

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

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

5.3.3.1. Одноуровневая сегментная организация

В отличие от страниц сегменты могут иметь различные размеры. Виртуальный адрес

V = (s, d),

Где s - номер сегмента;

d - смещение внутри сегмента.

Схема отображения остается прежней.

Используя терминологию Intel, виртуальный адрес представляет собой вектор СЕЛЕКТОР:СМЕЩЕНИЕ, таблица отображения - это таблица дескрипторов; строка таблицы - дескриптор сегмента.

В общем случае дескриптор содержит следующие данные:

p

b

l

t

a

r

e

p - бит присутствия;

b - адрес сегмента в памяти, если загружен;

l - длина сегмента;

t - тип сегмента; (чтение, запись, код, данные)

a - бит доступа;

r - привилегии;

e - адрес во внешней памяти, если не загружен.

  1. Если сегмента нет в памяти, то вырабатывается прерывание по отсутствию сегмента.

  2. Если длина сегмента меньше величины смещения в виртуальном адресе, то вырабатывается прерывание по выходу за пределы сегмента.

  3. Если тип операции не соответствует типу сегмента, то вырабатывается прерывание по ошибке.

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

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

5.3.3.2. Комбинированная сегментно-страничная организация (вместе с таблицей процессов)

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

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

V = (s, p, d),

Где s - смещение в таблице сегментов процесса, указывающее на адрес таблицы страниц сегмента;

p - смещение в таблице страниц сегмента, указывающее на адрес страницы в памяти;

d - смещение от начала страницы.

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

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

5.3.4.1. Главные задачи управления виртуальной памятью

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

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

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

  3. Кроме того, система управления должна содержать набор сервисов для приложений, в частности средства разделения памяти. Это будет рассмотрено в следующем параграфе.

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

Соседние файлы в папке Шпоры по СПО