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

книги из ГПНТБ / Система математического обеспечения ЕС ЭВМ

..pdf
Скачиваний:
24
Добавлен:
22.10.2023
Размер:
10.92 Mб
Скачать

3.2. ОПЕРАТОР ЗАДАНИЯ

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

/ / им я J O B о п ер а н д ы к о м м ен т ар и и

Имя должно начинаться в третьей колонке и содержать от 1 до 8 буквенно-цифровых символов (от А до Z, от 0 до 9), причем цифра не может быть первым символом. В мультипрограммных режимах не следует допускать использования одинаковых имен заданий.

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

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

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

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

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

6J

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

Параметр MSGLEVEL определяет уровень распечатки опера­ торов языка управления заданиями и сообщений системы о рас­ пределении. Значение параметра состоит из двух подпараметров:

M S G L E V E L = (о п ер а т о р ы , со о б щ ен и я )

Первый подпараметр может принимать три значения: 0, 1, 2. Значение 0 кодируют, если необходимо выводить только оператор J©B. Значение 1 кодируют, если необходимо выводить все вход­ ные управляющие операторы, операторы каталогизированных про­ цедур и внутреннее представление операторов после подстановки символических параметров. Значение 2 кодируют, если необходи­ мо выводить только входные управляющие операторы.

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

Параметр CLASS определяет класс задания:

C L A S S = K nacc за д а н и я

Класс задания указывается латинской буквой (от А до О). Та­ ким образом, можно указать до 15 различных классов задания. Если этот параметр опущен, то предполагается, что задан класс А. В соответствии с заданным классом задание попадает в очередь заданий.

Параметр PRTY определяет приоритет задания, с которым оно выбирается из очереди своего класса на выполнение. Чем выше приоритет задания, тем быстрее оно попадает на выполнение:

PRTY= npHOpHTeT

Приоритет задания определяется числом от 0 до 13. Рекомен­ дуется избегать употребления значения 13, так как оно использу­ ется системными программами.

Параметр TYPRUN применяется для задержки выборки зада­ ния из очереди на выполнение. Если закодировано

T Y P R U N = H O L D

то задание независимо от приоритета будет оставаться в очереди заданий. Снять задержку может оператор с помощью команды

RELEASE.

62

Параметр MSGCLASS определяет выходной класс для всех сообщений планировщика заданий:

M S G C L A S S = в ы х о д н о й к л асс

Выходной класс кодируется латинскими буквами от А до Z и цифрами от 0 до 9. Таким образом, допускается до 36 выходных классов. Для каждого класса строится выходная очередь систем­ ного вывода.

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

Параметр COND предназначен для проверки кода возврата пункта задания. Любая обрабатывающая программа после завер­ шения своей работы может передать вызывающей программе код возврата в регистре 15. Более подробно это будет рассмотрено при обсуждении соглашений о связях. Программа пункта задания пе­ редает код возврата в управляющую программу. Для анализа это­ го кода возврата используется параметр COND, который можно кодировать как в операторе JOB, так и в операторе ЕХЕС.

Код возврата должен быть числом, кратным 4, в диапазоне от О до 4095. Смысл каждого значения кода возврата может быть произвольным. Системные обрабатывающие программы выраба­ тывают коды возврата, имеющие следующие значения:

а) код возврата 0 указывает, что выполнение программы было нормальным;

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

в) код возврата 8 указывает, что при выполнении программы были обнаружены ошибки;

г) код возврата 12 свидетельствует о том, что при выполнении программы были обнаружены серьезные ошибки;

д) код возврата 16 обозначает, что были обнаружены ошибки, которые привели к завершению выполнения программы.

Нормальный возврат рекомендуется обозначать кодом 0. Пред­ полагается, что вызывающая программа «знает» назначение каж­ дого кода возврата и умеет его анализировать. Анализ кодов воз­ врата в управляющей программе производится в соответствии с кодированием параметра COND:

C O N D = (( к о д , о п е р а т о р ),.,.)

63

где код — число в диапазоне от 0 до 4095,

оператор — одна из

шести операций сравнения:

 

GT( > ) , G E O ) , E Q ( = ) , LT(<), L E O

) , N E ( ^ ) .

Заданные в параметре коды сравниваются с кодом возврата каждого пункта задания. В операторе COND допускается до 8 про­ верок. Если хотя бы при одной из проверок заданное условие вы­ полняется, то все оставшиеся пункты задания не выполняются и задание завершается. Если параметр COND опущен, то проверка кода возврата не производится.

В режиме мультипрограммирования с переменным числом за­ дач с помощью параметра

REGION= nnnnnK

производится запрос на величину раздела памяти, в котором бу­ дут выполняться все пункты задания. Здесь nnnnn определяет число Кбайтов памяти (1 Кбайт, обозначаемый 1К, равен 1024 бай­ там). Если необходимо для каждого пункта задания установить свой размер раздела, то этот параметр не следует кодировать в операторе JOB, а рекомендуется кодировать в операторах ЕХЕС. В однопрограммном режиме и режиме мультипрограммирования с фиксированным числом задач этот параметр игнорируется.

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

