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

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

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

5.6. ОРГАНИЗАЦИЯ ДАННЫХ НА ТОМАХ ПРЯМОГО ДОСТУПА

В ЕС ЭВМ предполагается большое разнообразие томов пря­ мого доступа — это различные пакеты дисков и магнитные бара­ баны. С точки зрения форматов физических записей и организации данных тома прямого доступа ЕС ЭВМ идентичны. Поэтому доста­ точно ознакомиться с организацией данных на пакетах дисков для накопителей типа ЕС-5050.

Пакет дисков для накопителей типа ЕС-5050 состоит из 6 дис­ ков. Запоминающая поверхность каждого диска представляет со­ бой совокупность дорожек, на которые записывается информация. Группа дорожек, доступных при фиксированном положении меха­ низма доступа накопителя, называется цилиндром. Цилиндр рас­ сматриваемого пакета дисков содержит 10 дорожек (на наружных поверхностях верхнего и нижнего дисков запись не производится). Число цилиндров определяется количеством дорожек на одной за­ поминающей поверхности (в данном случае оно равно 203). Ци­ линдры нумеруются от 0 до 202. Дорожки внутри цилиндра нуме­ руются от 0 до 9. Данные на дорожку записываются в виде блоков и нумеруются с нуля.

Таким образом, физический адрес блока на пакете задается в виде CCHHR, где СС — двоичное число, указывающее номер ци­ линдра (два байта); НН — двоичное число, указывающее номер дорожки (два байта); R — двоичное число, указывающее номер блока на дорожке (один байт). Блоки записываются на дорожку в виде двух или трех отдельных областей, разделенных промежут­ ками: области идентификатора, области ключа и области данных. Область ключа может отсутствовать, поэтому блоки могут быть

сключами или без них.

ме т ко н о и о л а оборот а

П р о м еж у т о к

Собственисли адрес дорожки

 

 

 

------------------- А . . .

----------------ч

Облаете иден­

Область идеи-

Л ^ * Г О £ > И '

Аобласт о идеи

Область \

Т$ П\СА\ П т и ф и к а т о р а

