Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



При создании микропроцессора i80386 разработчики столкнулись с очень серь­езной проблемой в реализации страничного механизма. Дело в том, что микро­процессор имеет широкую шину адреса — 32 бита — и возникает вопрос о раз­биении всего адреса на поле страницы и поле индекса. Если большое количество битов адреса отвести под индекс, то страницы станут очень большими, что по­влечет большие потери и на фрагментацию, и на операции ввода/вывода, связан­ные с замещением страниц. Хотя количество страниц стало бы при этом меньше, и накладные расходы на их поддержание тоже уменьшились бы. Если же размер


страницы уменьшить, то большое поле номера страницы привело бы к появле­нию громадного количества возможных страниц и необходимо было либо вво­дить какие-то механизмы контроля за номером страницы (с тем, чтобы он не вы­ходил за размеры таблицы страниц), либо создавать эти таблицы максимально возможного размера. Разработчики пошли по пути, при котором размер страни­цы все же небольшой (он выбран равным 212 = 4096 = 4К), а поле номера страни­цы величиной в 20 битов, в свою очередь, разбивается на два поля и осуществля­ется двухэтапная (двухшаговая) страничная трансляция.

Для описания каждой страницы создается соответствующий дескриптор. Длина дескриптора выбрана равной 32 битам: 20 битов линейного адреса определяют номер страницы (по существу — ее адрес, поскольку добавление к нему (припи­сывание в качестве младших разрядов) 12 нулей приводит к определению началь­ного адреса страницы), а остальные биты разбиты на следующие поля, которые изображены на рис. 3.7. Как видно, три бита дескриптора зарезервированы для использования системными программистами при разработке подсистемы орга­низации виртуальной памяти. С этими битами микропроцессор сам не работает.

Прежде всего, микропроцессор анализирует самый младший бит дескриптора — бит присутствия, ибо если поле present равно нулю, то это означает отсутствие данной страницы в оперативной памяти, и такая ситуация влечет прерывание в работе процессора с передачей управления соответствующей программе, которая должна будет загрузить затребованную страницу. Бит dirty — «грязный» — пред­назначен для отметки, что данную страницу модифицировали и при замещении этого страничного кадра следующим ее необходимо сохранить во внешней памя­ти. Бит обращения (access) свидетельствует о том, что к данной таблице или странице осуществлялся доступ. Он используется для определения страницы, которая будет участвовать в замещении при использовании дисциплин LRU или LFU. Наконец, первый и второй биты используются для защиты памяти.

Старшие 10 битов линейного адреса определяют номер таблицы страниц (page table entry, РТЕ), из которой посредством вторых 10 битов линейного адреса вы­бирается соответствующий дескриптор виртуальной страницы. И уже из этого дескриптора выбирается номер физической страницы, если данная виртуальная страница отображена сейчас на оперативную память. Эта схема определения фи­зического адреса по линейному изображена на рис. 3.8.

Первая таблица, которую мы индексируем первыми (старшими) 10 битами ли­нейного адреса, названа таблицей каталогов таблиц страниц (page directory entry, PDE). Ее адрес в оперативной памяти определяется старшими 20 битами управ­ляющего регистра CR3.


Каждая из таблиц РВЕ и РТЕ состоит из 1024 элементов (2'°=1024). В свою оче­редь, каждый элемент (дескриптор страницы) имеет длину 4 байта (32 бита), по­этому размер этих таблиц как раз соответствует размеру страницы.

Оценим теперь эту двухшаговую схему трансляции с позиций расхода памяти. Каждый дескриптор описывает страницу размером 4 Кбайт. Следовательно, одна таблица страниц, содержащая 1024 дескриптора, описывает пространство памя­ти в 4 Мбайт. Если наша задача пользуется виртуальным адресным пространст­вом, например, в 50 Мбайт (предположим, что речь идет о некотором графическом редакторе, который обрабатывает изображение, состоящее из большого количе­ства пикселов1), то для описания этой памяти необходимо иметь 14 страниц, со­держащих таблицы РТЕ. Кроме этого, нам потребуется для этой задачи еще одна таблица PDE (тоже размером в одну страницу), в которой 14 дескрипторов бу­дут указывать на местонахождение упомянутых таблиц РТЕ. Остальные деск­рипторы PDE могут быть не задействованы. Итого, для описания 50 Мбайт адресного пространства задачи потребуется всего 15 страниц, то есть 60 Кбайт памяти, что можно считать приемлемым.

Если бы не был использован такой двухшаговый механизм трансляции, то потери памяти на описание адресного пространства могли бы составить 4(Кбайт) • 210 -- 4 (Мбайт)! Очевидно, что это уже неприемлемое решение.

Итак, микропроцессор для каждой задачи, для которой у него есть TSS, позволяет иметь таблицу PDE и некоторое количество РТЕ. Поскольку это дает возмож-

1 Напомним, что термин пиксел происходит от английского picture element (графический элемент). Множество пикселов образуют изображение.;• •.- '


ность адресоваться к любому байту из 232, а шина адреса как раз и позволяет ис­пользовать физическую память с таким объемом, то можно как бы отказаться от сегментного способа адресации. Другими словами, если считать, что задача состоит из одного единственного сегмента, который, в свою очередь, разбит на страницы, то фактически мы получаем только один страничный механизм, рабо­ты с виртуальной памятью. Этот подход получил название «плоской памяти». При использовании плоской модели памяти упрощается создание и операцион­ных систем, и систем программирования. Кроме этого, уменьшаются расходы памяти для поддержки системных информационных структур. Поэтому в абсо­лютном большинстве современных 32-разрядных ОС, создаваемых для микро­процессоров i80x86, используется плоская модель памяти.





Дата публикования: 2015-01-23; Прочитано: 343 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...