ВМ и К. Лекция № 7.1.

advertisement
1
ВМ и К. Лекция № 8. Реферат.
Средства управления системой.
Средства управления системой предназначены для:
 переключения состояний системы;
 защиты программ от взаимного влияния;
 запуска определённых операций посредством внешнего вмешательства;
 обеспечения удобства работы с системой и расширения возможностей программирования.
1. Слово состояния системы.
Информация, определяющая состояние процессора и его действия, содержится в
слове состояния программы (ССП) и управляющих регистрах. Дополнительная информация находится в ячейках основной памяти, имеющих младшие адреса.
Благодаря наличию состояния “супервизор”, а также и тому, что выполнение
определённых команд, изменяющих содержимое ССП и управляющих регистров разрешается только в этом состоянии, имеется возможность исключения несанкционированных, преднамеренных или случайных изменений системы.
В системе IBM 370 используются три пары взаимно исключающих состояний
системы: 1) ожидание /счёт; 2) задача /супервизор; 3) стоп /работа.
Эти состояния различаются характером влияния на работу процессора.
Состояние ожидание /счёт. В состоянии счёт (бит14 ССП=0) происходит выборка и выполнение команд обычным образом. В состоянии ожидание
(14битССП=1) команды не обрабатываются, процессор доступен для прерывания,
если пребывание от данного источника не запрещено.
Состояние задача /супервизор. В состоянии супервизор (бит15 ССП=0) разрешается выполнение всех команд. В состоянии задача (бит15 ССП=1) допустимыми
являются только те команды, выполнение которых не может повлиять на целостность
системы , которые не связаны с функциями технического обслуживания оборудования и не зависят от типа модели.
Множество команд не доступных в состоянии задача (привилегированных)
включает команды изменения и проверки: ключей памяти; полей управления системой в ССП и управляющих регистрах; средств отсчёта времени; префиксации;
связи между нескольким процессорами; ввода вывода.
Появление привилегированной команды в состоянии задача вызывает программное прерывание (особый случай по привилегированной операции).
Состояние стоп /работа. В состоянии стоп команды не выполняются и прерывания ( кроме прерывания повторного пуска от команды сигнал процессору) не
обрабатываются. В состоянии работа осуществляется выполнение команд и обработка прерываний под управляющим воздействием бита ожидания и битов маски, а
также режима выполнения команд, задаваемого с пульта системы.
2
Переход из состояния стоп в состояние работа или обратно может быть выполнен посредством ручного вмешательства, или по команде сигнал процессору.
В IBM 370 предусмотрены основной (бит12 ССП=0) и расширенный (бит12
ССП=1) режимы управления. В Таблице 1 приведено распределение полей ССП, полностью определяющее состояние технических средств ЭВМ в текущий момент времени.
Таблица 1.
Название полей ССП
Разряды ССП
ВС
ЕС
Маска каналов 0-5
0-5
*
Маска ввода-вывода
6
6
Маска внешних прерываний
7
7
Ключи защиты
8-11
8-11
Режим управления
12
12
Маска прерывания по контролю
13
13
Состояние ожидания
14
14
Состояние задача
15
15
Код прерывания
16-32
**
Код длины команды
32-33
**
Признак результата
34-35
18-19
Маска программных прерываний
36-39
20-23
Адрес команды
40-63
40-63
* - маска каналов хранится в управляющем регистре 2.
** - коды прерываний и длина команд хранятся в постоянно распределённой области памяти.
Если биты маски равны нулю, то соответствующие прерывания блокируются.
Ключи защиты (биты 8-11) предназначены для предотвращения взаимного влияния выполняемых в мультипрограммном режиме программ. Этот ключ сравнивается
с ключём памяти каждый раз, когда данные записываются или читаются (если есть
защита по выборке).
Биты 16-31 старого ССП, запоминаемого во время программных прерываний,
прерываний по обращению к супервизору, внешних прерываний, или прерываний
ввода-вывода, определяют причину прерывания. Когда вводится новое ССП содержимое этого поля во внимание не принимается.
Код длины команды (биты 32-33) Либо указывает длину команды, которая выполнялась последней перед тем как произошло программное прерывание или прерывание при обращении к супервизору, либо указывает длину команды переход с воз-
3
вратом. Когда вводится новое ССП содержимое этого поля во внимание не принимается.
Биты 34-35 содержат код признака результата.
Маска программы (биты36-39) маскируют особые случаи при выполнении программы:

