ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 г.