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

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

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

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

Добавлен: 09.04.2024

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

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

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

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

п р о г р а м м а м , которые

производят

исследование

типа ошибки, уведомляют

планирующую

программу о

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