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