Прикладное программирование в Z/OS
Основные свойства и особенности операционной системы UNIX. Сущность объектно-ориентированного программирования, структура файловой системы, базовые средства создания программ. Механизм выполнения приложений UNIX в z/OS. Организация файловой системы HFS.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 28.06.2013 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
“Омский государственный университет им. Ф.М. Достоевского”
Реферат
Прикладное программирование в Z/OS
Выполнил студент СВС-002Угр
Цупко Денис Сергеевич
Омск - 2013
Введение
Системные сервисы UNIX, получившие в новейших версиях название z/OS UNIX, являются неотъемлемым компонентом z/OS, превратившим ее в открытую операционную систему [ 5.19 ] , [ 5.20 ] . Начиная с версии OS/390 V1R2 реализована полная поддержка стандартов POSIX (Portable Operating System Interfaces Unix) и XPG 4.2 (X/Open Portability Guide), принятых многими разработчиками UNIX-систем. Таким образом, в z/OS UNIX реализовано два открытых системных интерфейса:
· интерфейс системных вызовов (API) для приложений, написанных на языке C, что дает возможность запускать стандартные UNIX-приложения в z/OS;
· интерактивный интерфейс пользователя (shell), обеспечивающий выполнение в z/OS стандартных команд, утилит и скриптов UNIX в форме, привычной для пользователей UNIX-систем.
Кроме этого, для хранения данных в z/OS UNIX реализована поддержка иерархической файловой системы UNIX, получившей название HFS (Hierarchical File System). Файлы UNIX размещаются в SMS-управляемых наборах данных z/OS специального типа (их называют HFS-наборами данных). Важно отметить, что z/OS UNIX представляет собой не надстройку или оболочку, эмулирующую интерфейсы UNIX, а является неотъемлемой частью системного ядра BCP и тесно интегрирована с другими модулями и компонентами z/OS, такими как DFSMS, RACF, WLM, SMF, RMF, SDSF, TSO/E, ISPF/PDF и др. Многие системные функции z/OS (например, TCP/IP, HTTP server), реализованы как UNIX-приложения. То же самое можно сказать и о популярных системах промежуточного слоя, таких как DB2 и Web sphere Application Server. Приложения UNIX выполняются в адресных пространствах MVS и могут запускаться как из пользовательской среды shell, так и из среды TSO/ISPF, пакетных заданий и STC-процедур. Файлы UNIX, хранящиеся в HFS, доступны как приложениям UNIX, так и классическим приложениям z/OS (MVS) и могут обрабатываться с помощью команд TSO/ISPF и JCL-заданий. Поддерживается свободное копирование и перемещение данных между файлами HFS и наборами данных MVS. У пользователей существует возможность интерактивного взаимодействия с UNIX-сервисами как через стандартный TSO/ISPF-интерфейс, так и путем прямого подключения к UNIX shell через telnet/rlogin протокол в рамках TCP/IP-соединения.
1. Элементы z/OS UNIX
z/OS UNIX является базовым компонентом z/OS и включает ядро системных сервисов UNIX (UNIX System Services Kernel) и прикладные сервисы (UNIX System Services Application Services). Основные элементы z/OS UNIX и связанные с ней компоненты z/OS представлены на рис. 1.
1.1 Ядро z/OS
UNIX интегрировано в базовую управляющую программу z/OS и служит для реализации функций интерфейса системных вызовов (API UNIX), связанных с управлением процессами, файловой системой HFS и коммуникациями. Другие, поддерживаемые в API функции, обрабатываются непосредственно z/OS с помощью так называемых вызываемых сервисов(callable services). Вызываемые сервисы могут быть использованы в программах на ассемблере и языках высокого уровня для доступа к функциям z/OS UNIX. Ядро z/OS UNIX обычно активизируется при загрузке z/OS и работает в собственном адресном пространстве MVS.
1.2 Прикладные сервисы z/OS UNIX представлены командным интерпретатором shell, набором стандартных утилит и отладчиком dbx. Командный интерпретатор поддерживает стандартный пользовательский интерфейс shell, позволяющий запускать приложения и утилиты, а также создавать и использовать командные файлы, называемые скриптами. Вводимые пользователем команды реализуются средствами ядра. Отладчик dbx предназначен для автоматизированной интерактивной отладки приложений, создаваемых на языке C/C++. Отладчик располагает набором команд, хорошо известных пользователям UNIX.
Рис. 1. Компоненты z/OS UNIX
На рис. 5.23 представлены также стандартные компоненты z/OS, тесно связанные с поддержкой системных сервисов UNIX. К ним относятся:
· TSO/ISPF - служат для выполнения команд и утилит, манипулирования файлами UNIX, а также для подключения пользователей к shell;
· компилятор C/C++ - используется для создания переносимых UNIX-приложений;
· языковая среда (LE), включающая библиотеку времени выполнения RTL (Run Time Library) для поддержки приложений (в том числе и на языке C/C++), - используется для выполнения команд shell и утилит;
· подсистема управления данными DFSMS - управляет наборами данных HFS, которые содержат файлы файловой системы UNIX;
· файловая система zFS (zSeries File System) - представленная в рамках сервисов поддержки распределенных вычислений DCE высокопроизводительная UNIX-подобная файловая система (начиная с z/OS V1R2). Может быть интегрирована в HFS как монтируемая файловая система.
· менеджер управления рабочей нагрузкой WLM - управляет созданием процессов UNIX;
· модуль сбора статистики SMF - фиксирует данные об используемых ресурсах;
· модуль управления доступом к ресурсам RACF - управляет доступом к файлам и приложениям UNIX;
· RMF - сбор данных и составление отчетов о функционировании сервисов UNIX.
2. Механизм выполнения приложений UNIX в z/OS
Для понимания механизма функционирования UNIX-сервиса необходимо установить соответствие между понятиями, используемыми в промышленных UNIX-системах, и соответствующими понятиями, применяемыми в MVS и z/OS. В частности, пользователи UNIX хорошо знакомы с понятием процесса.
Процесс представляет собой основную единицу работы в операционной системе UNIX и соответствует находящейся в стадии выполнения программе со всеми выделенными ей ресурсами. В зависимости от типа программы различают системные и пользовательские процессы. Среди системных выделяют процессы- демоны (daemon), работающие в фоновом режиме и предназначенные для поддержки вспомогательных системных сервисов (вывод на печать, электронная почта, запуск программ по расписанию и т.п.). Аналогом демонов в MVS могут считаться запускаемые процедуры (STC).
Каждый процесс имеет уникальный идентификатор PID и может по своей инициативе порождать новые (дочерние) процессы с помощью системных вызовов fork() и spawn(). Таким образом, у каждого процесса (кроме одного, самого первого) существует родительский процесс, связь с которым поддерживается благодаря еще одному атрибуту процесса PPID -идентификатору родительского процесса.
Процессы, порождаемые UNIX-приложениями в z/OS, могут выполняться исключительно в адресных пространствах (АS) MVS, причем как в собственных, так и в адресных пространствах родительского процесса (рис. 2). При использовании системного вызова fork() всегда создается новое адресное пространство, являющееся копией родительского. При использовании системного вызова spawn() может быть как создано новое адресное пространство, так и запущена новая задача внутри родительского АS. Адресные пространства, содержащие UNIX-процессы, могут порождаться и по инициативе MVS-приложений при обращении к вызываемым сервисам z/OS UNIX.
Рис. 2. Процессы в z/OS UNIX
Теперь познакомимся более подробно с механизмом выполнения приложений UNIX в z/OS, представленным на рис. 3.
Как уже отмечалось, для ядра z/OS UNIX выделяется отдельное адресное пространство (OMVS), создаваемое на этапе инициализации системы и функционирующее в соответствии с настройками, определенными в разделе BPXPRMxx системного реестра SYS1.PARMLIB. Одновременно инициализируется файловая система HFS и создается адресное пространство BPXOINIT(с помощью одноименной процедуры), выполняющее процесс-прародитель (PID=1) для всех процессов. В первую очередь BPXOINIT порождает необходимые системные процессы UNIX.
Рис. 3. Средства поддержки выполнения приложений UNIX
Новые адресные пространства для приложений UNIX создаются по запросу ядра к менеджеру управления рабочей нагрузкой WLM, который использует для этой цели специальную STC-процедуру BPXAS. Адресное пространство, создаваемое BPXAS, играет роль инициатора JES2, принимая порождаемый процесс UNIX. Командные интерпретаторы shell, являясь приложениями UNIX, как правило, запускаются в отдельных адресных пространствах для каждого интерактивного пользовательского сеанса. При этом команды и утилиты, запускаемые в рамках сеанса, могут выполняться и как отдельные задачи в адресном пространстве shell, и в собственных адресных пространствах, в зависимости от настройки пользователя. Особую роль при поддержке UNIX-приложений играет процесс-демон INETD, с помощью которого обеспечивается доступ к shell для удаленных пользователей в TCP/IP-сети с использованием протоколов telnet и rlogin.
3. Организация файловой системы HFS
Организация хранения данных в операционной системе UNIX имеет существенные отличия от традиционного способа управления данными, принятого в MVS. В первую очередь файлы UNIX, в отличие от наборов данных MVS, обрабатываются системой как простая совокупность байтов без деления на логические записи, при этом логический уровень представления данных передается приложениям. Имена файлов могут содержать до 255 алфавитно-цифровых символов, при этом различают прописные и строчные буквы. Разделение файлов UNIX по типам производится в соответствии с их функциональным назначением и по типу данных. В частности, выделяют следующие типы файлов:
· обычные - файлы общего назначения, используемые для хранения программ и данных любого типа;
· каталоги - служат для размещения справочной информации о размещении файлов, принадлежащих данному каталогу;
· устройства - ассоциируются с устройствами ввода-вывода;
· символические ссылки - содержат ссылки на другие файлы;
· именованные каналы - служат для обмена данными между процессами;
· сокеты - служат для реализации сетевого взаимодействия.
Файлы группируются по соподчиненным каталогам, образуя иерархическую древовидную структуру, представленную на рис. 4. Вершиной дерева и единой точкой входа в файловую систему является корневой каталог ( / ). Таким образом, у каждого файла существует полное или абсолютное имя, однозначно определяющее его местоположение в файловой системе:/u/user1/docs/abc, /u/user2/prg и т.п.
Рис. 4. Структура файловой системы UNIX
Наиболее важные системные программы, данные и конфигурационные файлы UNIX размещаются в специальных каталогах: /bin - команды и утилиты; /usr - файлы для поддержки решения пользовательских задач; /dev - специальные файлы устройствввода-вывода; /etc - утилиты администрирования и конфигурационные файлы; /lib - включаемые библиотеки C/C++; /tmp - временные файлы; /var - сообщения и системные журналы; /samples - примеры программ и настроечных файлов.
ОС UNIX использует собственную систему разграничения прав доступа к файлам (на чтение, запись и выполнение) для трех категорий пользователей: владельца файла, членов группы владельца и всех остальных. Все указанные выше особенности файловой системы UNIX поддерживаются системными сервисами UNIX в z/OS. Для размещения файлов UNIX и реализации иерархической структуры доступа создаются специальные однотомные SMS-управляемые наборы данных, получившие название наборов данных HFS (рис. 5). Каждый набор данных HFS содержит определенный сегмент файловой системы, точкой входа в который является один из каталогов [ 5.20 ] . Объединение сегментов HFS производится с помощью специальной операции "монтирования", выполняемой на этапе инициализации системы или динамически. Первым всегда монтируется сегмент, содержащий корневой каталог файловой системы ( / ), к которому затем могут добавляться другие сегменты. Создание и управление наборами данных HFS осуществляется стандартным компонентом z/OS DFSMS.
Рис. 5. Наборы данных HFS и файловая структура
4. Пользовательский интерфейс z/OS UNIX
Основой пользовательского интерфейса UNIX является командный интерпретатор shell, реализующий взаимодействие с пользователем через терминальное устройство. Shell поддерживает язык интерактивных команд, регламентированных стандартом POSIX 1003.2, и принимает запросы пользователя на выполнение утилит и приложений. Язык shell позволяет создавать и использовать командные файлы, называемые скриптами. В z/OS UNIX включены два типа командных интерпретаторов, базирующихся на известных в мире UNIX оболочках:
· z/OS shell на основе UNIX System V shell и Korn shell;
· tcshell на основе Berkeley C shell;
Для пользователей z/OS UNIX поддерживается несколько различных режимов интерактивного доступа к системным сервисам UNIX, как с помощью shell, так и некоторыми другими способами, представленными на рис. 6. Рассмотрим эти возможности в условиях TCP/IP-соединения с рабочей станцией (терминалом) пользователя.
Рис. 6. Режимы доступа пользователей к z/OS UNIX
Первый режим подключения является традиционным для пользователей z/OS и основан на использовании компонентов TSO/E и ISPF. В TCP/IP-сети терминалы TSO поддерживаются на основе специального протокола TN3270, представляющего собой адаптированный вариант стандартного протокола telnet. Терминалы TN3270 являются синхронными, то есть обслуживаются в режиме построчного ввода, что накладывает определенные ограничения на использование некоторых интерактивных действий пользователя по сравнению с классическими UNIX-системами.
· Команда OMVS - запускает для пользователя индивидуальную сессию командного интерпретатора shell, при этом обеспечивается:
o поддержка большинства команд shell;
o поддержка команд TSO;
o поддержка команд shell для копирования (перемещения) данных между файлами HFS и наборами данных MVS;
o использование текстового редактора ISPF;
o поддержка нескольких параллельных сессий.
· Команда ISHELL (то есть ISPF shell) - запускает адаптированный в стиле диалогов ISPF интерфейс для доступа к файловой системе z/OS UNIX, с возможностью просмотра каталогов и выполнения стандартных операций над файлами (редактирование, удаление, переименование, копирование и т.д.); поддерживает средства запуска приложений и администрирования.
· Команда OSHELL (скрипт REXX) - служит для выполнения команд shell и запуска приложений UNIX непосредственно из командной строки TSO/E.
· Набор специальных команд TSO/E для работы с файлами UNIX и копирования (перемещения) данных между файлами HFS и наборами данных MVS ( MKDIR, OGET, OPUT и т.д.).
· Утилита BPXBATCH - предназначена для запуска команд, скриптов и приложений UNIX в пакетных заданиях, при этом для описания файлов HFS используются специальные параметры оператора DD ( PATH, PATHDISP, PATHOPT, PATHMODE ).
Второй режим доступа к сервисам UNIX основан на подключении с использованием стандартных прикладных протоколов TCP/IPrlogin или telnet. Такой способ получил название "прямого подключения" к z/OS UNIX shell и поддерживает традиционные для UNIX асинхронные терминалы, обеспечивающие посимвольный ввод. Возможность прямого подключения требует инициализации и настройки серверных компонентов telnet и rlogin, а также разрешений на доступ в профиле RACF пользователя. В отличие от режима OMVS, здесь можно задействовать текстовый редактор vi, но ограничена поддержка команд TSO. Третий режим доступа к сервисам UNIX основан на использовании ftp-протокола, также являющегося стандартным прикладным протоколом TCP/IP. В данном режиме поддерживается ряд команд, с помощью которых можно получать доступ к данным MVS и UNIX и производить операции по их копированию (перемещению) на рабочую станцию пользователя и обратно, а также запускать на выполнение подготовленные на рабочей станции пакетные задания.
5. Базовые средства создания программ
В состав z/OS входят все необходимые средства, с помощью которых можно создавать, модифицировать, хранить и распространять новое прикладное программное обеспечение на различных языках программирования, включая HL Assembler и языки высокого уровня (High Level Languages), такие как С, С++, COBOL, PL/1, Fortran, Ada, Java и др. Помимо базовых средств разработки, включающих набор компиляторов, редакторы связей и средства загрузки программ, в z/OS реализована универсальная языковая среда Language Environment, содержатся многочисленные библиотеки программ и классов, представлен менеджер сопровождения разработки программного обеспечения (ISPF/SCLM). Кроме того, выпускается целый ряд продуктов, таких как IBM Visual Age, IBM Application Development Tool, которые поставляются вне z/OS и служат для автоматизации и повышения эффективности процесса разработки приложений. операционный система unix
5.1 Исходный модуль, содержащий текст программы на одном из поддерживаемых языков программирования, может быть создан средствами TSO/ISPF/UNIX shell или подготовлен, а затем импортирован с рабочей станции. Для размещения исходного модуля может быть использован последовательный или библиотечный (PDS, PDSE) набор данных или файл z/OS UNIX. Компиляция исходного текста программы осуществляется встроенным языковым компилятором или ассемблером. z/OS включает как новые 64-разрядные компиляторы для таких языков, как, например, С/С++ и Cobol, так и множество старых версий. Компиляторы, которые могут запускаться как в пакетном, так и в интерактивном режиме, формируют объектный модуль, содержащий откомпилированный код и необходимые вспомогательные таблицы. Объектные модули обычно размещаются в наборе данных (библиотеке объектных модулей) или файле UNIX для последующего связывания с другими объектными модулями, размещенными в системных или пользовательских библиотеках. Компиляторы языков С/С++ и Cobol, а также HL Assembler дают возможность получить объектные модули расширенных форматов XOBJ или GOFF (Generalized Object File Format), допускающих использование длинных внешних имен (до 32767 байт).
Рис. 7. Базовые средства разработки приложений в z/OS
Процедура редактирования связей (link edit) объединяет все необходимые объектные модули в единый загрузочный модуль, готовый к выполнению. Для хранения загрузочных модулей создаются специальные PDS- или PDSE-библиотеки, использующие формат записей RECFM=U. Ранее отмечалось, что в конфигурации z/OS обычно предусматривается несколько системных библиотек загрузочных модулей ( SYS1.LINKLIB и др.), описываемых в разделе LNKLST реестра SYS1.PARMLIB.
z/OS включает два редактора связей: стандартный Linkage Editor и усовершенствованный Program Management Binder (или просто Binder1 ). Стандартный редактор связей служит для построения загрузочных модулей "старого" формата, ориентированных на размещение в PDS-библиотеках и поддерживающих только 24- и 31-разрядные режимы адресации с ограничением общего объема кода в 16 MB. Binder обеспечивает возможность связывания объектных и загрузочных модулей в загрузочные модули нового формата - программные объекты (program object). Программные объекты включают все возможности стандартных загрузочных модулей и, кроме того, поддерживают режим 64-разрядной адресации и объектные модули расширенного формата, а также допускают увеличение объема кода до 1 GB. Программные объекты могут размещаться только в библиотечных наборах данных типа PDSE или в файлах HFS UNIX. Отметим, что Binder позволяет также создавать стандартные загрузочные модули, размещаемые в PDS, а с помощью утилиты IEBCOPY можно производить преобразование загрузочных модулей в программные объекты и обратно.
На этапе редактирования связей программный объект можно настроить определенным образом с помощью специальных параметров (опций), среди которых следует выделить следующие:
· AMODE - устанавливает используемый режим адресации (24, 31 или 64 бит);
· RMODE - устанавливает область размещения в адресном пространстве (ниже границы 16 MB или произвольно);
· REUS - устанавливает режим повторного использования (реентерабельный, используемый последовательно, обновляемый).
Редактор связей и Binder позволяют создавать динамические загрузочные модули (программные объекты), которые во время выполнения могут обращаться к внешним модулям с помощью макровызовов LOAD, LINK, XCTL, ATTACH. Готовая к выполнению программа (загрузочный модуль или программный объект) запускается на выполнение универсальной программой загрузчиком (Program Management Loader). Загрузчик производит размещение программы в виртуальном адресном пространстве и подготавливает ее к выполнению, осуществляя настройку адресных констант. Обычно сразу же после загрузки программа получает управление, то есть начинает выполняться под управлением ОС. Как видно из рис. 7, существует возможность выполнять загрузку программ, минуя стадию сохранения загрузочного модуля (программного объекта) в библиотеке. Для этой цели может использоваться Binder или же специальный пакетный загрузчик(Batch Loader), который на основе объектного модуля строит загрузочный модуль "старого" формата и размещает его в виртуальной памяти.
6. Универсальная языковая среда Language Environment
Базовый компонент z/OS Language Environment (LE) поддерживает единую универсальную среду выполнения (run-time environment) для приложений, созданных на языках программирования высокого уровня (HLL) C/C++, COBOL, PL/1 и Fortran [ 5.28 ]. Языковая среда LE включает наиболее существенные и часто используемые сервисы времени выполнения, такие как формирование сообщений, обработка событий, управление памятью, поддержка функций даты и времени и т.п. Эти сервисы доступны всем приложениям, независимо от используемого языка программирования. Кроме того, LE упрощает взаимодействие между приложениями, написанными на разных языках или для разных операционных сред, за счет специальных интерфейсных средств.
Языковая среда z/OS V1R4 поддерживает приложения, полученные с помощью следующих версий компиляторов:
· z/OS C/C++, C/C++ Compiler for MVS/ESA, AD/Cycle C/370 Compiler;
· Enterprise COBOL for z/OS and OS/390, COBOL for OS/390 & VM, COBOL for MVS & VM;
· Enterprise PL/I for z/OS and OS/390, PL/I for MVS & VM, VisualAge PL/I for OS/390;
· VS Fortran, Fortran IV;
· VisualAge for Java, Enterprise Edition for OS/390.
Приложения, написанные на HL Assembler, также могут использовать средства LE через соответствующие макровызовы.
Языковая среда LE состоит из следующих элементов (рис.8 ):
· базовые программы (basic routines), обеспечивающие универсальную обработку сообщений, запуск и завершение программ, динамическое распределение памяти, обработку событий (в том числе ошибок) времени выполнения, взаимодействие между программами, написанными на разных языках;
· общие библиотеки (common library service), содержащие набор модулей для поддержки математических функций и функций даты и времени, реализуемых на основе стандартного интерфейса вызовов функций LE (callable services);
· специфические библиотеки (language specific RTL), содержащие модули, применяемые только для одного из поддерживаемых языков HLL.
Рис. 8. Универсальная среда выполнения программ Language Environment
Создаваемые с использованием универсальных модулей LE-приложения могут выполняться в различных операционных средах, включая как внутрисистемные (TSO, пакетный режим, UNIX shell), так и среды промежуточного слоя (DB2, CICS, IMS). Следует отметить, что программы, входящие в состав библиотек LE, делятся на две группы: резидентные и динамические. Резидентные программы при редактировании связей включаются в загрузочный модуль приложения. Они представлены в библиотечных наборах данных SCEELKED и SCEEBIND. К ним относятся, например, программы запуска и завершения. Динамические программы, размещаемые в библиотеках SCEERUN и SCEERUN2, не включаются в загрузочный код, а загружаются при вызове во время выполнения.
Объединяя средства, доступные в программах, написанных на разных языках, Language Environment устанавливает единую универсальную модель среды выполнения приложений, основанную на целом ряде понятий и терминов, которые следует освоить программисту:
· Enclave - программа (главная программа вместе с подпрограммами);
· Routine - подпрограмма, функция;
· Process - программный код, данные и ресурсы, связанные с выполняющейся программой;
· Thread - поток, независимо диспетчеризуемая часть процесса;
· Local data - локальные данные подпрограммы;
· External data - данные, доступные для любых элементов анклава.
7. Средства разработки пакетного режима
Традиционный способ разработки программ, применяемый программистами в течение десятилетий, основан на использовании средств пакетного режима, реализуемых в сеансе TSO/E или ISPF/PDF. Ключевым элементом данного способа является использование стандартных процедур JCL, хранящихся в системной библиотеке SYS1.PROCLIB и предназначенных для компиляции, редактирования связей и исполнения различных HLL-программ. В таблице 5.9 представлен список некоторых таких процедур.
Таблица 1. Стандартные процедуры для разработки приложений
Язык программирования |
Компиляция |
Компиляция и редактирование |
Компиляция, редактирование и выполнение |
|
HL Assembler |
ASMAC |
ASMACL |
ASMACLG |
|
C++ |
CBCC |
CBCСB, CBCCL |
CBCCBG, CBCCLG |
|
C |
EDCC |
EDCСB, EDCСL |
EDCCBG, EDCСLG |
|
COBOL |
IGYWC |
IGYWCL |
IGYWCLG |
|
Pl/1 |
IEL1C |
IEL1CL, IBMZCB |
IEL1CLG, IBMZCBG |
Процедуры, предназначенные только для компиляции (имя процедуры заканчивается символом "C"- Compile), служат для создания и сохранения объектного модуля программы. Процедуры компиляции и редактирования служат для создания загрузочного модуля и сохранения его в библиотеке. Символы "CL" или "CB" в имени процедуры указывают на применение соответственно стандартногоредактора связей Linkage Editor или редактора Binder. Последняя группа процедур (имена заканчиваются на "CLG" или "CBG") предназначена для выполнения программы, представленной в исходном коде, причем объектный и загрузочный модули могут не сохраняться в постоянных наборах данных.
В качестве примера использования каталогизированной процедуры рассмотрим процедуру ASMACLG, предназначенную для компиляции, редактирования связей и выполнения ассемблерной программы, представленной в виде исходного модуля [ 5.29 ] . Текст процедуры приведен на рис. 9.
Процедура ASMACLG состоит из трех шагов. На первом шаге ( C ) вызывается компилятор ассемблера ASMA90, на втором шаге (L ) - редактор связей IEWL, а на третьем ( G ) - запускается созданный загрузочный модуль. Процедура не содержит символических параметров, поскольку необходимые средства настройки доступны через модификацию DD и EXEC операторов. С помощью модификации операторов DD можно определить собственные наборы данных для размещения исходного текста программы ( C.SYSIN ), объектного ( C.SYSLIN ) и загрузочного ( L.SYSLMOD ) модулей, исходных данных программы (G.SYSIN ). Для задания требуемого набора опций компилятора и редактора связей следует модифицировать параметр PARMсоответствующего оператора EXEC ( PARM.C и PARM.L ).
Рис. 9. Каталогизированная процедура ASMACLG
Рассмотрим некоторые варианты применения процедуры ASMACLG при разработке ассемблерных программ:
1. исходный модуль и исходные данные разрабатываемой программы представлены во входном потоке:
2. //TEST JOB ...
3. // EXEC ASMACLG,PARM.C=LIST,PARM.L=NOMAP
4. //C.SYSIN DD *
5. строки исходной программы
6. ...
7. /*
8. //G.SYSIN DD *
9. исходные данные
10. исходный модуль и исходные данные представлены в заранее подготовленных каталогизированных наборах данных USER.ASMи USER.DATA:
11. //TEST JOB ...
12. // EXEC ASMACLG,PARM.C=LIST,PARM.L=NOMAP
13. //C.SYSIN DD DSN=USER.ASM(PRG3),DISP=OLD
//G.SYSIN DD DSN=USER.DATA(TABL1),DISP=OLD
При работе в среде ISPF/PDF текст задания формируется с помощью текстового редактора EDIT. Запуск задания можно производить прямо из редактора с помощью команды SUBMIT. Отчет о выполнении задания можно получить и просмотреть либо с помощью утилиты Outlist, либо средствами компонента SDSF.
8. Средства разработки программ в ISPF/PDF
Наряду с традиционным способом создания приложений на основе пакетных заданий, ISPF/PDF поддерживает два специальных режима разработки, доступных через главное меню: интерактивный (Foreground) и пакетный (Batch). Эти режимы предназначены для компиляции исходных программ и получения объектных модулей для множества поддерживаемых в z/OS языков программирования (ассемблер, Fortran, COBOL, С/С++, PL/I, REXX, DTL и др.). Помимо средств компиляции, здесь доступны также интерактивные отладчики для языков COBOL и Fortran, редакторы связей (Binder и Linkage editor), а также утилита для определения связей между модулями программы (Member Parts List). Главная панель функции представлена на рис. 10. Пользователь может выбрать интересующую его программу, введя соответствующий номер в командную строку и нажав клавишу ВВОД. Если исходный набор данных упакован и выбранная функция поддерживает работу с упакованными данными (не отмечена звездочкой), предварительно следует установить переключатель Source Data Packed.
Рис. 10. Главная панель функции интерактивного режима (Foreground)
Рассмотрим особенности использования компиляторов в интерактивном режиме на примере HL Assembler. В этом случае на главной панели следует ввести 1, нажать ВВОД и перейти к панели настройки параметров компиляции, представленной на рис. 11. Исходный текст программы для выбранного компилятора может быть представлен двумя способами: в виде раздела библиотеки ISPF или как произвольный набор данных (например, как последовательный набор данных).
Рис. 11. Панель настройки параметров ассемблера
Если исходный модуль представлен в виде раздела библиотечного набора данных, существует возможность определить дополнительные исходные библиотеки, в которых могут находиться включаемые фрагменты текста (например, описываемые с помощью директивы INCLUDE ). Имена дополнительных исходных библиотек вводятся в поле Additional input libraries с использованием апострофов:
===" 'ABC.MACROS'
Если имя раздела для библиотечного набора данных не указано, появится панель списка разделов, где следует сделать выбор с помощью строчной команды S. Если исходный набор данных защищен паролем, в поле Password нужно ввести пароль.
Отчет (листинг), сформированный компилятором, будет размещен в наборе данных, имя которого выбирается автоматически в соответствии с шаблоном:
[prefix.]userid.listid.LIST
где prefix - префикс для наборов данных, установленный в пользовательском профиле TSO, userid - идентификатор пользователя, с которым он открыл сеанс работы, listid - имя, заданное пользователем в одноименном поле панели. Если префикс TSO совпадает с идентификатором пользователя, то квалификатор prefix не используется.
Если исходный набор данных является последовательным, то поле List ID обязательно должно быть заполнено. Для раздела библиотечного набора данных значение listid по умолчанию совпадает с именем исходного раздела.
Одно из полей панели предназначено для ввода параметров настройки (опций) используемого компилятора ( Assembler Options ). Следует обратить внимание, что для любого компилятора две опции считаются установленными по умолчанию:
· опция OBJECT - требует сохранить объектный код в наборе данных;
· опция LIST - требует сохранить выходной отчет в наборе данных.
Остальные опции устанавливаются в соответствии с допустимым перечнем, описанным в руководстве по соответствующему компилятору.
После определения всех необходимых параметров следует нажать клавишу ВВОД. Через некоторое время в нижней части экрана появится сообщение:
HIGH LEVEL ASSEMBLER STARTED
***
Требуется вновь нажать клавишу ВВОД.
При выполнении компиляции и ассемблирования автоматически создается сохраняемый объектный модуль. Если исходный модуль определен в виде раздела библиотеки ISPF c именем вида PROJECT.GROUP.TYPE(MEMBER), то объектный код будет записан в раздел MEMBER библиотечного набора данных с именем PROJECT.GROUP.OBJ. Если исходный модуль задан как произвольный набор данных, объектный модуль будет сформирован в наборе данных такого же типа и с таким же именем, только последний квалификатор имени примет значение OBJ.
Если процедура компиляции завершится нормально, на экране автоматически будет отображен выходной отчет в режиме просмотра BROWSE. После выхода из режима просмотра пользователь может произвести обработку отчета с помощью утилиты печати ( Foreground Print Options ). Если же процедура компиляции завершится некорректно, будет выдано короткое сообщение о причине, и перехода в режим просмотра и печати отчета не произойдет.
Особый интерес представляет использование в интерактивном режиме процедуры редактирования связей. Функция редактирования связей предназначена для получения загрузочного модуля на основе созданного на этапе компиляции объектного модуля и других объектных модулей, содержащихся в системных и пользовательских библиотеках. Панель настройки параметров редактирования связей представлена на рис. 12.
Рис. 12. Панель настройки параметров редактора связей
Объектный код программы может быть задан двумя способами: в виде раздела библиотеки ISPF или как произвольный набор данных (например, последовательный набор данных). Дополнительные библиотеки объектных и загрузочных модулей, необходимые для работы редактора, задаются путем ввода их имен в поля, помеченные как SYSLIB и SYSLIN.
В поле Linkage editor/binder options можно указать опции выбранного редактора связей. При этом следует иметь в виду, что ISPF всегда автоматически устанавливает следующие опции:
· LOAD - требует сохранить загрузочный модуль в библиотечном наборе данных;
· LIB - определяет последовательность обработки входных наборов данных;
· PRINT - требует сохранить выходной отчет в наборе данных.
Тип используемого редактора связей (Binder или Linkage editor) задается с помощью списка выбора Processor. Значение поляList ID служит для формирования имени набора данных, содержащего листинг редактора связей. Имя формируется по шаблону [prefix.]userid.listid.LINKLIST в соответствии с правилами, изложенными выше.
Создаваемый в результате загрузочный модуль будет размещен в наборе данных с именем, заканчивающимся квалификаторомLOAD (по аналогии с образованием имен объектных модулей). Практически все описанные выше средства интерактивного режима доступны и при использовании функции 5 ISPF/PDF "Пакетный режим" (Batch), которая обеспечивает поддержку средств разработки программ в пакетном режиме (рис. 13). Основное отличие от интерактивного режима заключается в том, что терминал освобождается для выполнения другой работы сразу же после запуска пакетного задания.
Рис. 13. Панель настройки параметров ассемблера
При вызове компилятора или редактора связей в пакетном режиме ISPF автоматически генерирует текст задания, включая в него все необходимые инструкции в соответствии с параметрами, определенными пользователем. Пользователь может непосредственно описать несколько инструкций, в том числе инструкцию JOB, работая с полями панели Job Statement Information. Отчет о выполнении задания может быть помещен в указанный набор данных или направлен на печать путем настройки в выбранной панели компилятора или ассемблера. Первая возможность связана с установкой параметра List ID и описана выше. Вторая возможность реализуется при вводе выходного класса задания в поле SYSOUT class. В этом случае просмотр отчета можно произвести с помощью утилиты Outlist или SDSF, как было описано выше. Выход из функции Batch с использованием команд END, RETURN или прямого перехода ( = ) приведет к автоматическому запуску сформированного задания ( SUBMIT ).
Список литературы
1. http://www.intuit.ru/en/studies/courses/85/85/lecture/1364
2. http://www.intuit.ru/en/studies/courses/85/85/lecture/1366
3. http://www.redbooks.ibm.com/abstracts/sg246981.html
4. http://www.techno.edu.ru/
Размещено на Allbest.ru
...Подобные документы
Иерархическая структура файловой системы Unix. Согласованная обработка массивов данных, возможность создания и удаления файлов, буферный кэш. Защита информации, трактовка периферийных устройств как файлов. Внутренняя структура файловой системы Unix.
реферат [102,2 K], добавлен 23.03.2010История развития ОС UNIX, ее достоинства. Управление компьютером под управлением UNIX. Интерпретация командной строки и структура файловой системы. Команды управления процессами. Средства системного администрирования и учетные записи пользователей.
презентация [78,1 K], добавлен 12.05.2014Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015История развития и отличительные признаки UNIX-системы. Основы информационной безопасности и особенности настройки исследуемой операционной системы, ее достоинства, недостатки и базовые права доступа. Общая характеристика безопасности ядра UNIX.
реферат [599,5 K], добавлен 18.09.2013Изучение основных правил проектирования операционных систем. Структура файловой системы. Компоненты, обеспечивающие способы организации, поиска и управления информацией. Краткий обзор специальных и обыкновенных файлов. Основные команды системы UNIX.
методичка [36,4 K], добавлен 02.12.2009История появления операционной системы Unix. Перекомпиляция Unix в коды любой аппаратной платформы, ее многозадачность и многотерминальность. Основные отличия Unix от других операционных систем. Использование Unix в качестве сервера и рабочей станции.
реферат [28,1 K], добавлен 05.04.2010Основные структуры процессов в операционной системе Unix. Возможные состояния процесса в Unix и способы перехода между ними. Планирование и выполнение процессов. Различия между родительским и дочерним процессом. Ожидание завершения и выполнения процесса.
курсовая работа [673,0 K], добавлен 24.02.2012Технические различия между операционными системами UNIX и Linux. Архитектура аппаратного обеспечения и ядро ОС. Поддержка файловой системы. Доступность приложений. Системное администрирование. Разработка программы на языке Си, реализующей алгоритм стека.
курсовая работа [1,0 M], добавлен 28.05.2015Различные составляющие операционной системы. Основные функции Unix системы. Подключение к системе с терминалов. Syslog. Графический интерфейс пользователя. Подключение к системе через сеть. Файловая система. Запуск системы и перезагрузка.
курсовая работа [34,9 K], добавлен 06.10.2006Особенности и свойства операционной системы UNIX, ее история, файловая структура, функции и отличия от других. Архитектура ядра системы. Понятия диспетчеризации, прерываний, системного времени (таймера), кеша. Проблема построения многопроцессорных систем.
курсовая работа [35,6 K], добавлен 10.05.2011Сущность и принцип работы операционной системы, правила и преимущества ее использования. Возможности различных операционных систем, их сильные и слабые стороны. Сравнительная характеристика систем Unix и Windows NT, их потенциал и выполняемые задачи.
реферат [10,5 K], добавлен 09.10.2009Предназначение дисковых накопителей, схема устройства жесткого диска. Критерии эффективности физической организации файлов. Схема адресации кластеров файла, используемая в стандартной на сегодняшний день для UNIX файловой системе ufs. Функции флэш-памяти.
реферат [4,0 M], добавлен 09.12.2009Unix - полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Особенности архитектуры Unix, ее два кита - файлы и процессы. Ядро операционной системы, ее файловая система, работа устройств, драйверы.
реферат [1,0 M], добавлен 22.03.2016Определение файловой системы. Виртуальные и сетевые файловые системы. Структура и версии системы FAT. Определение максимального размера кластера. Драйверы файловой системы, файлы и каталоги. Способы доступа к файлам, находящимся на удаленном компьютере.
доклад [29,2 K], добавлен 11.12.2010Понятие и особенности операционной системы UNIX как одной из самых популярных в мире операционных систем, история разработки и развития. Оценка возможности постоянного наращивания мощности кластера путем присоединения дополнительных компьютеров.
презентация [6,1 K], добавлен 23.10.2013Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.
контрольная работа [51,7 K], добавлен 22.01.2013Хабовая архитектура системных плат. Интерфейс командной строки Unix System V. Структура командной строки интерпретаторов sh и ksh. Системные, процессы-демоны и прикладные процессы. Способы порождения и запуска "демонов". Работа с сигналами UNIX.
реферат [149,5 K], добавлен 11.05.2012Технологии программирования. Сущность объектно-ориентированного подхода к программированию. Назначение Си, исторические сведения. Алфавит, базовые типы и описание данных. Структуры и объединения. Операторы Си++. Функции. Библиотека времени выполнения.
курс лекций [51,9 K], добавлен 03.10.2008Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Особенности и принцип действия файловой системы NTFS - одной из самых сложных и удачных из существующих на данный момент файловых систем. Функции файловой системы NTFS: разреженные файлы, журнал изменений, компрессия файлов и каталогов, жесткие связи.
реферат [17,4 K], добавлен 24.12.2010