Упрощенная схема виртуальной памяти на основе таблицы физических страниц
Таблица физических страниц строится для каждой программы. В ней для каждой математической таблицы указаны номера физических страниц оперативной или внешней памяти на магнитных дисках.
Таблицы физических страниц составляются для каждой задачи. В каждой строке таблицы физических страниц содержится номер страницы физической памяти (оперативной памяти или на магнитных дисках). Страницы, расположенные в оперативной памяти, отмечаются признаком доступности d = 0, а расположенные на магнитных дисках – d = 1.
Для привязки таблиц к задачам используется регистр базового адреса таблицы физических страниц (БА ТФС), индивидуальный для каждой задачи.
Процедура трансляции страниц имеет следующие этапы:
1. Вычисление адреса обращения к строке таблицы сложением номера страницы математического адреса с базовым адресом таблицы физических таблиц (БА ТФС).
2. Чтение по вычисленному адресу из таблицы физических страниц значения адреса физической памяти и бита доступности (d=0).
3. В случае доступности данных (d=0) – обращение по физическому адресу с учетом номера байта внутри страницы данных для записи или чтения в зависимости от кода операции.
4. В случае страничного промаха (d=1) – свопинг данных, коррекция таблицы и повтор обращения к данным.
Рассмотренная схема проста, использует адресную память, но имеет серьезные недостатки. Эти недостатки связаны с местом хранения таблиц.
В 32-разрядных ЭВМ максимальная емкость памяти может достигать величины 232 = 4 Гбайта, а количество математических страниц 220 = 1М. С учетом 20-разрядного адреса строки физического адреса и дополнительных управляющих разрядов строка должна содержать 4 байта, общая емкость памяти для хранения таблицы только одной программы составляет 224 = 4 Мбайта. Для первых ЭВМ, использовавших виртуальную память, это было значительной величиной, чтобы хранить таблицы десятков программ в процессоре или в оперативной памяти.
Для построения виртуальной памяти стали использовать довольно сложную систему виртуальной памяти с хранением таблиц физических страниц на магнитных дисках.
Каждая из задач может использовать весь объем адресного пространства сегмента (4Гбайт). Максимальное количество физических страниц (по 4 Кбайт) в полном сегменте составляет 1Мбайт. Каждая строчка таблицы физических страниц должна содержать 4 байта (20 бит номера физической страницы, бит доступности и дополнительная информация для меток разрешения модификации страницы и вычисления устаревших страниц). Таким образом, размер таблицы физических страниц только одного сегмента программы может составлять 4 Мбайт. Это было слишком много для размещения таблиц в процессоре или в оперативной памяти первых ЭВМ. По этой причине таблицы физических страниц хранятся в памяти на магнитных дисках, и их применение связано с разбиением таблиц на более мелкие участки (разделы) и с использованием операций ввода/вывода.
Таблицы физических страниц делятся на разделы (до 1024 разделаов по 1024 страницы в разделе).
В оперативной памяти размещаются только части таблиц. В минимальном варианте – каталог и по одному разделу таблицы физических страниц. Каталог – это таблица размещения разделов в памяти на магнитных дисках и их копий для выбранных в оперативную память страниц.
Таблица каждого раздела содержит 1024 строчек по четыре байта, т.е. занимает 4096 Кбайт (одну страницу виртуальной памяти). В строчках таблицы разделов фиксируются физические номера страниц раздела, признак доступности (размещение в оперативной памяти или памяти на магнитных дисках) и дополнительная информация. Признак доступности, равный нулю, означает расположение копии страницы в оперативной памяти и на магнитных дисках, единице – только в памяти на магнитных дисках (в области ввода).
Каталог разделов содержит 1024 строчки (по числу разделов математической памяти). В каждой строке каталога содержится базовый адрес таблицы физических страниц, признак доступности и дополнительная информация (модификации активности и т.д.). Признак доступности, равный нулю, означает расположение раздела таблицы физических страниц в оперативной памяти, единице – в памяти на магнитных дисках (в области ввода).
Одновременно в оперативной памяти должны находиться каталоги и таблицы физических разделов для всех задач. При переключении задач должны активизироваться каталоги и таблицы физических страниц новых задач. Для этого процессор содержит регистр базового адреса таблицы физических страниц БА ТФС. При каждом переключении задач в него записывается базовый адрес каталога новой задачи.
Вопросы и/или темы для самопроверки:
1. Проблемы переадресации программ.
2. Проблема свопинга.
3. Память единого уровня.
4. Страничная организация памяти.
5. Использование регистра базового адреса таблицы физических таблиц.
6. Страничный промах.
7. Основные биты строк TLB.
8. Алгоритм листания.
11 неделя. Лекция 11(2-е Тестирование и лекция)
Дата добавления: 2015-08-14; просмотров: 838;