T IM E = (м и н уты , сек ун ды )

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

Т1МЕ= 1440

Вэтом случае время использования центрального процессора не ограничивается.

Врежиме мультипрограммирования с переменным числом за­

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

f YES | I YES ROLL= H NO И NO

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

64

то данный параметр следует кодировать в операторах ЕХЕС, а в операторе JOB не кодировать.

Рассмотрим пример оператора JOB:

//NAMEl JOB (3874, 23—01—74),C.P.A,TEL. 555,

//MSGLEVEL= (0, 1), MSGCLASS=A, CLASS = B,

//PRTY= 5, COND=(8,LT),REGION = 55K,

//TIME = 20, ROLL= (NO, NO)

Задание, приведенное в примере, имеет имя NAMEI. Учетный номер задания — 3874. В качестве дополнительной учетной инфор­ мации задана дата в форме 23—01—74. В качестве идентификации программиста заданы его инициалы и телефон. Далее указывает­ ся, что необходимо распечатывать только оператор JOB, а также сообщения о распределении. Для вывода сообщений планировщи­ ка используется класс А . Заданию присвоены класс В и приори­ тет 5. Пункты задания будут последовательно выполняться, если коды возврата каждого из них не будут превышать 8. Если код возврата одного из пунктов более 8, то оставшиеся пункты выпол­ няться не будут. Для выполнения задания требуется раздел опе­ ративной памяти не менее 55К. Время выполнения задания огра­ ничено 20 мин. Задание не допускает свертки и не может вызвать свертку других заданий. Параметры REGION и ROLL используют­ ся только в режиме с переменным числом задач.

3.3. ОПЕРАТОР ПУНКТА ЗАДАНИЯ

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

Оператор пункта задания имеет следующий формат:

//имя ЕХЕС операнды комментарии

Имя является необязательным. Оно предназначено для ссылки на конкретный пункт задания. Имя должно начинаться с колонки 3 и содержать от 1 до 8 буквенно-цифровых символов (от А до Z. от 0 до 9), причем цифра не может быть первым символом. Если в колонке 3 находится пробел, то пункт задания считается непо­ меченным.

Имя программы, выполняемой в пункте задания, определяется параметром PGM, который имеет следующий формат:

PGxM = hmh программы

Несмотря на то, что по форме записи этот параметр напомина­ ет ключевой, он является позиционным и должен быть самым пёр-

s. Заказ 3414.

05

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

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

Если нет дополнительных указаний, поиск программы произ­ водится в общей библиотеке. Загрузочные модули, получаемые редактором связей, могут быть записаны в личные библиотеки. Программы внутри одной библиотеки не должны иметь совпадаю­ щих имен. В личные библиотеки записываются программы, не предназначенные для частого использования. Чтобы указать си­ стеме, что программу, указанную параметром PGM, следует искать в личной библиотеке, эта библиотека описывается как библиотека задания или библиотека пункта задания. Для того чтобы описать личную библиотеку как библиотеку задания, необходимо сразу же после оператора JOB поместить оператор DD с меткой JOBLIB, в котором должна быть указана личная библиотека. Например, пусть существует личная библиотека с именем САВ.

//NAME

JOB

 

//JOBLIB

DD

DSNAME=CAB

//ST1

EXEC

PGM=A,..,

Библиотека CAB в задании NAME указана как библиотека за­ дания. Поэтому система будет искать программу А , указанную в первом пункте в библиотеке САВ. Еслшв этой библиотеке такой программы не окажется, то производится поиск в общей библиоте­ ке. Этот принцип распространяется на программы всех пунктов задания.

Чтобы сделать личную библиотеку библиотекой пункта зада­ ния, необходимо среди операторов DD, принадлежащих пункту, поместить один оператор с меткой STEPLIB, в котором должна быть указана личная библиотека. Например, если ту же библиоте­ ку САВ необходимо распространить только на пункт ST1, необхо-

дим о записать:

JOB

 

//NAME

 

//ST1

EXEC

PG M =A ,.,,

//STEPLIB

DD

DSNAME = CAB

/ / . . .

DD

t i l

« * с

 

 

66

Поиск программы А будет осуществляться сначала в библио­ теке САВ, а затем в общей библиотеке. Другие пункты задания не будут обращаться к библиотеке САВ (если она не описана повтор­ но как библиотека пункта). Если описаны обе библиотеки, то ука­ зание библиотеки пункта задания для данного пункта делает не­ доступной библиотеку задания.

Личные библиотеки используются не только как библиотеки задания или пункты задания, но и самостоятельно для поиска про­ грамм, применяемых в динамических структурах (см. раздел 4.5).

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

PGM=*.hmh пункта, имя оператора DD

