
книги из ГПНТБ / Система математического обеспечения ЕС ЭВМ
..pdf5.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