
книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие
.pdfжой» массив, так как именно эта операция позволяет од ним программам разрушать другие. Однако у любого пользователя может иметься часть информации, которую он считает секретной и которая должна быть сделана не доступной другим пользователям. С другой стороны, в целях облегчения наладки программ желательно выяв лять такие характерные ошибки в программах, как по пытки считывания «чужой» информации и использования данных вместо команд или команд вместо данных в собственной программе, хотя эти ошибки могут и не раз рушать информацию. Исходя из этих соображений, целе сообразно расширить функции защиты памяти. Это реа лизуется обычно путем введения дополнительных инди каторов для каждой из программ. Может быть представлен следующий набор дополнительных индика торов, позволяющих осуществить дифференцированную защиту при различных операциях с памятью:
1)одноразрядный указатель отношения к чужой про грамме, определяющий, относится ли защита памяти только к операции записи или к любому обращению в па мять;
2)двухразрядный указатель отношения к собствен ной программе. Его четыре состояния могут интерпрети роваться следующим образом:
а) разрешается доступ к данному блоку как для за
писи, так и для считывания; б) разрешается только считывание;
в) разрешается обращение любого вида, но по адре су, взятому только из счетчика команд;
г) разрешается обращение по адресу из любого ад ресного регистра, кроме счетчика команд.
Привилегированные операции. В мультипрограммной системе часть операций, предусмотренных системой ко манд, может выполняться только супервизором. Выпол нение этих операций целевыми программами запрещает ся, так как это могло бы повлечь за собой нарушение нормальной работы системы. Такие операции получили название привилегированных.
К привилегированным операциям относятся уста новка и изменение кодов защиты памяти, установка и изменение маски прерывания, останов процессора, ко манды управления устройствами ввода-вывода и др. В мультипрограммных системах в состав процессора ча сто вводят специальный триггер, состояние которого ука
580
зывает на режим супервизора или режим целевой про граммы. Появление привилегированной операции в режиме целевой программы вызывает прерывание и пе реход к супервизору, который разбирается в законности требований целевой программы и либо указывает поль зователю на ошибку в его программе, либо выполняет затребованное действие с помощью своих подпрограмм.
Датчик времени. Переключение программ из актив ного режима в пассивный в мультипрограммной системе с распределением времени производится не только при достижении программой такого положения, когда она не может дальше работать (например, ожидание ввода-вы вода), но и по истечении определенного промежутка вре мени, отведенного данной программе под цикл активно сти.
Кроме того, супервизор должен вести учет времени, фактически занятого каждой целевой программой для последующей оплаты машинного времени пользователя ми. По указанным причинам в состав машины вводят датчик времени — схему, позволяющую измерять интер вал времени между различными программными события ми. Датчик времени представляет собой триггерный ре гистр (или ячейку памяти), содержимое которого умень шается на единицу младшего разряда через определенный интервал времени. Когда датчик времени достигает нуля, возникает прерывание, которое вводит в действие супер визор.
Супервизор может записывать в регистр датчика времени произвольные числа, а также считывать его состояние.
Множественный доступ. В однопрограммных маши нах имеется обычно один пульт управления, с помощью которого оператор может пускать или останавливать ма шину, изменять содержимое регистров, производить за пись или чтение из памяти. Мультипрограммная система с разделением времени должна предоставлять доступ одновременно многим пользователям, и как следствие этого, во-первых, должно иметься много пультов, во-вто рых, характер работы пульта должен быть изменен.
Пульту пользователя не может быть предоставлено право непосредственно воздействовать на работу про цессора. Пульт в мультипрограммной системе рассмат ривается как одно из периферийных устройств. Его кнопки и переключатели представляют собой просто ис
581
точники двоичной информации, которая может быть вве дена в память машины соответствующей обслуживаю щей программой; его световые, звуковые или иные ин дикаторы представляют собой выходы машины, управ ляемые обслуживающей программой. Часто в качестве пультов употребляются телетайпы, электрические пишу щие машинки и в последнее время экранные пульты с клавиатурой. Эти устройства позволяют организовать разговорный режим работы: пользователь набирает на клавиатуре в алфавитно-цифровом виде необходимую ин формацию и распоряжения, машина печатает на теле тайпе или высвечивает на экране трубки ответы. Техни ка передачи цифровой информации по каналам связи позволяет размещать пульты на большом расстоянии от машины и связывать пульты с машиной через стандарт ные телеграфные или телефонные линии связи.
Множественный доступ пользователей к системе тре бует создания средств присоединения большого числа пультов к процессору. Устройство связи с пультами мо жет быть выполнено в виде специализированного уст ройства, либо в качестве его может быть использована малая универсальная вычислительная машина.
Второй способ дает определенные преимущества: при его реализации связь с пользователями не должна обя зательно разрушаться, если не действует центральная система.
Кроме того, малая машина может быть использована для первичной обработки информации при связи с пуль тами: преобразование кодов, уплотнение информации, формирование текста ответов операторам и т. п.
П-З. СТРУКТУРА СУПЕРВИЗОРА И АЛГОРИТМЫ ПЛАНИРОВАНИЯ
Супервизор представляет собой комплекс программ, обладающих определенной степенью автономности. Сложность и состав супервизора различны в различных конкретных системах: его объем колеблется от несколь ких тысяч до десятков тысяч слов; тем не менее можно говорить о типовой структуре супервизора.
На блок-схеме рис. 11-4 представлен комплекс про грамм, входящих в состав типичной супервизорной си стемы.
582
П л а н и р у ю щ а я п р о г р а м м а определяет после довательность работы как целевых программ, так и ча стей самого супервизора. Если в процессе работы систе ма аппаратного контроля машины обнаруживает ошиб ку, то управление передается к о р р е к т и р у ю щ и м
п р о г р а м м а м , которые |
производят |
исследование |
типа ошибки, уведомляют |
планирующую |
программу о |
Ja/>p#C6/ |
|
|
Рис. 11-4. Блок-схема супервизора.
необходимости повторного прогона, если предполагает ся несистематический характер ошибки, либо проводят диагностическую обработку систематической ошибки с
целью определения местоположения |
неисправности и |
|
выдачи рекомендаций по ремонту оборудования. |
||
После того как планирующая программа определит, |
||
какие целевые программы и в каком |
порядке должны |
|
исполняться, она |
обращается к п р о г р а м м е - р а с |
|
п р е д е л и т е л ю , |
которая отводит каждой целевой про |
|
грамме определенное место в памяти. |
Распределитель |
вызывает активные участки программ в оперативную па мять, осуществляет динамическое распределение памя ти, формируя, например, базовые адреса для программ, возвращает во вспомогательную память те части про
583
грамм, которые в течение определенного времени не бу дут использоваться.
Одновременно распределитель организует систему защиты памяти, формируя и изменяя в процессе работы информацию, управляющую защитой памяти (содер жание граничных регистров, ключей и замков и т. п.). Структура распределителя во многом определяется ха рактером аппаратных средств распределения и защиты памяти, встроенных в данную систему.
В мультипрограммных системах пользователь не име ет, как правило, непосредственного доступа к управле нию периферийным оборудованием: команды ввода-вы вода относятся к привилегированным операциям. Это сделано потому, что время, необходимое для ввода-вы вода информации периферийными устройствами, супер визор использует для решения других задач. Если, на пример, целевая программа произведет, помимо супер визора, ввод массива данных из дисковой памяти, то процессор на период 200 или 300 мсек может оказаться бездействующим, а это время в больших машинах доста точно для исполнения нескольких десятков тысяч ариф метических операций. Следовательно, только супервизор может определять, когда и какое периферийное устрой ство должно включаться в работу.
Кроме того, программируя свою задачу, пользова тель не может предвидеть, какое из периферийных уст ройств нужного ему вида окажется свободным во время выполнения его задачи. Он может указать только сим волическое название операции и устройства ввода-выво да, например магнитная лента с условным номером 1. В действительности ему может быть выделен свободный лентопротяжный механизм с другим номером, например
№ 12. |
|
|
|
Управление |
работой |
вводных-выводных аппаратов |
|
производится с |
помощью |
п р о г р а м м |
у п р а в л е н и я |
п е р и ф е р и й н ы м и у с т р о й с т в а м и , |
входящих в |
состав супервизора. Эти программы также печатают рас поряжения оператору, касающиеся установки кассет с магнитной лентой, колод перфокарт и других вспомога тельных операций.
Программы обслуживания пультов позволяют осу ществлять в масштабе реального времени доступ к мультипрограммной системе со стороны независимых пользователей. Одной из важнейших задач этих обслу
584
живающих программ является распознавание требова ний пультов, которое производится либо путем последо вательного опроса пультов, либо путем анализа запро сов прерывания, поступающих с пультов. Опрос пультов программой обслуживания должен происходить доста точно часто, обычно несколько раз в секунду. Програм ма может просматривать состояние выходных шин пуль тов, либо система связи с пультами может быть органи зована так, что просматривается содержимое специально отведенной для данной цели части памяти, куда пуль ты записывают свои сообщения независимо от програм мы. До тех пор пока сообщения не окончены, програм ма обслуживания компонует их слог за слогом в неко торой другой части памяти; после окончания сообщения программа обслуживания информирует планирующую программу о запрошенном пультом действии. Использо вание системы прерывания позволяет организовать об служивание пультов на приоритетной основе. В не которых вычислительных системах применяются оба подхода: часть пультов обслуживается с помощью программного опроса, часть — с помощью преры вания.
Дополнительно к указанным выше функциям на су первизор возлагаются также организация работы биб лиотеки стандартных программ, входящих в состав ма тематического обеспечения вычислительной системы, управление работой машины в отладочном режиме и не которые другие задачи.
Для иллюстрации взаимодействия различных частей супервизора рассмотрим упрощенную временную диа грамму работы мультипрограммной системы (рис. 11-5). Предполагается, что все целевые программы уже вве дены в память системы. Кроме того, хотя выполнение ряда функций супервизора, например распределение па мяти, связано с большим количеством обменов между оперативной и внешней памятью, в нашем примере в целях простоты эти обмены не рассматриваются.
Работа начинается с того, что планирующая про грамма в соответствии с заложенными в нее правилами
устанавливает очередность |
выполнения |
целевых прог |
|
рамм. Предположим, что эта очередность |
такова: № |
1, |
|
3 и 2. Далее планирующая |
программа |
обращается |
к |
распределителю, который присваивает программе № 1 место в памяти, производит необходимые действия по
585
С у п е р в и з о р
П рограм м ы
уп р а вл ен и я П л а н и р у ю щ а я Раѵ предели - п е р и ф е р и й
п р огр а м м а т ель н ы м и у с т р о й ст в а м и
Уст ановление оче редн ост и про гра м м . П уст ит ь
програм м у J\ß 1
Распределение пам ят и для программы № 1
З а п р ос в в о д а -в ы в о д а
П ост адит ь п р о гр а м м у № 1 ß оч е редь на ввод-вы вод
Р а бот а п е р и ф е р и й н ы х „
у с т р о й с т в
Ц ел евы е п р о гр а м м ы
Ж е) Же2 АГ:3
И дет
програм -
маЯРС!
Пуст ит ь
пр огр а м м у J fs 3
П ост авит ь |
п ро |
гр а м м у № 3 |
в оче |
р едь на в в о д -в ы вод. П уст ит ь
пр о гр а м м у № 2
Ост ановит ь про гр а м м у Же2. П у ст ит ь устройст во ввода -вы вода дл я програм м ы
Ж°3
Пу ст и т ь
пр огр а м м у Жя1
П рисбпит ь уст рой ст ва ввода - вы вода п роера м м еМ І
Распределение пам ят и для програм м ы № 3
Запрос ввода -вы во д а
Распределение п а м я т и для программыЖ я2
П р е р ы в а н и е :
„ В в о д -в ы в о д з а к о н ч е н “
П р и свои т ь у ст р о й ст в а ввода -вы вода програм м е ЖеЗ
^ § ■Іі
> |
■ 'И дет N |
|
|
програм |
|
Ча £ |
ма № 3 . |
|
|
||
.§«§ |
|
|
<§1 |
Идет |
|
• s f |
||
програм |
||
|
м а Же2 . |
Рис. I I |
-5. |
Упрощенная |
временная |
'S 1 |
Идет |
ма № 1 |
|||||
|
работы мультипрограм |
ei, S' |
програм |
||
диаграмма |
|
|
|||
|
|
мной системы. |
» |
|
|
586
защите памяти, после чего управление передается про грамме № 1.
Активный цикл программы № 1 заканчивается в на шем примере требованием ввода-вывода. Планирующая программа должна поставить программу № ] в очередь на ввод-вывод, по так как в данный момент в этой оче реди нет других программ, планирующая программа немедленно вводит в действие программу управления периферийными устройствами. Программе № 1 отводит ся соответствующее периферийное устройство и начина ется операция ввода-вывода для программы № 1. Пла нирующая программа, к которой возвращается управле ние, выбирает следующую целевую программу (№ 3), производится распределение памяти для нее и одновре менно с вводом-выводом для программы № 1 осущест вляется работа программы № 3.
Предположим, что программа № 3 запрашивает уст ройство ввода-вывода, которое не может работать одно временно с устройством, обслуживающим программу № 1 (это могут быть, например, два лентопротяжных механизма, управляемые общим блоком). В этом случае планирующая программа ставит программу № 3 в оче редь на ввод-вывод после программы № 1 и пускает программу № 2. Во время работы программы № 2 при ходит запрос прерывания, сигнализирующий, что работа периферийного устройства для программы № 1 законче на. Так как программа № 2 обладает наименьшим прио ритетом, ее работа прерывается, планирующая програм ма включает ввод-вывод для программы № 3, одновре менно продолжается выполнение программы № 1.
Алгоритмы планирования. Порядок работы мульти программной системы, устанавливаемый планирующей программой, зависит от набора правил, используемых для выбора следующей целевой программы, получаю щей цикл активности, и для определения, как долго этой программе будет позволено идти непрерывно. Эти пра вила называются а л г о р и т м о м п л а н и р о в а н и я , и разработка этого алгоритма является одной из наиболее трудных и в то же время наиболее важных задач при со ставлении супервизора.
Простейшим алгоритмом планирования является си стема обычной очереди; когда цикл активности данной
целевой |
программы |
кончается, она занимает место |
в конце |
очереди, а |
машина переходит к выполнению |
587
программы, которая ждет дольше всех. Если программа была приостановлена вследствие ее обращения за вво дом или выводом информации, ее нельзя ставить на оче редь до тех пор, пока периферийное устройство не за кончит работу и дальнейшее выполнение программы станет возможным. Видоизменением системы очередно сти является так называемая система «кругового прио ритета»: когда время, отведенное данной программе, ис текает, опрашиваются все целевые программы в заранее определенном порядке, пока не обнаруживается требо вание на выполнение очередной программы.
Отличительная черта вышеуказанных простых алго ритмов состоит в том, что все целевые программы обслу живаются на равных основаниях независимо от их дли ны, требуемых ими средств и важности пользователя. Это является, конечно, недостатком, поэтому в совре менных вычислительных системах используют более сложные алгоритмы, позволяющие назначать разные длительности активности различным программам.
Каждая целевая программа снабжается заголовком, указывающим требуемый объем памяти, число и виды периферийных устройств, оценочное время прогона и другие параметры. Планирующая программа содержит список наличных вычислительных средств и, сверяя его с программными требованиями, определяет, какие про граммы должны начинать работать немедленно, какие должны быть поставлены на очередь к данным средст вам. Очередь программ перепроверяется при каждой смене циклов активности, поскольку память, периферий ные устройства и другие средства могут освобождаться.
В табл. 11-1 иллюстрируются действия планирующей программы по организации очереди целевых программ.
Первоначально планирующая программа просматри вает заголовки целевых программ для определения чи сла программ с наивысшим приоритетом, который уста
навливается в зависимости |
от значения пользователя |
и других обстоятельств. В |
вышеприведенном примере |
планирующая программа находит две целевые програм мы со степенью важности 1 (программы № 1 и 6). По скольку они вместе затрачивают 70% времени работы процессора, то целесообразно одновременно с ними вы полнять программу № 5, которая хотя и имеет меньшую степень важности, чем программа № 2, но позволяет до стигнуть совместно с программами № 1 и 6 высокого
588
|
|
|
|
|
Т а б л и ц а |
11-1 |
|
|
|
Заголовки целевых |
программ |
Действия планирую |
|||
Номера |
Степень |
щей программы |
|||||
|
Заня |
К о л и |
Н азн ач е |
|
|
||
целевых |
важности |
Память, |
|
|
|||
программ |
|
тость |
чество |
ние |
Очередь |
||
|
|
тысячи |
процессо- |
магнитных |
программ |
||
1 |
1 |
слов |
Ра. % |
лент |
к работе |
|
2 |
4 |
40 |
2 |
___ |
— |
|||
2 |
2 |
8 |
60 |
2 |
+ |
|
|
— |
— |
|
|||||
3 |
4 |
2 |
10 |
2 |
|
— |
|
4 |
4 |
16 |
50 |
4 |
|
|
|
5 |
3 |
4 |
20 |
4 |
+ |
|
3 |
6 |
1 |
6 |
30 |
6 |
+ |
|
1 |
использования работы процессора. Таким образом, пла нирующая программа выбирает для немедленного ис полнения программы № 1, 5 и 6, остальные программы какое-то время будут бездействовать и могут пока оста ваться во внешней памяти.
Для установления очередности между выбранными для исполнения программами планирующая программа должна снова просмотреть заголовки целевых программ. Могут быть установлены различные критерии очередно сти. Например, программа, требующая наибольшее ко личество магнитных лент, назначается первой, так как при ее выполнении появляются интервалы ожидания обмена с лентой, во время которых процессор может быть выгодно использован для решения других про грамм. Следующей назначается программа с наиболь шими требованиями к объему оперативной памяти. Ес ли все условия равны, то выбирается программа с наи меньшим номером. В нашем примере из двух программ с одинаковой степенью важности предпочтение будет отдано программе № 6.
По мере выполнения целевых программ (полностью или частично) планирующая программа корректирует программные требования, изложенные в заголовках, учитывая фактически израсходованное программами ма шинное время, освобождающиеся периферийные устрой ства и т. д. В соответствии с меняющимися условиями может изменяться установленная первоначально очеред ность программ.
589