Имя пункта и оператора DD указывает на описание временной библиотеки в том пункте, где создается загрузочный модуль.

Рассмотрим пример:

//ST1

EXEC

PGM=IEWL

//SYSLMOD

DD

DSNAME = &&ABC(A), DISP = (NEW, PASS), , . ,

//ST2

EXEC

PGM=M

//ST3

EXEC

PGM= *.ST1.SYSLMOD

В первом пункте задания выполняется программа редактора связей, которая имеет имя IEWL. Описание библиотеки, в которую помещается загрузочный модуль, производится в операторе SYSLMOD DD. Библиотека имеет имя АВС. Два знака & перед именем библиотеки указывают на то, что это временная библиоте­ ка, которая перестанет существовать после завершения задания. Загрузочный модуль, помещаемый в эту временную библиотеку, получает имя А . Параметр DISP указывает, что библиотека но­ вая, т. е. создается в этом пункте и передается для использования в последующих пунктах. Второй пункт ST2 выполняет програм­ му М из общей библиотеки. Третий пункт ST3 указывает на то, что необходимо выполнить программу, полученную в пункте ST1 в на­ боре данных, описанном оператором SYSLMOD. Иначе говоря, бу­ дет выполнена программа А из временной библиотеки АВС, кото­ рая была создана редактором связей.

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

Р1ЮС= имя процедуры

5*

и л и

имя п р о ц е д у р ы

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

Ниже рассматривается употребление ключевых параметров в операторе пункта задания.

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

Р А Я М = и н ф о р а ц и я

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

поля информации,

заключенной

в апострофы, переносить нельзя.

В соответствии

с правилами

передачи параметров, рассматри­

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

.Учетная информация пункта задания указывается в параметре АССТ, имеющем следующий формат:

А С С Т = ( у ч е т н а я и н ф о р м а ц и я )

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

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

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

C O N D = ((koa, оператор, пункт задания),...)

Код и оператор принимают те же значения, что и в аналогич­ ном параметре оператора задания. Указание пункта задания ссылается на один из предыдущих пунктов задания, код возврата

68

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

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

Параметр DPRTY определяет значение диспетчерского приори­ тета для программы пункта задания, которая становится первой задачей пункта. Этот параметр используется в мультипрограммном режиме с переменным числом задач, а также в режиме с фиксиро­ ванным числом задач, допускающим образование подзадач. Фор­ мат параметра следующий:

D P R T Y = ( зн а ч е н и е 1, зн а ч е н и е 2)

Значение 1 и значение 2 представляют собой числа в диапазоне от 0 до 15. Значение диспетчерского приоритета может изменяться в диапазоне от 0 до 255 и определяется по формуле

зн а ч ен и е 1 X 1 6 + з н а ч е н и е 2

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

В операторе ЕХЕС могут быть заданы параметры REGION и ROLL, имеющие то же назначение, что и в операторе задания, но только в отношении одного пункта задания. Если эти параметры заданы в операторе задания, то их задание в операторах пунктов задания игнорируется.

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

Параметр TIME можно задавать как в операторе

задания, так и

в операторе пункта задания.

 

Рассмотрим пример оператора ЕХЕС.

 

//S T 1

Е Х Е С P G M = A B C , P A R M = ( I 1 , 9 5 ) .

 

// А С С Т = 3 8 7 4 1 , C O N D = (8, L T ). D P R T Y = ( 3 ,

12),

/ /

T I M E = 8

 

69

Пункт задания имеет имя ST1. В пункте задания выполняется программа АВС, которой передаются два числа 11 и 95 в поле информации, адрес адреса которой будет помещен в регистр 1 пе­ ред передачей управления программе АВС, Учетная информация — 38741. Пункт задания не будет выполнен, если хотя бы один из предыдущих пунктов того же задания выработает код возврата более 8. Диспетчерский приоритет пункта задания равен 60 (3X16+12 = 60). Время выполнения пункта задания ограничено 8 мин.

8.4. ОПЕРАТОРЫ ОПИСАНИЯ ДАННЫХ

Операторы описания данных (операторы DD) должны следо­ вать после оператора ЕХЕС и определять каждый набор данных, используемый в пункте задания. Оператор DD имеет следующий формат:

//и м я D D о п е р а н д ы к о м м е н т а р и и

Имя должно начинаться в колонке 3 и содержать от 1 до 8 бук­ венно-цифровых символов (от А до Z, от 0 до 9), причем цифра не может быть первым символом. Все операнды оператора DD явля­ ются необязательными, но отсутствие параметров не допускается. Обязательно должен быть закодирован по крайней мере один па­

раметр.

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

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

Значительная часть информации предназначена для организа­ ции операций чтения или записи наборов данных: о типе органи­ зации, типе записи, длине записи, длине блока, способе буфериза­ ции, типе устройств ввода-вывода и т. д. Эта информация посту­ пает из трех источников: блока управления данными (DCB), оператора DD и метки набора данных.

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

70

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