36 - переполнение в операции с фиксированной точкой;

37 - переполнение в десятичной операции;

38 - исчезновение порядка;

39 - потеря значимости.
Адрес команды (40-63) определяет местонахождение крайнего левого байта следующей команды.
2. Управляющие регистры предназначены для хранения дополнительной информации, расширяющей ССП. Загрузка информации и запись содержимого в ОП
выполняется по командам загрузка управления и запись в память управления.
Управляющий регистр 0 включает поля управления режимом бокового мультиплексирования для каналов ввода вывода (разряд 0), управления запретом установки
маски системы (разряд 1).
Средства организации многопроцессорных систем используют поле управления
синхронизации часов (разряд2 рег.0), маски оповещения о сбое, электронного сигнала, сигнала внешнего вызова и контроля синхронизации часов - разряды2, 16-19 рег.
0.
Средства динамической переадресации используют поле управления размером
страниц и размером сегментов - разряды 8,9,11 рег. 0, а также поля длины таблицы
сегментов и адреса таблицы сегментов - разряды 0-7, 8-25 рег. 1.
Маска каналов в режиме ЕС находится в рег. 2 (разряды 0-31) Управляющий регистр 8 в раз. 16-32 содержит маски монитора. Средства регистрации программных
событий используют рег. 9,10,11.
Средства обработки машинных ошибок и средств восстановления используют
рег. 14,15.
3. Средства монитора необходимы для сбора статистических данных о ходе
выполнения программ и анализа эффективности работы процессора. С помощью этих
средств можно фиксировать время выполнения и частоты использования программ.
Обеспечение мониторных программ (сокращённо монитора) состоит в том, что
предусматривается возможность передачи управления программе, осуществляющей
определенные управляющие функции при достижении в выполняемой программе некоторых выделенных точек. Такими точками являются команды обращение к монитору, вставленные в программу. Выполнение этой команды вызывает программное
прерывание обращения к монитору при условии, что для класса монитора заданного
в команде, прерывание разрешено. Во время прерывания класс и код монитора записываются в память и в дальнейшем используются монитором.
Обеспечение мониторных программ выполняется с помощью команды обращение к монитору (имеет формат SI), в которой задаётся (в поле команды I2) один из
4
16 классов монитора и 16 масок монитора, находящихся в управляющем регистре.
Каждому классу соответствует 1 бит маски. Выполнение команды вызывает программное прерывание, если бит маски монитора для класса, заданного в команде, равен 1. Класс монитора выполняет роль кода прерывания, определяющего функцию,
которую требуется выполнить в пределах каждого класса может быть использована
24- разрядная адресация (поля команды B1 и D1), определяемая кодом монитора. Код
монитора используется мониторной программой.
4. Средства регистрации программных событий предназначены для облегчения отладки программ. Регистрация программных событий осуществляется с помощью механизма программных прерываний. Средства оповещают программу, когда происходят следующие события:

успешное выполнение команды перехода;

изменение содержимого заданных общих регистров;

выборка команды из заданной области памяти;

