Лекция 5

Динамическое преобразование адресов. (DAT)

 

Это средство доступно программой, если процессор находится в режиме EC.

 

DAT дает возможность прерывать выполнение программы в любой момент времени, записывать ее всю или частично на внешнем носитель, а затем восстановить возможно ее в другом месте ОП, продолжить выполнение, при этом нет необходимости изменять что-либо в программе, т.е. возможность создания ОС виртуальной памяти, превышающей ОП.

 

В режиме EC в слово состоянии программы находится бит DAT. Когда он выключен, то исполнительные адреса трактуются как логические, иначе как реальные.

 

В своей работе средства DAT используют информацию из управляющих регистров (УР).

 

PS - page size - размер страницы (8-9-й биты)

PS= 0 1 - 2kb или 1 0 - 4kb; другие значений не допускаются

 

SS - sector size - сегментный размер (11-12-й биты)

SS= 0 0 - 64kb или 0 1 - 1Mb; другие значений не допускаются

 

Здесь адрес и длина таблицы сегментов.

 

 

Формат одной записи таблицы сегментов:

i - бит доступности данного сегмента

 

 

Форматы страниниц:

Адрес - адрес страницы в реальной ОП.

i - бит доступности данной страницы.

 

 

Схема преобразования адресов:

 

 

Процессор IBM/370 трактует логический адрес как совокупность индекса сегмента, индекса страницы и индекса байта.

 

DAT выполняется следующим образом:

 

1. из управляющего регистра УП1 извлекается таблица сегментов, при этом индекс сегмента логического адреса используется как номер строки таблицы сегментов

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

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

 

При выполнении DTA возможны следующие особые случаи:

 

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

2. особый случай использования страницы - индекс страницы превышает размер таблицы страниц и значение бита доступности указывает на недоступность страницы => программное прерывание.

 

Смена значения адреса таблицы сегментов в УР1 приводит к тому, что теже самые логические адреса будут преобразовываться уже в другие адреса. Поэтому говрят, что адрес аблицы сегментов определяет то адресное пространство, в котором выполняется программа.

 

Для каждого сегмента существует одна таблица страниц.

 

Буфер бытрой адресации. (TLD)

 

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

 

TLD во избежании ошибок должен быть очищен в следующих случаях:

 

1. смена значений в УР1

2. изменение содержимого в текущей таблице сегментов

3. смена содержимого в любой таблице страниц, на которой есть ссылка из текущей таблицы сегментов.

 

Если страница стала доступной, то TLD очищаеть не надо, а если стала не доступной - надо.