Файл: Система математического обеспечения ЕС ЭВМ..pdf

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

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

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

Добавлен: 17.10.2024

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

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

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

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

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

Пример использования рабочих областей реентерабельной про­ граммой С представлен на рис. 13. Две программы А и В содер­ жат обращение по макрокоманде LINK к реентерабельной про­ грамме С, размещенной в области супервизора. Предположим, пер­ вой обратилась программа А. При выполнении С после первого обращения с помощью макрокоманды GETMAIN выдается запрос на некоторый объем оперативной памяти для рабочей зоны. Эта память выделяется в области задачи А. Связь программы С с ра­ бочей областью осуществляется через регистр 1 (или через любой общий регистр), который содержит адрес рабочей зоны. Пусть в процессе выполнения программы С от первого обращения произо­ шло прерывание и начала выполняться программа В. При обработ­ ке прерывания содержимое общих регистров и слово состояния про­ граммы запоминаются в области сохранения задачи А.

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

2.6. МУЛЬТИПРОГРАММИРОВАНИЕ

Под термином «мультипрограммирование» понимается исполь­ зование вычислительной системы для выполнения двух или более

41


внеш ние уст ройст ва
Р и с . 14. С в я зь ц ен т р а л ь н о го п р о ц е с ­ со р а и в н еш н и х у ст р о й с т в с о п е р а ­ т и в н ой п ам я т ь ю

программ одновременно. Это поз­ воляет более эффективно исполь­ зовать ресурсы и повысить ее про­ пускную способность. Централь­ ный процессор в каждый момент времени выполняет команды ка­ кой-либо одной программы. Ос­ тальные программы находятся в оперативной памяти в состоянии готовности или ожидания завер­ шения какого-либо события (за­ вершения операции ввода или вы­ вода, истечения заданного вре­ менного интервала, завершения выполнения какой-либо про­ граммы и'т. д.).

Оперативная память вычислительной машины используется центральным процессором и каналами. Так как блок памяти име­ ет один вход, доступ к нему процессора и любого из каналов осу­ ществляется строго последовательно (рис. 14).

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

а)

Программа !

Программа 2

 

 

Го

 

Общее в ре м я

вы полнения програм м

Т0 = t t + t 2

б)

 

 

 

Программа /

 

 

 

 

1

\1

1

Программа 2

 

1

 

1

1

 

 

1

1

И/,

w z

\

и*-------------- 1■I.---------

 

Общее вре м я вы полнения

програм м

T m = t ,

Р и с . 15. Г р а ф и к и ак ти в н о го со ст о я н и я

п р о гр а м м в о д н о п р о ­

гр а м м н о м и м у л ь т и п р о гр а м м н о м р е ж и м а х : а — о д н о п р о г р а м м ­ ны й р е ж и м ; б — м у л ь т и п р о гр а м м н ы й р е ж и м

42


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

На рис. 15 приведен пример выполнения двух программ в одно­ программном и мультипрограммном режимах. Программа 1 имеет время выполнения t \ , причем значительную часть этого времени со­ ставляют периоды ожидания. Программа 2 имеет время выполне­ ния tz , причем периоды ожидания составляют незначительную часть этого времени.

В случае однопрограммного режима программы выполняются строго последовательно, и общее время выполнения обеих про­ грамм равно сумме времени выполнения их по отдельности. В муль­ типрограммном режиме при условии, что программа 1 имеет более высокий приоритет, программа 2 выполняется в периоды ожидания программы 1. Поэтому общее время выполнения обеих программ будет несколько больше времени выполнения первой программы (за счет работы управляющей программы). Несмотря на совмеще­ ние выполнения, имеют место периоды ожидания w \ и йУ2, когда обе программы находятся в состоянии ожидания. В течение этих периодов центральный процессор будет простаивать. Однако вре­ мя простоя в этом случае меньше времени простоя в однопрограмм­ ном режиме.

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

2.7. ЗАДАНИЕ, ПУНКТ ЗАДАНИЯ, ЗАДАЧА

Основной единицей работы, выполняемой вычислительной сис­ темой, является задание. Оно заключается в выполнении вычисле­ ний в некотором конкретном применении. Задание включает выпол­ нение одной или нескольких связанных программ. Примерами за­ даний могут быть: расчет и вывод ведомости заработной платы; ввод, сортировка и вывод набора данных; трансляция, редактиро­ вание и выполнение модуля и т. д. Задания никак не связаны друг с другом и не могут оказывать влияния друг на друга, поэтому их можно выполнять одновременно в режиме мультипрограммиро­ вания.

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

43


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

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

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

Пользователь сообщает системе о своем задании и пунктах за- «1 дания на языке управления заданиями. На этом языке система получает информацию о задании и о программе, характеристики данных, требования к устройствам. Информация сообщается систе­ ме при выполнении программы, а не во время ее трансляции или

ассемблирования.

Язык управления заданиями состоит из ряда управляющих опе­ раторов. Основными из них являются следующие три:

оператор JOB (оператор задания); оператор ЕХЕС (оператор пункта задания); оператор DD (оператор описания данных).

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

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

дания (приоритет, объем требуемой оперативной

памяти

и т. д.).

В пункте задания необходимо определить все

наборы

данных

(входные, выходные и промежуточные), с которыми работает про­ грамма пункта задания. Это делается с помощью операторов DD. Каждый набор данных обычно описывается одним оператором DD. В нем указываются имя набора данных, его характеристики, уст­ ройство, на котором расположен набор данных, состояние набора данных, действия, которые необходимо выполнить с набором дан­ ных в конце выполнения пункта задания. Кроме того, сам набор данных может непосредственно следовать за оператором DD. Бла­

44


годаря тому, что информация о наборе данных сообщается в опе­ раторе DD, программы могут не зависеть от характера данных, ко­ торые они обрабатывают.

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

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

2.8. ОБРАБОТКА ПОТОКОВ ЗАДАНИЙ

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

Входной поток заданий вводится с устройства системного вво­ да (устройство ввода с перфокарт, накопитель на магнитных лен­ тах или магнитных дисках). Ввод входного потока осуществляет программа системного ввода. В ее функции входит считывание опе­ раторов входного потока заданий, их анализ и формирование уп­ равляющих таблиц, характеризующих каждое задание, пункты за­ дания и наборы данных. Затем программа системного ввода помещает задание (в виде управляющих таблиц) в одну из вход­ ных очередей. Входные очереди размещаются на устройстве прямо­ го доступа в наборе данных SYS1.SYSJOBQE. Допускается до 15 входных очередей, каждая из которых соответствует одному классу заданий. Класс задания обозначается латинскими буквами от А до О и указывается в операторе JOB параметром: CLASS = o6o3Ha- чение класса. Так, на рис. 16 указаны три входные очереди для классов A, D и F.

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

45