Основная физическая память в системах с процессором Pentium обычно содержит ограниченное число 4Кбайтных страниц, которые чаще называют страничными кадрами (page frame). Нетрудно заметить, что в любой момент времени в физической памяти находится только часть страниц виртуальной памяти. Для каждой страницы операционная система вырабатывает бит присутствия в основной памяти Р и бит регистрации обращения А. В случае обращения к странице, отсутствующей в основной памяти, процессор формирует особый случай неприсутствия страницы и передает управление операционной системе, которая должна считать с диска отсутствующую страницу, после чего процессор выполняет команду повторно. Так как размер страниц фиксирован, любую виртуальную страницу можно загрузить в любой страничный кадр физической памяти. Именно этим и объясняется широкое применение страничной организации для систем виртуальной памяти.
При включенном механизме страничной адресации прикладная программа не участвует в процессе преобразования линейного адреса в физический. Процессор автоматически формирует особый случай неприсутствия страницы, когда программа обращается к операнду, размещенному на странице, отсутствующей в основной физической памяти. При обработке этого особого случая ОС загружает затребованную страницу из внешней памяти в основную. Таким образом, трансляция линейного адреса в физический осуществляется на более низком и прозрачном для программ уровне.
При отображении страницы из линейного адресного пространства на страницу в физической памяти устройство страничного преобразования заменяет старшие 20 бит линейного адреса (номер виртуальной страницы) другим 20-битным значением, соответствующим номеру физической страницы в памяти. Младшие 12 бит линейного адреса, определяющие положение байта внутри страницы, сохраняются неизменными в формируемом физическом адресе. Для управления механизмом страничного разделения памяти, кроме аппаратных средств процессора (блока управления страницами), требуется специальная системная память с адресами соответствия. В 32-разрядных процессорах 80х86 реализовано гибкое двухэтапное преобразование старших 20 бит линейного адреса в номер страницы физической памяти с искомым операндом.
В связи с тем, что трансляция страниц осуществляется без участия программ, основные функции управления страничной организацией памяти реализуются операционной системой. Помимо свопинга (обмена страницами между основной и вторичной памятью) и поддержки защиты страниц, операционная система должна выделять в памяти две системные области, содержимое которых используется для реализации механизма страничного разделения памяти. Первая емкостью 4 Кбайта (одна страница) отводится для каталога разделов страниц. Вторая системная область емкостью до 1024 страниц предназначается для хранения разделов страниц, каждый из которых представляет собой таблицу страниц с 1024 базовыми адресами страниц с физическими операндами. Элементами (строками) системных таблиц являются 4-байтные дескрипторы, содержащие базовые адреса и другие атрибуты, относящиеся к адресуемым страницам.
Дескрипторы системных таблиц обоих уровней имеют одинаковый формат, представленный на рис. Кроме 20-разрядного базового адреса страницы с соответствующим разделом или физическим операндом, каждый дескриптор включает набор трибутов, с помощью которых реализуется дополнительный контроль и защита при доступе к операндам страницы.
31 12 11 9 8 7 6 5 4 3 2 1 0
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.