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

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

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

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

Добавлен: 17.10.2024

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

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

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

ного вывода (класс А). Задание может выглядеть следующим образом:

/ / В Т

J O B

/ / S T I

E X E C

/ / D D N 1

D D

II

D D

/ / I N P U T

в х о д н о й н а б о р д а н н ы х

C L A S S = B , P R T Y = 7 , R E G I O N - 5 0 K 1 P G M = A

U N I T = 5 0 5 0 , D I S P = ( N E W , P A S S ) , S P A C E = ( T R K , (25, 5 ) )

*

I*

/ / S T 2

E X E C

P G M = B

/ / D D N 2

D D

D S N = * . S T 1 . D D N 1 , D I S P = ( M O D , P A S S )

/ / S T 3

E X E C

P G M = C

/ / D D N 3

D D

D S N = * . S T 1 . D D N 1 , D I S P = ( O L D , D E L E T E )

/ / O U T P U T ' D D

S Y S O U T = A

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

Если тот же набор данных используется в различных заданиях, то он не может быть временным. Пусть его имя будет BETA и он располагается на томе 222222 устройства 5050. Необходимо выпол­ нить те же самые программы, но в различных заданиях. Набор данных BETA сохранить. Предусмотреть автоматический рестарт пункта задания для программ А и С.

Задание, создающее набор данных BETA:

/ / B T l

J O B

C L A S S = B , P R T Y = 7, R E G I O N = 5 0 К

/ / S T I

E X E C

P G M = A , R D = R

/ / D D N l

D D

D S N = B E T A , D I S P = ( N E W , K E E P , D E L E T E ) ,

/ /

U N I T =

5050, V O L = S E R = 222222,

If

S P A C E = ( T R K , (2 5 ,5 ))

/ / I N P U T

D D

*

в х о д н о й н а б о р д а н н ы х

!*

Задание, модифицирующее набор данных BETA:

// В Т 2

J O B

C L A S S = B , P R T Y = 7 , R E G I O N = 50K!

/ / S T 2

E X E C

P G M = B

/ / D D N 2

D D

D S N = B E T A , U N I T = 5 0 5 0 ,

/ /

V O L = S E R = 222222, D I S P = ( M O D , K E E P )

Задание, использующее набор данных BETA:

// В Т 2

J O B

C L A S S = B , P R T Y = 7 , R E G I O N = 50K

/ / S T 3

E X E C

P G M = C , R D = R

/ / D D N 3

D D

D S N = B E T A , U N I T = 5 0 5 0 ,

/ /

V O L = S E R = 2 2 2 2 2 2 , D I S P = ( O L D , D E L E T E , K E E P )

/ / O U T P U T D D

S Y S O U T = A

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


Задание, создающее набор данных BETA:

// В Т 1

// STJ IID D N 1

//

//

/ / I N P U T

J O B

C L A S S = B , P R T Y = 7 , R E G I O N = 5 0 K

E X E C

P G M = A , R D = R

D D

D S N = B E T A , D I S P = ( N E W , C A T L G , D E L E T E ) ,

U N I T = 5 0 5 0 , V O L = S E R = 2 2 2 2 2 2 ,

S P A C E = ( T R K , (2 5 ,5 ))

D D

*

в х о д н о й н а б о р д а н н ы х

I *

Задание, модифицирующее набор данных BETA*

// В Т 2

J O B

C L A S S = B , P R T Y = 7 , R E G I O N = 50K

//S T 2

E X E C

P G M = B

/ / D D N 2

D D

D S N = B E T A , D I S P = ( M O D , C A T L G )

Задание, использующее набор данных BETA:

// В Т З

J O B

C L A S S = B , P R T Y = 7 , R E G I O N = 5 0 K

/ / S T 3

E X E C

P G M = C , R D = R

/ / D D N 3

D D

D S N = B E T A , D I S P = (O L D , D E L E T E )

/ / O U T P U T D D

S Y S O U T = A

4. СУПЕРВИЗОР

4.1. ОБЩИЕ СВЕДЕНИЯ

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

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

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

При описании макрокоманд применяются следующие синтакси­ ческие обозначения.

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

96


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

регистр 1,Т

предусматривает, что «регистр 1» при написании макрокоманды необходимо заменить на конкретное значение, а сочетание «,Т» непосредственно употребить в макрокоманде. После замены ука­ занная выше запись может выглядеть следующим образом:

2,Т

где 2 является значением переменной «регистр 1».

2. Фигурные скобки { }, содержащие несколько расположен­ ных столбиком операндов, обозначают, что нужно сделать выбор одного из них. Например, обозначение

UJ

говорит о том, что необходимо употребить либо А, либо В.

3. Квадратные скобки [ ], содержащие один или несколько расположенных столбиком операндов, указывают на то, что нужно сделать выбор одного из них либо опустить запись. Например, обозначение

Ш

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

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

[ ц и ф р а ], . . .

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

ц и ф р а ,

. . .

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

4,2. СОГЛАШЕНИЯ О СВЯЗЯХ

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

7. Заказ 3414,

. 973

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

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

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

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

