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

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

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

но. Если программа REUSMOD будет занята, то задача, выдавшая запрос, попадает в состояние ожидания. В противном случае зада­ ча получает управление ресурсом и выдает макрокоманду CALL. После возврата управления и анализа кода возврата производит­ ся освобождение ресурса макрокомандой DEQ.

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

В процессе дальнейшего выполнения программа А модифици­ рует первое и второе слова указанного поля путем увеличения со­ держимого на единицу. В программе В первое и второе слова за­ гружаются в регистры 5 и 6, а в программе С — в регистры 9 и 10. Таким образом, программы В и С не изменяют содержимого поля. Однако необходимо обеспечить, чтобы между загрузкой первого

слова

и загрузкой

второго слова не произошло изменения поля

программой А,

т. е.

чтобы первое и второе слова имели одинаковый

уровень изменения.

 

 

Программа А имеет следующую структуру:

 

G E T M A I N

R , L V = 80

 

L R

2,1

 

 

 

A T T A C H

Е Р = В .............................................................

 

A T T A C H

Е Р = С .............................................................

 

E N Q ( N 1 , N 2 , Е , 4, S T E P )

M l

L

3 ,0 (2 )

 

 

 

L A 3 ,1 (3 )

 

 

 

S T 3 ,0 (2 )

 

 

М 2

L

3 ,4 (2 )

 

 

 

L A

3 ,1 (3 )

 

 

 

S T

3 ,4 (2 )

 

 

 

D E Q (N 1 , N 2 , 4, S T E P )

N 1 D C

* ' C L 8 ’Q Q 1 1'

 

N 2

D C

C L 4 ’RR1 Г

 

 

Программа

В имеет следующую структуру;

E N Q

L

L ’

D E Q

M l D C М 2 D C

( M l , М 2 , S , 4, S T E P ) 5 ,0 ( 2 )

...........................................................................................................

6 ,4 (2 )

( M l , М 2 , 4, S T E P )

C L 8 ’QQ1 Г

C L 4 ’RR1 Г

9*

131

Программа С имеет следующую структуру:

E N Q ( N M , M N , S , 4, S T E P )

L

9 ,0 ( 2 )

 

L

1 0 ,4 (2 )

 

D E Q

( N M , M N , 4, S T E P )

N M

D C

C L S ’Q Q l Г

M N

D C

C L 4 ’R R 1 T

Память для данных размером 80 байтов запрашивается в про­ грамме А макрокомандой GETMAIN. Адрес выделенного поля па­ мяти загружается в регистр 2. Далее в программе А выдается мо­

нопольный запрос на ресурс,

определяемый именами

QQ11 и

RR11. После выдачи запроса

производится

модификация

первого

и второго слова.

(смещение 0)

увеличивается на еди­

Содержимое первого слова

ницу. Для этого используется группа из трех команд, помеченная меткой Ml. Затем содержимое второго слова (смещение 4) увели­ чивается на единицу. Для этого используется группа из трех команд, помеченная меткой М2. Для сложения единицы использует­ ся команда LA. Пбсле завершения модификации ресурс освобож­ дается макрокомандой DEQ.

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

и RR11).

5. ОРГАНИЗАЦИЯ ДАННЫХ

6.1. ОСНОВНЫЕ ПОНЯТИЯ

Одной из основных функций управляющей программы ОС ЕС является управление данными.

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

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

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

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

133

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

5.2. ФОРМАТЫ ЛОГИЧЕСКИХ ЗАПИСЕЙ

Для организации набора данных нужно выбрать формат запи­ сей. Выбор формата записей определяется природой самих данных и алгоритмом их последующей обработки. Внутри набора данных все записи должны иметь одинаковый формат. В ОС ЕС преду­ смотрены три формата записей: записи фиксированной длины (формат F), записи переменной длины (формат V) и записи неоп­ ределенной длины (формат U).

Размер записей фиксированной длины — постоянная величина для всех записей набора данных, поэтому для управляющей про­ граммы достаточно однократного задания длины записей. Первым байтом логической записи может быть управляющий символ, ко­ торый используется либо для выбора приемного кармана при перфорации набора данных, либо для управления форматом печа­ ти при распечатке набора. Коды управляющих символов указаны в приложении 1. Управляющий символ опознается управляющей программой, если она получает от программиста указание об ис­ пользовании управляющего символа, и применяется только при выводе данных на соответствующее устройство (т. е. карточный перфоратор или АЦПУ). Если управляющий символ использует­ ся при выводе данных, он не перфорируется и не распечатывается. В противном случае он рассматривается как первый байт данных.

