Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 4 МП ЭВС.doc
Скачиваний:
35
Добавлен:
06.12.2018
Размер:
683.01 Кб
Скачать
  1. Страничная и сегментная организация памяти. Преобразование адресов в защищенном режиме

В защищенном режиме работы микропроцессора линейный адрес формируется по схеме:

Рисунок 4.8.6 – Схема формирования физического адреса в защищенном режиме работы микропроцессора (сегментная трансляция)

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

Защита памяти на основе сегментации не позволяет:

  1. использовать сегменты не по назначению,

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

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

Механизм сегментации обеспечивает хорошую защиту, но не очень удобен для реализации свопинга. Неудобство заключается в том, что различные сегменты могут иметь различную длину. Этого можно избежать, если механизм свопинга (подкачки) реализовать на основе страничного преобразования. Особенностью этого преобразования является то, что микропроцессор в этом случае оперирует с блоками физической памяти равной длины – страницами. Виртуальное адресное пространство делится на части одинакового фиксированного размера, называемые виртуальными страницами. Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами. Типичный размер страницы составляет 4 Кбайт.

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

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

  • каталоги таблиц,

  • таблицы страниц (страничные таблицы).

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

страничная таблица n-ой программы

физическая память

виртуальная память n-ой программы

тип памяти

номера физич. страниц

 

0

 

0

 

1

 

1

0

 

ОП

5

 

2

 

2

1

 

ОП

0

 

3

 

3

2

 

ОП

7

 

4

 

4

3

 

ВЗУ

7

 

5

 

5

4

 

ВЗУ

10

 

6

 

6

5

 

ОП

8

 

7

 

7

6

 

ОП

9

 

8

 

8

 

9

 

9

 

10

 

10

 

11

 

11

 

12

 

12

 

13

 

13

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

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

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

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

Физический адрес также может быть представлен в виде пары:

  • номер физической страницы,

  • смещение в пределах физической страницы.

Рисунок 4.8.7 – Преобразование виртуального адреса в физический при страничной организации памяти

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

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

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

  3. к номеру физической страницы присоединяется смещение.

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

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

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

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

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

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

Процесс страничного преобразования адреса представлен на рисунке:

31 22

21 12

11 0

Каталог

Таблица

Смещение

линейный адрес

Регистр управления МП

Физическая память

31 0

4 К

4 К

4 К

4 К

4 К

4 К


каталог таблиц

31 0

 

 

 

 

 

 

 

 

 

 


таблица страниц

31 0

 

 

 

 

 

 

 

 

 

 


Рисунок 4.8.8 – Схема формирования физического адреса в защищенном режиме работы микропроцессора (страничная трансляция)

В процессе страничной трансляции адресов линейный адрес разбивается на три части. Старшие 10 бит линейного адреса являются индексом элемента из каталога таблиц. По этому элементу определяется физический адрес таблицы страниц. Биты 21-12 линейного адреса выбирают элемент из таблицы страниц, который определяет физический адрес страницы. Младшие 12 бит линейного адреса определяют смещение от начала страницы.

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