[

\т и ф и кпт о ра

п д онн схХ

дамных\ | [ |/т иф икат оро

 

Р и с .

24. Ф о р м а т д о р о ж к и

с б л о к а м и б е з клю чей

 

На рис. 24 и 25 изображены форматы дорожки с блоками, имеющими ключи, и с блоками без ключей.

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

141

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

с

L е>

ЯВ"

4

я

я

5

я

9

я

*

о.

QJ

Ч

о

га

Я

о

ч

я

я

*

о

о.

о

4 £-

га

5

о.

о

О

о

я

О,

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

На рис. 24 и 25 пока­ зана также структура блока. Идентификатор блока содержит физиче­ ский адрес блока, а также информацию о длине клю­ ча и данных. Ключ блока содержит некоторый при­ знак блока (например, имя блока), который мо­ жет использоваться в ка­ честве аргумента при по­ иске блока, если неизве­ стен его физический ад­ рес. Длина ключа может составлять от 1 до 255 байтов. Нулевая длина ключа означает его отсут­ ствие. Максимальная дли­ на поля данных, опреде­ ленная в идентификаторе, равна 65 535 байтам. Од­ нако обычно длина блока не превышает длины од­ ной дорожки (у пакетов для накопителей ЕС-5050 3625 байтов) либо, если в устройстве управления накопителями реализова­ на возможность сегменти­ рования блоков, не пре­ восходит длины цилинд­

ра.

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

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

142

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

У большинства томов прямого доступа все дорожки делятся на две группы — группу основных дорожек и группу запасных до­ рожек. Так, у пакетов для накопителей типа ЕС-5050 к группе ос­ новных дорожек относятся дорожки цилиндров 0—199, а к группе запасных — дорожки цилиндров 200—202. Если при проверке по­ верхности тома в группе основных дорожек обнаруживается де­ фектная дорожка, то она подменяется запасной дорожкой. Авто­ матический переход с дефектной дорожки на соответствующую запасную выполняется с помощью блока R0. Идентификатор блока Ro дефектной дорожки содержит адрес запасной дорожки, которая ее подменяет, а идентификатор блока Ro этой запасной дорожки содержит адрес соответствующей дефектной дорожки. Так уста­ навливается взаимосвязь между дефектной дорожкой и заменяю­ щей ее запасной дорожкой.

Во время инициализации тома на нулевой дорожке нулевого цилиндра формируется метка тома, которая представляет собой блок, содержащий идентификатор, ключ длиной 4 байта (VOL1) и собственно метку длиной 80 байтов. Эта метка по своему форма­ ту и назначению аналогична метке тома VOL1 на магнитной ленте и отличается от нее только тем, что дополнительно содержит физический адрес оглавления тома. Вслед за меткой на этой же дорожке могут располагаться дополнительные метки тома с иден­ тификаторами VOL2 — VOL8.

Оглавление тома — это набор данных, который содержит метки всех наборов данных, находящихся в текущий момент времени на данном томе. Кроме того, оглавление содержит информацию о сво­ бодных областях, имеющихся на томе. Оглавление тома состоит из блоков, имеющих 44-байтовую область ключа и 96-байтовую об­ ласть данных. Каждый блок представляет собой метку определен­ ного формата и назначения. В момент инициализации тома оглав­ ление формируется в следующем виде. Первой в оглавлении тома стоит метка 4-го формата. Это метка самого оглавления. В ней со­ держится информация об устройстве, на котором установлен том, информация о размере самого оглавления, о запасных дорожках на томе и т. д. Далее следует метка 5-го формата, в ней записывает­ ся информация о свободных областях на томе (нижняя и верхняя границы непрерывной области в виде физических адресов). В одной метке 5-го формата могут быть описаны 26 непрерывных областей.

При большем числе свободных областей на то'ме

заводится

еще одна метка 5-го формата. Метки 5-го формата,

если их не­

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

ции тома прямого доступа на нем находится только

один набор

данных — оглавление тома, поэтому вся остальная

часть тома

указана в метке 5-го формата как свободная. Вся остальная часть оглавления заполняется метками нулевого формата, которые не

143

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

Инициализацию томов прямого доступа можно выполнить, используя либо независимую утилиту IBCDASDI, либо систем­ ную утилиту IEHDASDR. Управляющая программа ОС ЕС обес­ печивает автоматическое распределение памяти на томах прямого доступа. Для запроса памяти на томе прямого доступа использу­ ется параметр SPACE оператора DD, описывающего набор дан­ ных. В момент выделения памяти под набор данных на томе пря­ мого доступа в оглавление тома помещаются метки, описывающие этот набор.

Наборы данных, находящиеся на томе прямого доступа, могут описываться метками 1-го, 2-го и 3-го форматов. Метка 1-го фор­ мата имеется в оглавлении для каждого набора данных. Она ис­ пользуется управляющей программой ОС ЕС для определения физических границ областей тома, выделяемых под набор данных. В одной метке 1-го формата могут быть описаны границы только трех непрерывных областей тома. Если же при выделении памяти под набор данных число непрерывных областей превышает три, то в оглавлении тома заводится метка (или несколько меток) 3-гэ формата, в которой описываются последующие области тома. Мет­ ки 1-го и 3-го форматов связываются между собой в цепочку. Одна метка 3-го формата может содержать описания до 13 областей, выделенных под набор данных.

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

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

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

144

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

Оглавление тома может быть распечатано с помощью систем­ ной утилиты IEHLIST.

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

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

На томах прямого доступа кроме рассмотренных выше меток наборов данных можно использовать метки пользователя начала и конца набора данных. Об их использовании управляющей про­ грамме сообщается через параметр LABEL оператора DD, описы­ вающего набор данных. Под метки пользователя отводится толь­ ко одна, первая дорожка, отведенная под набор данных. На эту дорожку помещаются сначала метки начала набора данных с идентификаторами UHL1 — UHL8, а за ними метки конца набора данных с идентификаторами UTL1 — UTL8.

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

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

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

прямая.

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

10. З а к а з 3414.

145

доступ к любому разделу библиотеки осуществляется непосредст­ венно по его имени. Библиотечная организация применяется чаще всего для хранения программ и таблиц.

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

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

6. УПРАВЛЕНИЕ НАБОРАМИ ДАННЫХ

6.1. П О Н Я Т И Е М Е Т О Д А Д О С Т У П А

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

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

При способе доступа с очередями программист в своей про­ грамме предполагает обмен данными с управляющей прогр_амм$й на уровне логических записей. Объединение логических записей в блоки или выделение их из блоков выполняется управляющей про­ граммой. Ввод данных выполняется раньше, чем на него поступит запрос из программы пользователя, а вывод данных — с задерж­ кой по отношению к запросу. Управляющая программа обеспечи­ вает автоматическую синхронизацию выполнения запросов на ввод-вывод с выполнением программы и автоматическое управле­ ние буферами.

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

Сочетание способа доступа к данным с определенным типом организации набора данных называется методом доступа. Базис­ ный способ доступа применим ко всем типам организации набора данных, способ доступа с очередями ориентирован на последова­ тельную и индексно-последовательную организацию. В табл. 2 при­ ведены основные методы доступа операционной системы ЕС ЭВМ.

Каждый метод доступа имеет свой набор макрокоманд (см. при­ ложение' 5).

10"

147

О р г а н и з а ц и я д ан н ы х

По с л е д о в а т е л ь н а я

Ин д е к с н о - п о с л е д о в а - т е л ь н а я

Б и б л и о т е ч н а я П р я м а я

Т а б л и ц а 2

М е т о д д о с т у п а

п р и б а з и с н о м с п о с о б е

Ба зи с н ы й п ос л е д о в а т е л ь н ы й

( B S A M )

Ин д е к с н о - п о с л е д о в а т е л ь н ы й

( B I S A M )

п р и с п о с о б е с о ч е р е д я м и

П о с л е д о в а т е л ь н ы й

с

о ч е р е д я м и (Q SA .M )

 

И н д е к с н о - п о с л е д о в а -

 

тельн ы й с о ч е р е д я м и

 

( Q I S A M )

 

Б и бл и от еч н ы й ( В Р А М )

П р я м о й ( B D A M )

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

6.2. Б Л О К У П Р А В Л Е Н И Я Д А Н Н Ы М И

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

осуществляется с помощью макрокоманды

DCB (см. приложе­

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

обязательных

операн­

Макрокоманда DCB имеет только два

д а — DSORG и MACRF. Первый задает тип организации

набора

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

348

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

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

В операторе DD можно задать следующие операнды макро­ команды DCB: BFALN, BFTEK, BLKSIZE, BUFL, BUFNO, CODE, CYLOFL, DEN, DSORG, EROPT, KEYLEN, LIMCT, LRECL, MODE, NCP, NTM, OPTCD, PRTSP, RECFM, RKP, STACK.

В метках наборов данных могут содержаться следующие пара­ метры оператора DD:

магнитная лента — RECFM, BLKSIZE, LRECL, BFALN;

тома прямого доступа — RECFM, OPTCD, KEYLEN, DSORG, BLKSIZE, LRECL, RKP, BFALN.

Таким образом, при формировании блока управления данными наивысший приоритет имеет информация из макрокоманды DCB,

следующей по приоритету является информация из

оператора

DD, и самый меньший приоритет имеет информация

из меток

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

Наибольший эффект указанного алгоритма формирования бло­ ка управления данными можно получить при минимальном зада­ нии операндов в макрокоманде DCB.

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

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

14?

нем адрес списка параметров, и построить этот список парамет­ ров, указав в нем адрес своей подпрограммы, которая будет вы­ полнять модификацию блока управления данными. Так как список параметров может содержать адреса нескольких подпрограмм, используемых с разными целями, то перед адресом подпрограммы указывается код функции, которая должна выполняться этой про­ граммой. Например, код функции модификации блока управления данными — 05.

Следующий пример иллюстрирует построение такого списка параметров:

Н А К О Р *

D C B

. . , , E X L S T = L I S T

L I S T

D C

Х '0 2 ’

 

 

D C A L 3 ( B E G I N )

 

D C X ’0 5 ’

К о д п р о гр а м м ы м о д и ф и к а ц и и

 

D C A L 3 ( M O D ) А д р е с эт о й п р о гр а м м ы

 

D C

Х ’8 4 ’

 

 

D C

A L 3 ( E N D )

Программисту

предоставляется возможность модифицировать

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

Рассмотрим пример. Имеется программа, которая пользуется базисным последовательным методом доступа и буферы заводит внутри себя с помощью команды DS. Пользователь программы этого не знает, поэтому он в операторе DD определяет число буфе­ ров, равное 3, для большей совместимости работы ввода-вывода и процессора. Это приводит к тому, что управляющая программа выделит память под эти три буфера, но использоваться они не смогут. При выделении памяти под эти буферы может произойти аварийное завершение программы из-за недостатка памяти. Что­ бы предотвратить такие случаи, в программу достаточно ввести подпрограмму модификации блока управления данными, которая всегда устанавливает количество буферов в нуль. Отдельные поля блока управления данными можно модифицировать после завер­ шения процедуры его открытия.

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

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

150

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