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

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

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

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

Добавлен: 17.10.2024

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

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

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

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

Пусть библиотека предназначена для хранения 8 программ, каждая из которых может иметь до 3 псевдонимов. Следователь­ но, на каждую программу требуется 4 записи (1 имя + 3 псевдони­ ма). Общее число записей для оглавления составляет 32. Если предположить, что каждый блок содержит 5 записей, то для оглав­ ления требуется 7 блоков. Параметр SPACE может быть закодиро­ ван следующим образом:

S P A C E = (C Y L , (2, 1 , 7 ) )

Это означает, что для библиотеки должно быть распределено 2 цилиндра для первичного количества памяти. Вторичное количе­ ство составляет 1 цилиндр. В первичном количестве памяти долж­ но быть выделено 7 записей по 256 байтов для оглавления библио­ теки. Расширять оглавление в существующей библиотеке нельзя. Поэтому объем оглавления должен быть достаточно большим, что­ бы не потребовалось его расширения в процессе использования библиотеки. Если потребуется расширить оглавление или библио­ течный набор данных, необходимо использовать системную утилиту IEBCOPY, определив для нее новое значение параметра SPACE. Эта утилита позволяет заново создать библиотечный набор дан­ ных, сохранив его содержимое, а также сжать набор данных, что­ бы свободное место в библиотеке оставалось только в конце набо­ ра данных.

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

Третьим подпараметром параметра SPACE может быть зако­ дировано значение RLSE. Если это значение указано, то после за­ крытия набора данных (макрокоманда CLOSE) неиспользованное место в наборе данных будет считаться свободным. Это позволяет при создании набора данных заказывать максимальный объем па­ мяти и освобождать лишнюю память после создания набора дан­ ных. Освободить неиспользуемую память можно и для существую­ щего набора данных, закодировав параметр SPACE следующим образом:

S P A C E = (О, О, R L S E )

Четвертым подпараметром параметра SPACE может быть зако­ дировано одно из следующих значений: CONTIG, MXIG или ALX. CONTIG обозначает, что заказанный объем памяти должен быть выделен непрерывным участком. MXIG подразумевает, что долж­ на быть выделена наибольшая свободная область на томе, но она должна быть равной или больше заказанного объема памяти. ALX указывает, что необходимо выделить до пяти участков памяти, каж­

85


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

Рассмотрим примеры. Оператор

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , C O N T I G )

запрашивает непрерывный участок памяти размером 200 дорожек. Опёратор

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , M X I G )

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

S P A C E = (T R K , ( 2 0 0 , 1 0 ) , , A L X )

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

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

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

 

S P A C E = ( A B S T R , ( а , Ь, с ) )

 

где а — первичное количество

в дорожках; b — относительный

ад­

рес первой дорожки

набора

данных; с — размер оглавления

или

области индекса (с

может отсутствовать). Участок памяти выде­

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

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


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

Пусть три набора данных А, В и С необходимо разместить на томе магнитного диска типа 5050, используя разделение цилиндров. При этом набор данных А должен занимать 4 дорожки каждого цилиндра, а наборы данных В и С — по 3 дорожки. Общий объем памяти для всех наборов данных составляет б цилиндров; вторич­ ное количество — 1 цилиндр. В этом случае необходимо закодиро­ вать следующие операторы:

/ / M l D D D S N = A , D I S P — (, K E E P ) , U N I T = 5 0 5 0 , / / S P L I T — (4, C YL, (6, 1))

/ / М 2 D D D S N = B , D I S P = (, K E E P ) , S P L I T = 3 // М 3 D D D S N = C, D I S P — (, K E E P ) , S P L I T - 3

Кроме указанной формы параметра SPLIT, может быть исполь­ зована другая форма, в которой единицей измерения памяти явля­ ется блок. В этом случае доля дорожек на цилиндре для каждого набора данных указывается в процентах от 100%. Процент указы­ вается первым значением параметра. Второе значение определяет размер блока в байтах. Третье значение указывает первичное и вто­ ричное количество. Эту информацию содержит только первый опе­ ратор DD. Каждый следующий оператор содержит лишь указание процентов.

Рассмотрим аналогичный пример. Пусть наборы данных А, В и С требуют 240 блоков по 800 байтов. Вторичное количество не требуется. Набор данных А занимает 40% дорожек на цилиндре, а наборы данных В и С — по 30%. В этом случае необходимо зако­ дировать следующие операторы:

/ / M l D D D S N = A ,

//S P L I T -

// М 2

D D

D S N - B ,

// М 3

D D

D S N - C ,

D I S P — (, K E E P ) , U N I T - 5 0 5 0 , (40, 800, 240)

D I S P = ( , K E E P ) , S P L I T - 3 0 D I S P - ( , K E E P ) , S P L I T - 3 0

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

87


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

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

//S T 1

Е Х Е С

R G M = T

/ / M l

D D

D S N = A, D 1 S P = ( , K E E P ) , U N 1 T = 5 0 5 0 ,

а

 

S P A C E = ( T R K , 5 0 0 ,, C O N T 1 G )

// М 2

D D

D S N = B , D I S P = ( . K E E P ) ,

II

 

S U B A L L O C = (C Y L, 25, M l )

//S T 2

Е Х Е С

R G M = P

// М 3

D D

D S N = C, D I S P = ( , K E E P ) ,

II

 

S U B A L L O C = ( 8 0 0 , 400, S T 1 .M 1 )

Оператор Ml запрашивает непрерывный участок памяти разме­ ром 500 дорожек на томе устройства типа 5050. Оператор М2 за­ прашивает участок памяти 25 цилиндров из того объема памяти, который был запрошен в операторе Ml. Оператор М3 запрашивает участок памяти размером в 400 блоков по 800 байтов из той же памяти.

Параметр LABEL кодируется в следующих случаях:

а) если необходимо обрабатывать набор данных, который не является первым на томе магнитной ленты;

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

в) если набор данных имеет нестандартные метки; г) если необходимо определить срок сохранения набора дан­

ных; д) если необходимо защитить набор данных паролем;

е) если необходимо определить метод обработки набора дан­ ных, отличный от того, который указан в макрокоманде OPEN.

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

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

88


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

а)

SL

—для стандартных меток;

б)

SUL

—для стандартных меток и меток пользователя;

в)

NL

— отсутствие меток;

г)

NSL

—для нестандартных меток;

д)

BLP

—для указания системе, что метки не следует обра­

 

 

батывать.

Если набор данных имеет стандартные метки, то второй подпа­ раметр можно опустить. Для стандартных меток (SL и SUL) си­ стема осуществляет проверку правильности установки тома на устройство. Для нестандартных меток эту проверку должна делать специальная программа обработки нестандартных меток, разрабо­ танная применительно к конкретным условиям эксплуатации вы­ числительной машины и включенная в систему. Если указано BLP или NL, правильность установки ленты должен обеспечивать опе­ ратор. Если указано NL, набор данных не должен иметь стандарт­ ных меток. Для каталогизированных наборов данных информация о типе метки в каталоге не регистрируется. Следовательно, если определяется тип обработки, отличный от стандартного, необходи­ мо указывать значение второго подпараметра, даже если набор данных каталогизирован.

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

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

либо OUT, если набор данных должен обрабатываться только для вывода.

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

R E T P D = 4 h m o

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

E X P D T = ч и с л о

Число должно состоять из пяти цифр, где первые две цифры обозначают год, а оставшиеся три — порядковый номер дня в году. Например, 74032 обозначает I февраля 1974 г.