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

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

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

Для заполнения этого блока программист должен выдать макро­ команду OPEN, которая открывает блок.

Когда блок управления данными открывается, информация из оператора DD заполняет незаполненные поля. Если некоторое поле было заполнено макрокомандой DCB, то информация для этого поля, указанная в операторе DD, не используется. Затем считывается метка набора данных (если этот набор данных уже существовал и имел метку), и из нее берется информация для не­ заполненных полей блока управления данными. Таким образом, наивысший приоритет в заполнении полей имеет блок управления данными (макрокоманда DCB), затем оператор DD и, наконец, самый низший приоритет имеет метка набора данных.

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

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

воператоре DD или метке набора данных.

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

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

Ниже рассматриваются основные параметры оператора DD. Чтобы ввести данные через входной поток, необходимо перед

набором данных поместить оператор

/ / имя D D *

или

/ / имя D D D A T A

Первый оператор используется для наборов данных, не содер­ жащих в колонках 1 и 2 символов // или /*. Второй оператор ис­ пользуется для ввода наборов данных, не содержащих в колонках 1 и 2 символов /*. Таким образом, второй оператор может быть ис­ пользован для ввода операторов языка управления заданиями (например, ввод процедур для записи в библиотеку). Конец набо­ ра данных отмечается оператором /*.

Пример использования параметра *:

/ / и м я D D *

на б о р д а н н ы х

