Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие

.pdf
Скачиваний:
97
Добавлен:
27.10.2023
Размер:
29.24 Mб
Скачать

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

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

Соседние файлы в папке книги из ГПНТБ