Логические записи фиксированной длины могут объединяться в блоки. Блоки набора данных содержат одинаковое число логиче­ ских записей (хотя допускается и наличие.укороченных блоков), однако длина блока должна быть кратной длине логических запи­ сей. Работа с записями фиксированной длины проста для програм­ миста, ее целесообразно использовать во всех возможных случаях.

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

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

134

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

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

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

Б лок I

Б лок 2

Б л о к З

 

Б л о к 4

Б л о к 5

Б л о к 6

 

Сегмент 7

Сегмент 2

СегментЗ

Сегмент 1

Сегмент 2

С егмент З

первой

первой

первой

 

вт орой

вт орой

вт ор ой

 

логической

логической

логической

логической

логической

л огической

з а п и с и

за п и с и

зйлйсО

з а п и с и

за п и си

за п и с и

 

i — ►

■*i — ►

l l — *~

I—

г - Ч

— г — ►

"

h

*

 

 

 

 

 

 

Р и с . 22. С егм е н т и р о в а н и е л оги ч еск и х за п и с е й б е з бл о к и р о в а н и я

(^ +

^ = 0

 

Каждый сегмент логической записи содержит управляющее поле длиной 4 байта. Первые 2 байта этого поля содержат длину сегмента, третий байт содержит код начала сегмента, его продол­ жения или конца, а четвертый байт не используется. Блок из сег­ ментов оформляется так же, как и в случае без сегментирования.

блок 1

 

Блок 2

блок з

 

блок 4

блок 5

- Сегмент 1

 

Сегмент 2

СегментЗ

Сегмент /

 

 

первой

 

первой

первой

вт орой

второй

второй

л огическо й

логической

логической

логической

логической

логической

за п и с и

 

за п иси

записи

записи

записи

записи

г —

---------1 — ►

- -------------------------1

-----------------------------►

_____г _ _ * .

u - i — и

Р и с .

23.

С е г м е н т и р о в а н и е л о ги ч еск и х за п и с е й с бл о к и р о в а н и е м

135

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

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

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

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

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

5.3. ОРГАНИЗАЦИЯ ДАННЫХ НА ПЕРФОКАРТАХ

Наиболее употребительны 80-колонные перфокарты. На такой перфокарте размещено 80 колонок, которые пронумерованы слева

136

направо от 1 до 80, и 12 строк, которым присвоены номера сверху вниз: 12, 11, 0, 1, 2, .... 9. В любой из 960 позиций перфокарты можно отперфорировать прямоугольное отверстие. Информация на перфокарту может быть нанесена двумя способами. Первый способ кодирования информации состоит в том, что каждая колонка пер­ фокарты представляет собой символ в перфокарточном коде ЕС ЭВМ (см. приложение 2). Информация поступает в оперативную память ЭВМ в коде ДК.ОИ. В этом случае максимальная длина физической записи равна 80 байтам.

Второй способ кодирования предусмотрен для ввода в ЭВМ ин­ формации, отперфорированной в двоичном коде. В этом случае каждая колонка перфокарты содержит 2 байта, представленных в двоичном виде. Первый байт занимает строки 12, 11, 0, 1, 2, 3; вто­ рой байт — строки 4, 5, 6, 7, 8, 9. При передаче в оперативную па­ мять данных таким образом подготовленной перфокарты у каждо­ го из байтов разряды 0 и 1 нулевые, а далее следует комбинация из шести разрядов, считанная с перфокарты. При таком способе кодирования максимальная длина физической, записи на перфо­ карте составляет 160 байтов.

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

5.4. ОРГАНИЗАЦИЯ ДАННЫХ НА ПЕРФОЛЕНТЕ

Информация на перфоленту наносится в виде непрерывной по­ следовательности символов, каждый из которых закодирован в виде определенной комбинации пробивок в одной колонке. В ЕС ЭВМ предусмотрено использование 5-, 6-, 7- и 8-дорожечных пер­ фолент. Практически информация может быть нанесена на перфо­ ленту в любом коде, в этом коде она и будет введена в оператив­ ную память ЭВМ. Кодопреобразование введенной информации производится, если это требуется, программным путем. Оно может выполняться управляющей программой или программой поль­ зователя. Управляющая программа ОС ЕС стандартно преду­ сматривает кодопреобразование из 7-разрядного кода ЕС ЭВМ (см. приложение 3) во внутримашинный код ДКОИ (см. приложе­ ние 4) или обмен без кодопреобразования. Управляющая програм­ ма имеет достаточно простой аппарат встраивания любых таблиц для кодопреобразования.

При организации наборов данных на перфоленте используются два формата записей — формат F и формат-U. Записи в формате F наносятся на перфоленту друг за другом и не разделяются между

137

собой. Записи в формате U отделяются друг от друга символом «Конец блока». Роль символа «Конец блока» может выполнять лю­ бой символ из используемого набора символов.

Один набор данных может размещаться на нескольких бобинах перфоленты. На одной бобине можно разместить несколько набо­ ров данных. В последнем случае наборы отделяются друг от друга участками перфоленты без пробивок (обязательно наличие синхро­ дорожки), длина которых не менее 25 см. Управляющая програм­ ма ОЕ ЕС не предусматривает контроля начального и конечного блока набора данных, таким образом, оператор отвечает за уста­ новку соответствующей бобины перфоленты. Однако при необхо­ димости такой контроль может выполнять программа пользова­ теля.

Подобно наборам данных на перфокартах наборы данных на перфоленте имеют последовательную организацию. Устройства ввода и вывода информации на перфоленту ЕС ЭВМ допускают только последовательную обработку набора данных на перфо­ ленте.

5.5. ОРГАНИЗАЦИЯ ДАННЫХ НА МАГНИТНОЙ ЛЕНТЕ

В ЕС ЭВМ используются 9-дорожечные магнитные ленты, что позволяет записывать на них 8-разрядный байт и контрольный разряд. Информация записывается на магнитную ленту в коде ДКОИ и может иметь плотность записи 8 байтов на 1 мм или 32 байта на 1 мм. Информация на магнитной ленте начинается от точ­ ки загрузки, которая отмечается специальным маркером начала ленты. Информационные блоки разделяются межблочными про­ межутками.

Минимальная длина блока равна 18 байтам. Емкость одной бо­ бины магнитной ленты составляет примерно 23 Мбайта при плот­ ности записи 32 байта на 1 мм. Информационные массивы на маг­ нитной ленте разделяются специальным блоком, называемым ленточной маркой. На магнитной ленте имеется маркер конца лен­ ты. Он индицирует, уместилась ли последующая запись на магнит­ ную ленту. При организации наборов данных на магнитных лен­ тах может использоваться любой из трех возможных форматов за­ писей.

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

138

привести к значительной потере машинного времени или к затира­ нию информации на магнитной ленте.

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

Группа меток, идентифицирующая том, записывается в начале каждой бобины магнитной ленты и может содержать от одной до восьми меток с идентификаторами VOL1— VOL8. Используется только одна метка VOL1. Управляющая программа с помощью этой метки контролирует правильность установки тома на накопи­ теле.

Группа меток начала набора данных может содержать от од­ ной до восьми системных меток с идентификаторами HDR1 —■ HDR8, а также до восьми пользовательских меток с идентифика­ торами UHL1— UHL8. Чаще используются две метки: HDR1 и HDR2. HDR1 используется управляющей программой для контро­ ля правильности подвода запрошенного набора данных. Метка HDR2 содержит характеристики набора данных: формат записи, длину блока, длину логической записи и пр. Группа меток начала набора данных отделяется от собственно данных ленточной мар­ кой.

Группа меток конца набора данных (конца тома) может содер­ жать от одной до восьми системных меток с идентификаторами EOF1—EOF8(EOVl—EOV8),a также до восьми пользовательских меток с идентификаторами UTL1—UTL8. Обычно используются две метки: EOF1 и EOF2 (EOV1 и EOV2), их содержимое аналогично содержимому меток HDR1 и HDR2, что позволяет обрабатывать набор данных в обратном направлении от конца к началу. Метка EOF1 содержит число блоков в области данных набора. Управ­ ляющая программа использует это число для контроля правильно­ сти считывания набора. Собственно данные отделяются от группы меток конца набора данных ленточной маркой. После группы меток конца набора данных следует одна ленточная марка, если вслед за этим набором данных размещен следующий, или две ленточные марки, если это последний набор данных на данном томе. После группы меток конца тома следует одна ленточная марка. Группа меток конца тома записывается в том случае, когда набор дан­ ных не умещается на данную магнитную ленту, и его продолжение помещается на другую ленту.

Метки пользователя обрабатываются специально идентифици­ рованными подпрограммами, входящими в состав программы пользователя или вызываемыми ею. Управляющей программе со­ общается об использовании меток пользователя в параметре LA­ BEL оператора DD, описывающего набор данных. Возможен так­

139

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

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

нумерацией.

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

Магнитные ленты, которые предназначаются для работы со стандартными метками, предварительно инициализируются. Ини­ циализация тома магнитной ленты состоит в записи на нем стан­ дартной метки тома (VOL1), фиктивной метки начала первого на­ бора данных (HDR1) и ленточной марки. Эта операция выполняет­ ся с помощью системной утилиты IEHINITT. Выполнение такой инициализации совершенно необходимо для любой ранее неис­ пользованной магнитной ленты, если во время генерации опера­ ционной системы в нее не включена возможность обхода обработ­ ки метки тома.

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

140

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