изменение содержимого заданной области памяти.
Самой программой определяются ситуации, рассматриваемые как события, причем можно по выбору задавать одно событие или более, которые подлежат регистрации. Информация, относящаяся к программному событию, предоставляется программе с помощью программного прерывания, причина которого определяется по коду
прерывания.
5. Средства отсчёта времени включают часы астрономического времени,
таймер, компаратор, интервальный таймер. Часы астрономического времени работают во всех состояниях процессора. Работа прекращается только тогда, когда отключено их питание или они находятся в состоянии стоп. Они представляют собой
двоичный счётчик (52 разряда).
Состояние стоп устанавливается перед тем, как их содержимое требуется изменить командой выставить часы, по которой текущее содержимое счётчика замещается
операндом команды. Переход из состояния стоп, и наоборот, определяется разрядом
2 управляющего регистра 0. Часы будут находится в состоянии стоп пока разряд 2
упр. рег. =1. Состояние изменится по команде выставить часы.
Показания часов астрономического времени записываются в ОП по команде запись в память показания часов.
Если необходимо вызвать внешнее прерывание при определённом показании часов астрономического времени, то используют компаратор. Командой установить
компаратор в него записывается значение, которое постоянно сравнивается со значением астрономических часов, в результате совпадения формируется сигнал прерывания.
Содержимое компаратора записывается в ОП по команде запись в память значения компаратора.
Таймер предназначен для задания определённого интервала времени и сигнализации его окончания с помощью прерывания. Таймер представляет собой двоичный
5
счетчик такого же формата как часы астрономического времени т.е. 52 разряда. Он
отличается от счетчика астрономического времени тем, что единица не прибавляется,
а вычитается из 5I разряда. Нулевой разряд рассматривается как знак числа с фиксированной запятой. Если нулевой разряд принимает значение "1" (отрицательное число) вырабатывается прерывание.
Таймер и астрономические часы синхронизируются. Когда процессор в состоянии
СТОП таймер не изменяет своё состояние. Показания таймера записываются в ОП по
команде запись в память значения таймера. Для изменения показания самого таймера
используется команда установить таймер процессора.
Интервальный таймер может выполнять при соответствующей программной поддержке, как функцию часов текущего времени, так и функцию задания временных
интервалов. Он расположен в ячейке 80 ОП. 32- разрядное число обрабатывается как
число с фиксированной запятой со знаком. Прерывание возникает когда это число
становится отрицательно. Показания интервального таймера изменяются вычитанием
с частотой 300 гц в промежутках между выполнением команд.
6. Динамическое преобразование адресов.
Динамическое преобразование адресов, или динамическая переадресация, дает
возможность прерывать выполнение программы в любой момент времени, записывать программу и относящиеся к ней данные на внешний носитель, например, в запоминающее устройство прямого доступа, а спустя некоторое время восстанавливать
программу и ее данные в другой Области основной памяти с тем, чтобы продолжить
ее выполнение. Между основной и внешней памятью программа и ее данные могут
передаваться по частям и восстанавливаться в тот момент, когда эти части требуются
для выполнения и процессор пытается осуществить обращение к ним. При этом нет
необходимости изменять или проверять саму программу или ее данные; программист
не должен соблюдать какие-либо особые соглашения, касающиеся переместимости
программ, ход же выполнения программы не нарушается, если не считать некоторого
его замедления.
Динамическому преобразованию подвергаются так называемые логические адреса, т. е. адреса, которые полностью определены кодом программы и могут быть учтены при ее выполнении. При обращении к памяти логические адреса с помощью таблиц переадресации динамически преобразуются в реальный. Адреса образуют группы, называемые страницами. Адреса, относящиеся к одной странице, подвергаются
одному и тому же численному преобразованию.
Динамическая переадресация в сочетании с соответствующим программным
обеспечением в рамках операционной системы может быть использована для имитации основной памяти, имеющей размер, больший, чем фактическая основная память
данной вычислительной установки. Эта мнимая основная память называется виртуальной памятью, а логические адреса, которые используются как адреса областей в
виртуальной памяти, называются виртуальными адресами. Виртуальная память, в которой хранится информация пользователя, может значительно превосходить по размеру реальную основную память вычислительной установки и обычно помещается на
внешнем носителе. В каждый момент времени в реальной памяти могут находиться
только те страницы, к которым недавно выполнялось обращение. В том случае, когда
пользователь обращается к страницам своей виртуальной памяти, не находящимся в
6
реальной основной памяти, последние заносятся в эту основную память, замещая те
страницы, в которых предположительно ощущается меньшая необходимость. Операционная система выполняет такой обмен страницами без ведома пользователя.
При обновлении содержимого основной памяти новой информацией с внешнего
носителя приходится решать, содержимое какой области следует заменить и нужно
ли это содержимое записывать, и сохранять на внешнем носителе. Это решение принимается на основе анализа бита обращения и бита изменения, которые добавлены к
ключу защиты памяти.
Динамически преобразуются адреса команд и данных, порождаемые процессором, однако к адресам данных и управляющих слов в операциях ввода-вывода динамическая переадресация не применяется. Чтобы упростить выполнение операций
ввода-вывода при использовании виртуальной памяти, предусмотрена возможность
косвенной адресации данных в канале. Динамическая переадресация предполагает,
что в процессоре предусмотрен режим расширенного управления (ЕС), в частности,
выполнение динамической переадресации находится в зависимости от значения бита
5 в PSW для режима ЕС.
К средствам динамической переадресации также относятся команды загрузка реального адреса, сбросить бит обращения и очистка TLB. При этом используются
управляющий регистр 1 и биты 8-12 управляющего регистра 0.
6.1. Сегментно-страничное распределение.
Исполнительный 24-битовый адрес Системы 370 распадается на три части: 1)
номер сегмента (8-15); 2) номер страницы (16-19); номер байта (20-31). Аппаратные
средства позволяют адресовать 256 сегментов по 16 страниц (страница-64К байтов).
Аппаратные средства тем самым позволяют адресовать до 256 сегментов, причём
каждый сегмент может состоять максимально из 16 страниц (64K байтов).
Преобразование виртуального адреса в физический адрес осуществляется с помощью ряда таблиц, изображенных на Рис. 1. В регистре таблицы сегментов (управляющий регистр 1) хранятся адрес и длина таблицы сегментов, используемой в текущий момент времени. В каждом из элементов таблицы сегментов записаны адрес и
длина таблицы страниц, если не установлен индикатор прерывания по особому случаю
в сегменте. В каждом из элементов таблицы страниц хранится номер блока, который
занимает соответствующая страница, если не установлен индикатор прерывания по
особому случаю в странице.
Для удешевления оборудования, и чтобы иметь возможность зарезервировать в
элементах таблиц неиспользуемые в настоящее время биты, были введены некоторые
ограничения, перечисленные в примечании на рис. 1. Например, поле адреса таблицы
страниц в элементах таблицы сегментов занимает 24 бита. Однако, поскольку адрес
таблицы страниц должен быть кратен 8, на самом деле под адрес таблицы страниц в
элементах таблицы сегментов было бы достаточно отвести 21 бит (три младших бита
адреса всегда нулевые). Эти зарезервированные в элементах таблиц биты могут быть
использованы в будущих разработках аппаратных средств. Например, в резервных
битах элемента таблицы сегментов можно было бы указывать правила доступа к соответствующему сегменту, в элементах таблицы страниц можно было бы ввести биты
изменения и обращения, а расширив поле длины в регистре таблицы сегментов, можно было бы увеличить допустимое количество сегментов.
7
Для предотвращения серьезного снижения производительности, вызываемого
необходимостью обращения к таблицам сегментов и таблицам страниц, наиболее часто используемые страницы и сегменты запоминаются в буфере быстрой переадресации (TLB) – быстродействующей ассоциативной памяти. Благодаря использованию
TLB накладные расходы, вызываемые механизмом преобразования адресов, удается
свести менее чем к 10%.
Рис. 1. Аппаратная реализация сегментно-страничной организации памяти в
Системе IBM 370.
6.2. Процесс переадресации.
Динамическое преобразование адресов выполняется с помощью таблицы сегментов и
таблицы страниц, находящихся в основой памяти. Управление динамической переадресацией
осуществляется посредством бита режима переадресации в PSW и битов в управляющих регистрах 0 и 1.
Индекс сегмента в логическом адресе используется для выбора Строки таблицы сегментов, длина и адрес начала которой указаны в управляющем регистре 1. Эта строка определяет
8
таблицу страниц, которую следует использовать. Индекс страницы в логическом адресе используется для выбора строки таблицы страниц. Эта строка, формат которой зависит от размера страницы, содержит старшие биты реального адреса, соответствующего исходному логическому адресу. Индекс байтов в логическом адресе используется без изменения в качестве
младшей части реального адреса, чтобы избежать задержки, связанной с обращениями к таблицам переадресации, находящимся в основной памяти, информация, полученная при выборке из этих таблиц, обычно помещается в специальный буфер быстрой переадресации
(TLB). Информация, записанная в ТLB, может быть использована, если при последующих
преобразованиях адресов приходится обращаться к тем же самым строкам. Процесс переадресации с использованием TLB cхематически представлен на Рис. 2.
Рис. 2. Процесс переадресации.
6.2.1. Использование таблицы сегментов.
Индекс сегмента в поле логического адреса используется для выбора строки таблицы сегментов, указывающей на таблицу страниц, которую
следует
использовать для получения реального адреса. Чтобы получить адрес строки таблицы сегментов, к содержимому битов 8 - 25 управляющего регистра 1 следует
приписать справа шесть нулей и сложить значение индекса сегмента с полученным
числом таким образом, чтобы младший бит индекса сегмента располагался в позиции соответствующей биту 29 адреса таблицы сегментов.
В процессе использования таблицы сегментов для переадресации индекс
сегмента сравнивается с длиной таблицы сегментов, представленной битами 0 7 управляющего регистра 1. Сравнение выполняется для того, чтобы установить, находится ли адресуемая строка в пределах таблицы. Если сегмент имеет размер 1М байт, строки для всех адресуемых сегментов находятся в пределах
таблицы с минимальной длиной (код длины равен 0). Если сегмент имеет раз-
9
мер 64К байта, то к содержимому битов 8 - 11 логического адреса приписываются справа четыре нуля и расширенное таким образом число сравнивается с 8битовым кодом длины таблицы сегментов. Если содержимое поля длины таблицы сегментов меньше, чем содержимое соответствующих битов логического
адреса, то
распознается особый случай использования сегмента и данный
элемент операции аннулируется.
Если адрес памяти, сформированный для выборки строки таблица сегментов,
выходит за пределы основной памяти, имеющейся на данной вычислительной
установке, распознается особый случай адресации и данный элемент операции подавляется.
Бит 31 строки таблицы сегментов показывает, доступен ли соответствующий сегмент. Этот бит проверяется, и если он равен 1, то распознается особый случай использования сегмента и данный элемент операции аннулируется.
Использование битов 4-7 и 29 - 30 зависит от модели: если эти биты не содержат
нулей, то обычно распознается особый случай спецификации переадресации
и данный элемент операции подавляется, однако на некоторых моделях значение этих битов игнорируется.
Если в процессе использования таблицы сегментов для переадресации особые случаи не обнаруживаются, строка, полученная в результате выборки из таблицы сегментов, указывает длину и адрес начала соответствующей таблицы
страниц.
6.2.2. Использование таблицы страниц.
Для выбора строки таблицы страниц используется индекс страниц, являющийся
составной частью логического адреса, в сочетании с адресом таблицы страниц, полученным из строки таблицы сегментов. Чтобы получить адрес строки таблицы страниц, к содержимому битов 8 – 28 строки таблицы сегментов писваиваются справа три
нуля и производится сложение индекса страницы с полученной величиной. При этом
младший бит индекса страницы должен располагаться в позиции, соответствующей
биту 30 адреса таблицы страниц.
В процессе использования таблицы страниц для переадресации четыре старших
бита индекса страницы сравниваются кодом длины таблицы страниц, представленным битами 0 – 3 строки таблицы сегментов. Сравнение выполняется для того, чтобы
установить, находится ли адресуемая строка в пределах таблицы. Если величина в
поле длины таблицы страниц меньше, чем содержимое четырех старших битов индекса страницы, то распознается особый случай использования страницы и данный
элемент операции аннулируется.
Если адрес, сформированный для выборки строки таблицы страниц, указывает за
пределы основной памяти вычислительной установки, то распознается особый случай
адресации и данный элемент операции подавляется.
Строка, полученная в результате выборки из таблицы страниц, содержит старшие
биты реального адреса и показывает, доступна ли страница. Для того, чтобы определить, доступна ли соответствующая страница, проверяется бит доступности страницы. Если этот бит равен 1, распознается особый случай использования страницы и
данный элемент операции аннулирyeтcя. Ecли в случае 4К-байтовой страницы один
10
или оба бита 13-14, а в случае 2К-байтовой страницы бит 14 установлены в 1, распознается особый случай спецификации переадресации и операция подавляется.
6.2.3. Формирование реального адреса.
Если в процессе динамической переадресации особый случай не был обнаружен,
реальный адрес получается в результате объединения адреса, полученного из строки
таблицы страниц и индекса байтов логического адреса, причем адрес страницы образует старшую часть реального адреса.
При обращении к основной памяти для выборки строки таблицы сегментов или
таблицы страниц защита памяти не действует, т. е. обращение выполняется таким образом, как будто область памяти, содержащая данную строку таблицы переадресации,
не защищена по выборке.
Download