Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекциии ЭВМ Трусфус.doc
Скачиваний:
32
Добавлен:
12.03.2015
Размер:
1.59 Mб
Скачать

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

8.3.1. Страничная организация памяти

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

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

В МП IA-32 размер страницы выбран равным 212 = 4096 байт (4 Кб).

При этом старшие 20 разрядов адреса определяют номер страницы, а младшие 12 разрядов – номер байта в странице. Адресация информации на магнитных дисках имеет свои особенности. Минимальным блоком информации является сектор (на круговой дорожке) в 512 байт. Секторы объединяются в кластеры. Размер кластера зависит от системы разметки. Чаще всего используются кластеры размером в 4 Кб, т.е. равные странице оперативной памяти. В магнитных дисках используется файловая структура поиска. Для поиска информации на дисках имеется специальная FAT-таблица (File Allocation Table – таблица размещения файлов), в которой записаны имена файлов и список адресов расположения последовательностей кластеров на дорожках диска. Диски читаются не отдельными кластерами в произвольном порядке, а последовательно от начального кластера в файле до последнего. Но для организации виртуальной памяти требуется чтение страниц в произвольном порядке.

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

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

  • на основе таблицы математических страниц,

  • на основе таблицы физических страниц.

Вопросы для самопроверки:

1. Страничная организация памяти.

2. Особенности адресации данных в накопителях на магнитных дисках.

3. Область ввода в накопителях на магнитных дисках.

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

8.3.2. Виртуальная память на основе таблицы математических страниц

Схема построения виртуальной памяти на основе таблицы математических страниц представлена на рис. 8.3. Это один из первых вариантов виртуальной памяти. Она была использована в ЭВМ "Атлас" (Англия).

На рис. 8.3. использованы обозначения:

ОП – страничная оперативная память, разбитая на страницы от 0 до m.

МП А – программа А, разбитая на страницы.

МП В – программа В, разбитая на страницы,

НМД – дисковая память, поддерживающая страничную структуру данных.

Изначально, программы А и В хранятся на магнитных дисках. При активизации этих программ, часть страниц по мере выполнения программы, переписывается в оперативную память.

Размещение страниц программ фиксируется в таблице математических страниц. На рис. 8.3 нулевая и вторая страницы программы А размещены, соответственно, в нулевой и первой странице оперативной памяти, а нулевая и первая страница программы В, соответственно в 3 и 2 странице.

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

Процедура переадресации программ производится следующим образом.

При обращении к памяти номер математической страницы из регистра математического адреса (Рег.МА) поступает в таблицу математических страниц. Таблица математических страниц строится на основе ассоциативной памяти. Входной адрес (из Рег.МА) параллельно сравнивается с содержимым всех строчек. Для представленного на рис. 8.3 примера совпадение фиксируется для первой и третий строчки, т.е. для всех совпадающих значений входного и записанных номеров.

Одновременно со сравнением номеров производится сравнение бита доступности (d). Выбирается строка с d=0.

Порядковый номер выбранной строки определяет номер страницы в оперативной (физической) памяти. Формирование этого номера реализуется шифратором.

Адрес обращения формируется на регистре физического адреса (Рег. ФА на рис. 8.3.) контрактацией номера страницы с номером байта в странице.

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

Страничный промах является стартовым сигналом свопинга с использованием прерывания (прерывания по страничному промаху).

Процедура свопинга

В таблице математических страниц всегда оставляется свободная строчка. В случае страничного промаха, в программе прерывания предусмотрена процедура переписи этой страницы из памяти на магнитных дисках (области ввода) в свободную область оперативной памяти. Эта процедура, в лучшем случае, по времени равняется одному обороту диска. В это время процессор определяет страницу-кандидата на удаление из оперативной памяти (устаревшую страницу). При этом используются различные алгоритмы определения устаревшей страницы.

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

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

Рассмотренная система виртуальной памяти является полной. Она выполняет функции переадресации (реализует независимость подготовки программ) и свопинга (организации памяти единого уровня).

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

Преимуществом этой системы виртуальной памяти является малый размер таблицы.

Вопросы для самопроверки:

1. Содержимое страниц таблицы математических страниц.

2. Бит доступности.

3. Тип адресации таблиц математических страниц.

4. Бит доступности в таблицах математических страниц.

5. Определение номера физической страницы.

6. Определение страничного промаха.

7. Процедура свопинга.

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