/*

71

Наиболее часто для такого оператора используется имя SYSIN. Пример использования параметра DATA:

II

и м я D D D A T A

 

н а б о р д а н н ы х

I

*

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

В однопрограммном режиме для каждого пункта задания до­ пускается только один набор данных во входном потоке. При этом

оператор DD с параметром

* или DATA должен

быть самым по­

следним оператором DD

пункта задания. При

выполнении про­

граммы считывание происходит непосредственно с устройства сис­ темного ввода.

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

предварительно записываются на тома прямого

доступа,

откуда

считываются в процессе выполнения программы.

DSNAME. До­

Имя набора данных определяется параметром

пускается употребление сокращения DSN. Набор

данных

может

быть временным и невременным. Все невременные наборы данных должны иметь имя. Временные наборы данных могут имени не иметь.

Временный набор данных запоминается на магнитной ленте или в памяти прямого доступа. Для него либо отсутствует параметр DSN, либо он закодирован в виде DSN = && имя. Если имя опуще­ но, система сама вырабатывает имя для временного набора дан­ ных. Любое последующее использование такого набора данных должно осуществляться обратной ссылкой на оператор DD, выра­ батывающий этот набор данных. Например:

//S T 1

Е Х Е С

//О Р 1

D D

//S T 2

Е Х Е С

/ / D D 2

D D

P G M = A

U N I T = S Y S D A , D I S P = ( N E W , P A S S ) , . P G M = B

D S N = * . S T 1 . 0 P 1 , D I S P = ( O L D , P A S S ) ,

В параметре DSN оператора DD2 задана обратная ссылка на

пункт ST1, оператор ОР1, где вырабатывается новый

временный

набор данных, имя которого не указано.

 

 

Во втором случае имя временного набора данных отмечается

двумя символами &&. Можно пользоваться

и одним

символом

&, который используется также для отметки

параметров проце­

дуры. Имя содержит от 1 до 8 символов. На такой набор данных можно ссылаться по имени. Можно также использовать обратные

П

ссылки. Предыдущий пример с использованием параметра DSN для временного набора данных выглядит следующим образом:

//S T 1

//О Р 1 //S T 2

// D D 2

Е Х Е С

P G M = A

D D

D S N = &&D A T A 1, D I S P = ( N E W , P A S S ) ,

Е Х Е С

P G M = B

D D

D S N = M D A T A 1 , D I S P = ( O L D , P A S S ) , .

Оператор DD2 мог бы остаться в прежнем виде за счет употреб­ ления обратной ссылки.

Для невременных наборов данных имя может быть простым и составным. Простое имя состоит из не более чем 8 символов, при­ чем первым символом не может быть цифра или специальный сим­ вол. Составное имя состоит из нескольких имен, разделенных точ­ ками. Составное имя не.должно превышать 44 символов, включая точки.

Если имя используется для обращения к поколению набора дан­ ных, то применяется формат

D S N = hmh ( н о м е р п ок о л е н и я )

Если имя обращается к разделу библиотеки, то используется формат

D S N = hmh би б л и о т ек и (и м я р а з д е л а )

Если имя используется для обращения к индексно-последова­ тельному набору данных, то используется формат

D S N = hmh (и м я о б л а с т и )

где в качестве имени области можно использовать INDEX, PRIME

или OVFLOW.

Параметр SYSOUT оператора DD позволяет направить набор данных в выходной поток:

S Y S O U T = B b ix o flH o il к ласс

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

Запрос на устройство, используемое набором данных, осуществ­ ляется параметром UNIT. Устройство может быть указано одним из трех способов: адресом, типовым или групповым именем. Адрес состоит из номера канала, номера устройства управления и номера устройства. При указании типового имени система выбирает одно из устройств заданного типа. При указании группового имени ис­ пользуется одно из устройств группы. Примеры:

U N I T = 180

U N I T =

5010

' U N 1 T =

S Y S S Q •

В параметре UNIT можно также указать:

а) запрос на число устройств для многотомных наборов дан­ ных;

б) запрос на отсроченное монтирование тома (не в момент рас­ пределения устройств, а в момент открытия набора данных);

73

в) запрос на использование разных устройств для каких-либо указанных наборов данных;

г) запрос на использование одних и тех же устройств для ка­ ких-либо указанных наборов данных.

Параметр VOLUME (или сокращенно VOL) дает информацию о томе или томах, на которых размещаются входные или должны размещаться выходные наборы данных. С помощью этого парамет­ ра можно запросить какой-либо определенный том, несколько то­ мов для набора данных, личные тома и т. д. Томом может быть бо­ бина магнитной ленты, пакет дисков или барабан.

Каждый том может иметь метку. Существует два вида меток —

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

Перечисленные выше типы устройств (накопители на магнит­ ных лентах, дисках, барабанах) можно разделить на устройства с постоянным томом и устройства со сменными томами. К устрой­ ствам с постоянным томом относятся накопители на .магнитном барабане (например, ЕС-5033, ЕС-5035) и накопители на постоян­ ном магнитном диске (ЕС-5051). К устройствам со сменными тома­ ми относятся накопители на магнитной ленте (ЕС-5010, ЕС-5012, ЕС-5014, ЕС-5015 и т. д.) и накопители на сменных магнитных дис­ ках (ЕС-5050, ЕС-5052, ЕС-5054, ЕС-5055, ЕС-5056 и т. д.). В связи

сэтой особенностью устройств работа с томами также имеет неко­

торую специфику.

Все тома делятся на постоянно резидентные (или постоянно смонтированные), резервированные и перемещаемые.

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

а) все тома, которые физически не могут быть демонтированы

(устройства с постоянным томом);

процедурой начальной

б) том,

с которого система загружается

загрузки;

который содержит такие системные наборы

данных,

в) том,

как общая

библиотека (SYS1.LINKLIB),

библиотека

процедур

(SYS1.PROCLIB) и набор данных для входных и выходных оче­ редей (SYS1.SYSJOBQE);

74

г) любой другой том прямого доступа, который указан систем ным программистом как постоянно резидентный и запись об этом

сделана

в специальном разделе (PRESRES)

библиотеки SYS1.

PARMLIB.

 

• Том

становится резервированным в результате выдачи коман­

ды MOUNT или записи в PRESRES. Резервированный 'том оста­

ется на

устройстве до тех пор, пока не будет

выдана команда

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

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

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

. Для существующего набора данных параметр VOL должен всегда содержать серийный номер тома, за исключением случаев, когда набор данных каталогизирован (CATLG) или передается из предыдущего пункта задания (PASS). В первом случае серийный номер тома указан в каталоге, во втором— в предыдущем пункте задания.

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

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

Запрос на специальный том осуществляется кодированием под­ параметров SER или REF. Подпараметр SER требует указания серийных номеров томов, предназначенных для хранения набора данных. Если указано более одного тома, то предполагается, что набор данных хранится на нескольких томах. Серийный номер тома содержит от 1 до 6 алфавитно-цифровых символов. Допускается употребление любых других специальных символов, однако при этом серийный номер должен быть заключен в апострофы. Никаких ограничений на первый символ серийного номера не существует.

V O L = S E R = ( сер и й н ы й н о м ер , „ , . )

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

//P R 1

D D D S N = A B C ,

U N I T = 5 0 5 0 ,

V O L = S E R = 1 2 3 4 5 6 , . , ,

/ / P R 2 D D D S N = M U L T P L , U N I T == ( T A P E , 3 ) ,

/ /

V O L = S E R =

(T 100, T 101,

T 1 0 2 ) , , . ,

75

В операторе PR1 дается специальный запрос на том 123456, который предназначен для хранения набора данных АВС и должен быть монтирован на одно из устройств типа 5050. В операторе PR2 также определен специальный запрос на три тома Т100, Т101, Т102, на которых должен храниться набор данных MULTPL. Эти тома необходимо монтировать на три устройства, заданные групповым именем ТАРЕ.

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

V O L = R E F = hm h н а б о р а д а н н ы х

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

V O L = R E F = *. о б р а т н а я ссы лк а

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

Рассмотрим два пункта задания:

//PI

EXEC

P G M = A

 

//Ml

DD

D S N = X,

D I S P — (, P A S S ) , U N IT = 5050,

//

DD

VOL = SER= 111111,

//М2

D S N = Y , D I S P = ( , P A S S ) , V O L = R E F = * . M i , . . .

//P2

EXEC

P G M = B

V O L = REF = * .P 1. M 1, D I S P = (, P A S S ) , . .

//М3

DD

I ) S N = K !,

Оператор АП определяет новый набор данных X , который пере­ дается следующим пунктам задания (что указывает параметр DISP). Набор данных X должен быть размещен на томе 111111, который необходимо монтировать на одно из устройств типа 5050. Набор данных Y и набор данных К содержат обратные ссылки на оператор М \ . Разница между ссылками состоит в том, что одна из них осуществляется внутри пункта, а другая — между разными пунк­ тами. Оба набора данных, как Y , так и К , должны храниться на. том же томе, что и набор данных X . Так как набор данных X яв­ ляется передаваемым (PASS), то в качестве ссылки можно было бы указать его имя. Например, оператор Л42 можно было бы за­ писать следующим образом:

/ / М 2 D D D S N = Y, D I S P = {, P A S S ) , V O L = R E F = X , . , .

76

Если необходимо, чтобы какой-либо том использовался только одним набором данных при выполнении пункта, следует объявить его личным томом, закодировав

V O L = ( P R I V A T E , . . . )

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

V O L = (P R I V A T E , S E R = cepHHHbift н о м ер )

Неспециальный запрос на личный том может быть закодирован так:

V O L = P R I V A T E

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

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

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

//Р 1

Е Х Е С

/ / M l

D D

/ / Р 2

Е Х Е С

// М 2

D D

/V

 

R G M = A 1

U N I T = Т А Р Е , D I S P = ( , P A S S ) P G M = B1

D S N = * P ! . M 1 , V O L = P R I V A T E , D I S P = ( O L D , D E L E T E )

В операторе Ml пункта Р1 выдается неспециальный запрос на случайный том магнитной ленты (предполагается, что под груп­ повым именем ТАРЕ подразумевается группа накопителей на маг­ нитных лентах), на котором получается новый набор данных. В операторе М2 этот набор данных используется, а том объявляет­ ся личным.

Чтобы сохранить какой-либо том установленным на устройстве при переходе от одного пункта к другому, необходимо указать RETAIN в качестве второго подпараметра. Например:

V O L = ( P R I V A T E , R E T A I N , S E R = E 2 2 )

или

:

V O L = (, R E T A I N , S E R = E 22)

В случае если набор данных находится на нескольких томах, то это указание относится к последнему тому.

77

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

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

V O L = ( P R I V A T E , , 2)

или

V O L = ( , , 2)

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

V O L = ( P R I V A T E , , , 10)

Число устройств, на которых будут располагаться эти тома, мо­ жет быть меньше числа томов. В этом случае для устройств пря­ мого доступа необходимо кодировать PRIVATE.

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

D I S P = ' N E W M O D O L D

S H R

K E E P

Г K E E P

1)

D E L E T E

D E L E T E

 

P A S S

C A T L G

 

C A T L G

U N C A T L G

 

U N C A T L G

 

 

Текущее состояние набора данных определяет состояние набо­ ра перед выполнением пункта задания. Если набор данных новый;, система создает метку набора данных. Если набор данных уже су­ ществует, то система находит и считывает метку набора данных.

Значение NEW обозначает, что набор данных создается в те­ кущем пункте задания. В этом случае необходимо указать параметр

т

UNIT, а для устройств прямого доступа — параметр SPACE для определения объема памяти. При специальном запросе можно ис­ пользовать параметр VOL. NEW является стандартным значением (если первый подпараметр не закодирован, то предполагается NEW). Например:

D I S P = (, P A S S )

эквивалентно

D I S P = ( N E W , P A S S )

Значение MOD указывает на то, что набор данных модифици­ руется путем добавления данных. Когда такой набор данных от­ крывается, механизм записи-считывания устанавливается после последней записи, обеспечивая добавление данных к последова­ тельным, индексно-последовательным и библиотечным наборам данных.

Значение OLD обозначает, что набор данных уже существует. Он может быть использован как для ввода, так и для вывода. Пункт задания получает монопольный доступ к набору данных. Если существующий набор данных был ранее каталогизирован или передается из предшествующего пункта задания, то в операторе DD достаточно кодировать параметр DSN. Во всех остальных слу­ чаях необходимо еще кодировать параметры UNIT и VOL.

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

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

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

п

Значение PASS подразумевает, что набор данных передается по­ следующим пунктам того же задания. Окончательная диспозиция должна быть указана в одном из последующих пунктов. Если окончательная диспозиция не будет указана, то при завершении задания временные наборы данных удаляются, а невременные со­ храняют исходное состояние (новые удаляются, а существующие— продолжают существовать). Для наборов данных на ленте, кото­ рые передаются, не передается номер файла. Поэтому при исполь­ зовании набора данных в последующих пунктах необходимо ука­ зать его в параметре LABEL. Параметры UNIT и VOL в последу­ ющих пунктах для передаваемых наборов данных указывать не следует, так как эта информация передается вместе с набором данных.

/ / Р !

Е Х Е С

/ / M l

D D

//

Е Х Е С

/ / Р 2

// М 2

D D

P G M = A

D S N = K, D I S P = ( , P A S S ) , U N I T = 5 0 5 0 , V O L = S E R = 238, S P A C E = ( 2 4 0 , 50)

R G M = B

D S N = K, D I S P = ( O L D , C A T L G )

В операторе M l указано, что новый набор данных вырабатыва­ ется в пункте Р1 и передается для использования в следующем пункте. Он размещается на устройстве типа 5050, на томе с серий­ ным номером 238 и требует для своего размещения 50 записей (блоков по 240 байтов). В пункте Р2 того же задания этот набор данных используется. Параметры UNIT и VOL не требуются в опе­ раторе М2. В этом пункте набор данных получает окончательную диспозицию CATLG, что ведет к каталогизированию набора дан­ ных К.

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

DSN, UNIT, VOL, а также DISP.

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

Значение CATLG означает, что набор данных должен быть ка­ талогизирован. Это относится только к невременным наборам дан­ ных. Для временных наборов данных диспозиция CATLG заменя­ ется системой на PASS. Диспозиция CATLG аналогична KEEP, за

80

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