Материал: 6262

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

81

Рисунок 2.10 - Адресация программы с помощью страниц

Основная проблема адресации с помощью страниц - большой размер таблиц адресации, которые должны храниться в ОЗУ.

Чтобы частично устранить эту проблему, стали использовать двухуровневую схему страничной адресации, ставшую основой адресации 32-битных ЭВМ:

в ОЗУ постоянно находится только корневая таблица страниц, содержащая не более 1024 записи;

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

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

заполняется во время загрузки программы и удаляется после ее завершения. Общая схема такого взаимодействия показана на рисунке 2.11.

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

Чтобы разрешить эту проблему, стали использовать таблицу быстрой транс-ляции адресов или — буфер TLB.

TLB Translation Lookaside Buffer - ассоциативная кэш-память, в которую записывается реально используемая страница, перед тем как команды и данные будет использовать сам процессор.

82

Рисунок 2.11 - Двухуровневая схема страничной адресации Алгоритм использования TLB — прост:

когда процессор обращается к странице и ее она присутствует в TLB, то используется команды и данные, считанные из нее;

когда процессор обращается к странице и она отсутствует в TLB, возникает прерывание к соответствующей программе ядра ОС;

обработка прерываний осуществляется «Подсистемой управления памятью ОС», которая производит поиск нужной страницы в ОЗУ или на внешнем носителе, решает вопрос об удалении ненужной страницы и записи нужной, перезапускает команду процессора, вызвавшую прерывание по отсутствию страницы в TLB.

На рисунке 2.12 показана схема адресации страниц с использованием TLB.

Замечание

К сожалению, проблема управления страницами не решается так просто, например, для 64-разрядных ЭВМ создание таблицы страниц становится не реализуемым.

Чтобы теоретически закрыть изучаемую тему, рассмотрим комбинированный способ адресации.

83

Рисунок 2.12 — Схема адресации страниц с использованием TLB

2.4 Комбинированный способ адресации памяти

Преимущества адресации имеются у каждого способа:

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

страничная адресация памяти — устраняет проблемы фрагментации, пос-

кольку ОЗУ адресуется с помощью произвольного доступа, следовательно, свободную страницу ОЗУ можно найти в любом месте памяти.

Отсюда возникает идея смешанной (комбинированной) адресации, которая состоит в том, что:

отдельная программа (процесс) отображается в виде нескольких записей в общей таблице сегментов;

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

Общая схема такой адресации приведена на рисунке 2.13.

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

84

Рисунок 2.13 — Схема сегментно-страничной адресации памяти

При этом:

существенно уменьшается размер корневой таблицы, постоянно хранящейся в ОЗУ и как следствие ускоряется поиск в ней нужной страницы;

трехкомпонентная адресация (номер сегмента, номер страницы, смещение) требует аппаратной поддержки виртуализации памяти с помощью MMU, без которой она становится не эффективной;

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

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

На рисунке 2.14 показан пример такой зависимости, который стал поддерживаться процессорами компании Intel, начиная с архитектуры i386.

Здесь выделяются:

глобальная таблица дескрипторов (GDT), на которую должен указывать специальный регистр процессора — GDTR;

локальные таблицы дескрипторов (LDT), на которые должен указывать специальный регистр процессора — LDTR.

85

Рисунок 2.14 - Адресация памяти MS Windows на архитектуре i386

Глобальная дескрипторная таблица является единственной и контролизуется ядром ОС, адресуя сегменты процесса и значения регистра LDTR.

Локальные дескрипторные таблицы связаны с конкретными испольняемыми процессами и формируются при их запуске.

Указанная схема адресации, широко используется в ОС MS Windows, по крайней мере, начиная с Windows 2000, выполненной по технологии NT.

Замечание

В качестве указателей на GDT и LDT, используются 16-разрядные слова, в которых младшие три бита имеют специальное значение:

0-й и 1-й биты — уровень защиты (уровень привилегий) работающей задачи;

2-й бит используется для различения GDT и LDT.

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

Источник: https://studfile.net/preview/16438530/