Командный режим TSO/E
TSO/E является компонентом операционной системы MVS, обеспечивающим для множества пользователей возможность интерактивного совместного доступа к ресурсам мэйнфрейма при разработке и выполнении приложений и заданий, а также управлении данными. Для работы с подсистемой TSO/E необходим терминал типа 3270, подключенный к мэйнфрейму. Чаще всего в качестве терминала используют стандартный персональный компьютер (ПК) с установленной терминальной программой (например, IBM Personal Communication). Связь ПК с мэйнфреймом осуществляется по сети на основе протоколов TCP/IP или SNA.
Каждый пользователь TSO/E получает уникальный идентификатор (user ID) и пароль, устанавливаемые администратором RACF. Открытие сеанса работы производится по команде LOGON, которая требует ввода указанных и некоторых других атрибутов для авторизации и настройки пользовательской среды. Ввод команды LOGON приводит к созданию нового адресного пространства z/OS, в котором функционируют системные приложения поддержки диалогового сеанса и могут запускаться пользовательские приложения.
В рамках сеанса пользователь может выполнять интерактивные действия в стиле командной строки, используя специальный язык команд TSO. Приглашением к вводу команды обычно является выводимое на экран сообщение READY.
Команда TSO/E состоит из имени команды, за которым обычно следуют один или более операндов. Имя команды отделяется от первого операнда одним или несколькими пробелами. Операнды друг от друга отделяются пробелами или запятой. В качестве имен команд чаще всего используются подходящие англоязычные слова, соответствующие их функциональному назначению. Почти все команды и ключевые операнды команд TSO/E имеют дополнительные сокращенные имена, которые можно использовать наряду с полными именами. Перечень основных команд TSO/E с указанием выполняемых функций приведен в таблице 5.5.
ALLOCATE | ALLOC | Распределение (создание) новых наборов данных |
CALL | CALL | Загрузка и выполнение программ |
CANCEL | CANCEL | Прерывание выполнения пакетного задания |
DELETE | DEL | Удаление наборов данных или разделов библиотек |
EDIT | E | Ввод и/или редактирование наборов данных |
FREE | FREE | Освобождение ранее распределенных наборов данных |
HELP | H | Получение информации о выполняемых функциях, синтаксисе и операндах команд, а также о сообщениях |
LISTALC | LISTA | Вывод списка наборов данных, распределенных в текущем сеансе TSO/E |
LISTCAT | LISTC | Вывод списка наборов данных, имена которых начинаются с префикса пользователя или наборов данных в личном каталоге |
LISTDS | LISTD | Вывод списка атрибутов наборов данных |
LOGOFF | LOGOFF | Завершение терминального сеанса TSO/E (выход из системы) |
LOGON | LOGON | Начало терминального сеанса TSO/E (вход в систему) |
OUTPUT | OUT | Вывод листинга задания |
PRINTDS | PR | Печать набора данных на системном принтере |
PROFILE | PROF | Просмотр и редактирование профиля пользователя |
RECEIVE | RECEIVE | Получение отправленного сообщения или набора данных |
RENAME | REN | Переименование каталогизированного набора данных или раздела библиотеки |
RUN | R | Компиляция, загрузка и выполнение исходной программы из указанного набора данных |
SEND | SE | Отправка сообщений другим пользователям TSO/E или системному оператору |
SMCOPY | SMC | Копирование одного набора данных в другой |
STATUS | ST | Проверка текущего состояния выполняемого задания |
SUBMIT | SUB | Запуск пакетного задания на исполнение |
TERMINAL | TERM | Просмотр и редактирование параметров терминала пользователя |
TRANSMIT | XMIT | Отправка сообщений или наборов данных пользователям системы или других систем |
Операнды служат для указания информации, необходимой для выполнения команды, причем могут быть как позиционными, так и ключевыми. При вводе команд можно использовать как прописные, так и строчные буквы. Поддерживается два способа ввода команд, представленных на рис. 5.30 на примере команды RENAME (переименовать набор данных) [22]. Команда RENAME имеет два позиционных параметра: имя переименовываемого набора данных (здесь OLD.DATA) и новое имя, которое устанавливается для этого набора данных (NEW.DATA).
Рис. 5.30. Способы использования команд TSO/E
В первом случае команда вводится полностью со всеми требуемыми операндами, во втором вводится только имя команды, после чего система выдает пользователю запросы на ввод необходимых операндов (режим с подсказками).
Для начального знакомства с командами TSO/E удобно использовать команду HELP. Команда HELP без операндов выводит на экран перечень всех доступных команд:
HELP LANGUAGE PROCESSING COMMANDS: ASM INVOKE ASSEMBLER PROMPTER AND ASSEMBLER F COMPILER. CALC INVOKE ITF:PL/1 PROCESSOR FOR DESK CALCULATOR MODE. COBOL INVOKE COBOL PROMPTER AND ANS COBOL COMPILER. FORT INVOKE FORTRAN PROMPTER AND FORTRAN IV G1 COMPILER . . .
Пользователь может потребовать также вывести справку по любой команде, указав ее имя в качестве операнда команды HELP:
HELP RENAME
Такая справка содержит описание функции команды, ее синтаксиса и назначение каждого из операндов.
Помимо собственных команд TSO/E поддерживает возможность выполнения пользовательских приложений в двух режимах: интерактивном (Foreground) и фоновом (Background). В интерактивном режиме программа запускается по специальной команде (RUN или CALL) в адресном пространстве текущего пользовательского сеанса TSO/E. Процесс выполнения программы при этом полностью контролируется с пользовательского терминала, на который выдаются сообщения и результаты работы и с которого могут вводиться исходные данные. Пока выполняется интерактивная программа, пользователь не может задействовать терминал для другой работы.
Команда RUN служит для выполнения программ, представленных в исходном коде. При этом автоматически производится компиляция, редактирование связей, загрузка и исполнение. Однако для использования команды RUN необходимо, чтобы в системе были установлены соответствующие программные средства, включая компиляторы с различных языков программирования и редактор связей (Binder).
Команда CALL служит для загрузки и запуска подготовленных к выполнению программ, т.е. программ, представленных в виде загрузочного модуля. Это могут быть либо пользовательские прикладные программы, либо системные программы, такие как компиляторы или утилиты. Пользователь должен указать имя загрузочного модуля, которое должно соответствовать имени раздела библиотечного набора данных, например:
CALL 'USER5.MYPROG.LOADMOD(PROG3)'
или
CALL 'SYS1.LINKLIB(IEUASM)'
Использование апострофов позволяет отменить автоматическую модификацию имени набора данных, принятую в TSO/E по умолчанию и связанную с добавлением к имени старшего квалификатора, совпадающего с идентификатором пользователя.
Существует возможность передать программе параметры. Для этого необходимо ввести значения параметров, заключенные в апострофы, сразу же после имени набора данных:
CALL 'PROGRAM(MYPROG)' 'FIRST,SECOND'
Для выполнения программы в фоновом (пакетном) режиме необходимо составить задание с использованием языка управления заданиями JCL и разместить его в наборе данных. Задание можно передать на выполнение по команде SUBMIT:
SUBMIT 'U.JCLLIB.CNTL(JOB1)'
При этом задание передается подсистеме управления заданиями и будет выполнено в адресном пространстве инициатора JES. Результаты работы программы помещаются в набор данных SYSOUT, который можно просмотреть в любое время. В данном режиме пользователь может продолжать использовать терминал, не дожидаясь завершения выполнения задания.
В пакетном режиме следует выполнять программы, которые не используют средства диалога и могут потребовать значительного количества системных ресурсов и времени.
Такие программы нецелесообразно выполнять в интерактивном режиме, поскольку терминал не будет доступен для работы в течение длительного времени и пользователь вынужден будет пассивно дожидаться их завершения.
Когда задание направляется на выполнение, система присваивает ему идентификационный номер, ссылаясь на который можно получить информацию о текущем состоянии задания (команда STATUS), потребовать у системы выдать листинг, когда задание завершит работу (команда OUTPUT), а также в любой момент прервать выполнение задания (команда CANCEL).
Пользователю TSO/E предоставляется возможность создавать командные процедуры, используя специальные языки, такие как CLIST и REXX. Данные языки позволяют с помощью стандартных команд TSO/E, а также специальных операторов и встроенных функций, создавать интерпретируемые программы, которые можно запускать на выполнение непосредственно из командной строки. С помощью командных процедур можно работать с наборами данных в интерактивном режиме, настраивать и запускать пакетные задания, создавать диалоги ISPF.