Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 221

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

определяет и нижнюю границу. Верхняя граница подсчи­ тывается супервизором в соответствии с длиной програм­ мы в оперативной памяти.

Другой способ состоит в том, что память в логиче­ ском отношении делится на блоки и каждому блоку ста­ вится в соответствие триггер, указывающий, разрешено ли обращение программы к данному блоку (состояние 1) или запрещено (состояние 0). Набор этих триггеров образует маску, подобную по форме маске прерывания Если программа пытается обратиться к блокам памяти, запрещенным маской, осуществляется прерывание с пе­ реходом к супервизору.

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

По сравнению с предыдущим методом данный подход является более гибким, так как позволяет организовать доступ программы к блокам памяти, расположенным не подряд. Дальнейшее развитие этого пути состоит в том, чтобы каждому блоку памяти поставить в соответствие несколько триггеров, например три. Будем называть эту группу триггеров замком памяти. Каждой из независи­ мых программ поставим в соответствие набор из трех двоичных разрядов, который будем называть ключом па­ мяти для данной программы. Состояния ключей и зам­ ков (очевидно, как тех, так и других в нашем примере может быть максимум восемь) устанавливаются супер­ визором. При каждом обращении к памяти производит­ ся сравнение состояний ключа и замков; обращение счи­ тается разрешенным, если ключ и замок совпадают или если один из них (безразлично замок или ключ) равен нулю. В памяти образуются семь групп блоков с замка­ ми 1, 2,..., 7, доступных программам с ключами соответ­ ственно 1, 2,..., 7, и одна группа блоков (с замком 0), доступная всем программам. В последней группе удобно размещать программы или данные, используемые разны­ ми пользователями. Кроме того, имеется одна програм­ ма с ключом 0, имеющая доступ ко всей памяти; удобно присвоить этот ключ супервизору, так как последний должен иметь возможность перезаписывать любой уча­ сток памяти, например при обмене информацией между ОЗУ и ВЗУ.

В первых мультипрограммных системах защита па­ мяти предохраняла только от записи информации в «чу­

371

579



жой» массив, так как именно эта операция позволяет од­ ним программам разрушать другие. Однако у любого пользователя может иметься часть информации, которую он считает секретной и которая должна быть сделана не­ доступной другим пользователям. С другой стороны, в целях облегчения наладки программ желательно выяв­ лять такие характерные ошибки в программах, как по­ пытки считывания «чужой» информации и использования данных вместо команд или команд вместо данных в собственной программе, хотя эти ошибки могут и не раз­ рушать информацию. Исходя из этих соображений, целе­ сообразно расширить функции защиты памяти. Это реа­ лизуется обычно путем введения дополнительных инди­ каторов для каждой из программ. Может быть представлен следующий набор дополнительных индика­ торов, позволяющих осуществить дифференцированную защиту при различных операциях с памятью:

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

2)двухразрядный указатель отношения к собствен­ ной программе. Его четыре состояния могут интерпрети­ роваться следующим образом:

а) разрешается доступ к данному блоку как для за­

писи, так и для считывания; б) разрешается только считывание;

в) разрешается обращение любого вида, но по адре­ су, взятому только из счетчика команд;

г) разрешается обращение по адресу из любого ад­ ресного регистра, кроме счетчика команд.

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

К привилегированным операциям относятся уста­ новка и изменение кодов защиты памяти, установка и изменение маски прерывания, останов процессора, ко­ манды управления устройствами ввода-вывода и др. В мультипрограммных системах в состав процессора ча­ сто вводят специальный триггер, состояние которого ука­

580


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

Датчик времени. Переключение программ из актив­ ного режима в пассивный в мультипрограммной системе с распределением времени производится не только при достижении программой такого положения, когда она не может дальше работать (например, ожидание ввода-вы­ вода), но и по истечении определенного промежутка вре­ мени, отведенного данной программе под цикл активно­ сти.

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

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

Множественный доступ. В однопрограммных маши­ нах имеется обычно один пульт управления, с помощью которого оператор может пускать или останавливать ма­ шину, изменять содержимое регистров, производить за­ пись или чтение из памяти. Мультипрограммная система с разделением времени должна предоставлять доступ одновременно многим пользователям, и как следствие этого, во-первых, должно иметься много пультов, во-вто­ рых, характер работы пульта должен быть изменен.

Пульту пользователя не может быть предоставлено право непосредственно воздействовать на работу про­ цессора. Пульт в мультипрограммной системе рассмат­ ривается как одно из периферийных устройств. Его кнопки и переключатели представляют собой просто ис­

581


точники двоичной информации, которая может быть вве­ дена в память машины соответствующей обслуживаю­ щей программой; его световые, звуковые или иные ин­ дикаторы представляют собой выходы машины, управ­ ляемые обслуживающей программой. Часто в качестве пультов употребляются телетайпы, электрические пишу­ щие машинки и в последнее время экранные пульты с клавиатурой. Эти устройства позволяют организовать разговорный режим работы: пользователь набирает на клавиатуре в алфавитно-цифровом виде необходимую ин­ формацию и распоряжения, машина печатает на теле­ тайпе или высвечивает на экране трубки ответы. Техни­ ка передачи цифровой информации по каналам связи позволяет размещать пульты на большом расстоянии от машины и связывать пульты с машиной через стандарт­ ные телеграфные или телефонные линии связи.

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

Второй способ дает определенные преимущества: при его реализации связь с пользователями не должна обя­ зательно разрушаться, если не действует центральная система.

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

П-З. СТРУКТУРА СУПЕРВИЗОРА И АЛГОРИТМЫ ПЛАНИРОВАНИЯ

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

На блок-схеме рис. 11-4 представлен комплекс про­ грамм, входящих в состав типичной супервизорной си­ стемы.

582