4.3. РЕГИСТРЫ СВЯЗИ

Регистры общего назначения 0, 1, 13, 14 и 15 называются реги­ страми связи и используются: управляющей программой. Рекомен­ дуется использовать их и при передаче управления от одной про­ граммы пользователя к другой независимо от того, осуществляется эта передача посредством управляющей программы или нет. Со­ держимое регистров связи может изменяться управляющей про­ граммой при выполнении передач управления и при использовании системных макрокоманд. Управляющая программа не изменяет содержимое регистров 2—12.

Регистры 0 и 1 используются для передачи параметров управ­ ляющей или вызываемой программе. В системных макрокомандах значения параметров засылаются в регистр 0 или 1 или оба реги­ стра. После этого производится обращение к программе суперви­ зора, использующей эти параметры. Эти действия выполняются в макрорасширении системной макрокоманды. Сама программа супервизора в макрорасширение не входит.

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

98


дню из поля PARM оператора

 

ЕХЕС.

В этом

случае список

 

параметров

состоит из одного

 

слова, так

как

считается, что

 

передается один параметр.

 

Регистр

13 содержит

адрес

 

области сохранения для про­

 

граммы,

которой

передается

 

управление. Управляющая про­

 

грамма

может

использовать

 

эту область

при обработке за­

 

просов, сделанных с помощью

 

системных макрокоманд. Про­

 

грамма,

которой

передается

 

управление, может использо­

 

вать эту область сохранения с

 

помощью макрокоманды SAVE.

 

Регистр 14 при передаче уп­

 

равления вызываемой програм­

 

ме содержит либо

адрес

воз­

 

врата к вызывающей програм­

 

ме, либо адрес возврата

к уп­

Р и с . 18. П е р е д а ч а п а р а м е т р о в

равляющей

программе,

куда

 

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

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

4.4. СОХРАНЕНИЕ РЕГИСТРОВ

Первым действием каждой программы должно быть сохране­ ние содержимого общих регистров, которые изменяются в процес­ се выполнения программы. Регистры 0, 1, 13, 14, 15 необходимо сохранять в любом случае, так как их содержимое, а также при­ знак результата изменяются при использовании системных мак­ рокоманд супервизора и управления данными.

Общие регистры запоминаются в области сохранения разме­ ром 18 слов, которая должна выделяться вызывающей програм-

7*

99


А д р е с С о д е р ж и м о е

0

— 3

И с п о л ь з у е т с я п р о г р а м м а м и , н ап и сан н ы м и на П Л /1

4 — 7

А д р е с п р е д ы д у щ е й о б л а с т и с о х р а н е н и я

8 — 11

( з а п о м и н а е т с я в ы зы в а ю щ ей п р о гр а м м о й )

А д р е с с л е д у ю щ е й о б л а с т и с о х р а н е н и я

12 — 15

( з а п о м и н а е т с я т е к у щ е й п р о гр а м м о й )

Р е ги с т р 14 ( а д р е с в о зв р а т а )

1 6 — 19

Р е г и с т р

15

( а д р е с точки в х о д а )

2 0 — 2 3

Р е ги с т р 0

 

2 4 - 2 7

Р е ги с т р 1

 

2 8 — 31

Р е ги с т р 2

 

3 2 — 3 5

Р еги ст р

3

 

3 6 — 3 9

Р е ги с т р

4

 

4 0 — 4 3

Р е ги с т р 5

 

4 4 — 4 7

Р е ги с т р 6

 

4 8 — 51

Р е ги с т р

7

 

5 2 — 5 5

Р е ги с т р

8

 

5 6 — 59

Р е ги с т р

9

 

6 0 - 6 3

Р еги ст р

10

 

6 4 — 67

Р е ги с т р 11

 

6 8 — 71

Р е ги с т р

12

 

 

Р я с .

19. Ф о р м а т

о б л а с т и с о х р а н е н и я

мой. На рис. 19 приведен формат этой области. При передаче уп­ равления вызываемой программе адрес области сохранения дол­ жен содержаться в регистре 13. Содержимое каждого регистра запоминается в определенном месте области сохранения. Напри­ мер, регистр 0 всегда запоминается в 20—23 байтах области со­ хранения, регистр 2 — в 28—31 байтах и т. д. Проще всего запо­ минать все регистры. При этом последующие изменения в про­ грамме не приведут к изменению содержимого регистров.

Для сохранения регистров можно использовать команду груп­ повой записи (STM) либо макрокоманду SAVE. Последняя имеет следующий формат:

[и м я ]

S A V E

(р е ги ст р 1 [, регистр

2] ) , [Т ]

[, и д е н т и ф и к а т о р ]

 

Регистры 1 и 2

обозначают, от какого и до

какого регистра

не­

обходимо

осуществить сохранение.

Регистры

указываются в

том

же порядке, как при использовании команды групповой записи. Операнд Т свидетельствут, что необходимо произвести сохранение регистров 14 и 15.

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

Если указан идентификатор одним из перечисленных способов, то в макрорасширении, отступив 4 байта после адреса, приведен­ ного в регистре 15 (адрес точки входа), помещается 1 байт с ука-