Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

История и перспективы современных больших вычислительных машин (Mainframes) часть 3

#5 май 2006
автор: Галямова Е. В.

Программные продукты для z/OS

История и перспективы современных больших вычислительных машин (Mainframes)

 

Языковая среда z/OS, средства разработки, языки программирования в операционной системе z/OS и программные продукты, работающие в среде mainframe

 

Программные продукты для z/OS

Операционная система z/OS обычно содержит дополнительное программное обеспечение, которое требуется для создания «рабочей» среды:

      менеджеры безопасности

      менеджеры баз данных

      компиляторы (дальше они будут рассмотрены подробнее)

      утилиты

      фирменные продукты

 

Middleware для z/OS

Программное обеспечение промежуточного слоя Middleware – это, обычно, программное обеспечение между ОС и конечным пользователем или программой конечного пользователя.

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

Типичное z/OS middleware включает:

      Базы данных

      Веб-серверы

      Управление очередями и функциями маршрутизации

      Менеджеры транзакций

      Виртуальные машины Java

      Функции обработки XML

 

В операционной системе z/OS реализована поддержка большого числа языков программирования. Среди них: Java, COBOL, PL/1, C++ и др. Каждый из этих языков ориентирован на определенную задачу, например Java идеально подходит для разработки Интернет-приложений – серверных и клиентских приложений, COBOL - для банковских и бизнес приложений, C++ идеален для системного программирования и написания приложений, критичных к ресурсам.

 

 

 

 

Языковая среда z/OS (z/OS Language Environment)

 

Операционная система z/OS XL C/C++ использует среду исполнения C/C++ и библиотеку сервисов времени исполнения, доступных в языковой среде z/OS. Языковая среда состоит из 4-х языко-зависимых библиотек времени исполнения, а также из базовых процедур и основных сервисов, как показано на рисунке 3.1.

 

Рисунок 3.1. Библиотеки в языковой среде z/OS

 

Языковая среда z/OS предоставляет следующие возможности:

·       базовые сервисы для многих приложений, такие как: интернационализация, завершение приложений, выделение памяти, межъязыковое взаимодействие и перехват условий;

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

·       доступ к сервисам операционной системы; системные сервисы z/OS UNIX доступны программисту через привязки z/OS XL C/C++;

·       доступ к специфичным для языка библиотекам функций.

 

Средства разработки программных продуктов

Традиционно, все средства разработки разделяются на:

·       компиляторы;

·       отладчики;

·       профайлеры.

Далее в статье будет детально рассмотрен каждый из этих пунктов, с учетом специфики z/OS на примере средств разработки на С++ под операционную систему z/OS, а именно, пойдет речь о компиляторе z/OS XL C/C++ Compiler.

 

Компилятор z/OS XL C/C++ Compiler

Основными особенностями компилятора z/OS XL C/C++ Compiler являются следующие:

 

·       Поддержка системных сервисов UNIX, включая иерархическую файловую систему для хранения исходных текстов и выходных файлов;

·       Поддержку библиотек динамической компоновки (DLL). Поддержка DLL также возможна при использовании z/OS UNIX;

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

·       Межъязыковые вызовы между программами на C/C++ и ассемблером, COBOL, PL/I или FORTRAN;

·       Поддержка длинных имен. Таким образом, внешние имена могут быть в смешанном регистре и длиной до 1024 знаков;

·       Широкие возможности оптимизации;

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

 

Также стоит отметить, что этот компилятор поддерживает международный стандарт языка программирования С++ ISO/IEC 14882:1998. Также планируется добавление поддержки стандарта C++ ISO/IEC 14882:2003(E).

 

Компиляция программы

Для компиляции программы необходимо назначить входные и выходные данные.

 

Входные данные разделяются на главные и второстепенные.

К главным данным относятся исходные тексты программы. Главные входные данные могут быть:

·       последовательный набор данных;

·       член распределенного набора данных;

·       все члены распределенного набора данных;

·       файл иерархической файловой системы

·       все файлы в каталоге иерархической файловой системы;

К второстепенным входным данным относятся включаемые файлы.

         

Выходными данными могут являться:

·       объектные модули;

·       файлы листингов;

·       вывод препроцессора

·       файл событий

·       вывод шаблонов;

·       реестр шаблонов;

 

Как и входные данные,  выходными данными могут быть также:

·       последовательный набор данных;

·       член распределенного набора данных;

·       все члены распределенного набора данных;

·       файл иерархической файловой системы

·       все файлы в каталоге иерархической файловой системы;

 

Возможности оптимизации программного продукта на этапе компиляции

 

Компилятор обладает серьезными возможностями оптимизации, такими как:

 

·       встраивание (inlining) функций;

·       исключение локальных выражений, объединение нескольких инструкций в одну;

·       исключение простых или дублирующихся выражений;

·        перемещение кода, или вынос вычислений за пределы цикла (если такое возможно);

·       замена менее эффективных инструкций более эффективными;

·       планирование инструкций – компилятор меняет порядок инструкций на более эффективный;

·       удаление неиспользуемых переменных;

·       удаление неиспользуемого кода.

 

Также компилятор выполняет как внутрипроцедурный, так и межпроцедурный анализ. Внутрипроцедурный анализ позволяет оптимизировать каждую функцию в единице трансляции, используя информацию, доступную только в данной единице трансляции. Межпроцедурный анализ позволяет производить оптимизацию всей программы, миную границы единиц трансляции.

 

Отладчики

 

На настоящий момент наиболее популярными отладчиками являются WebSphere Developer Debugger for zSeries и Debug Tools for z/OS. По сути, WebSphere Developer Debugger отладчиком на самом деле не является, а просто интегрируется с Debug Tools for z/OS, предоставляя графический интерфейс и некоторые другие сервисы. В данном разделе речь пойдет именно о Debug Tools for z/OS.

 

Отладчик Debug Tools работает в следующих средах:

·       DB2

·       CICS

·       TSO

·       JES batch

·       Системные сервисы UNIX в режиме удаленной отладки или в полноэкранном режиме через терминал VTAM.

·       IMS

Debug Tools могут работать в одном из двух возможных режимов -  интерактивной или пакетной отладки.  В режиме пакетной отладки возможна отладка приложения с использованием специального командного файла, написанного на языке скриптов JCL.

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

 

Есть возможность динамической установки точек останова программы, то есть, отладчик  Debug Tools позволяет устанавливать точки останова в приложении, отслеживать изменение переменных и следить за выполнением условий во время работы программы. Кроме того, позволяет отследить выполнение программы по шагам, позволяет протоколировать работу программы, используя отладчик как утилиту тестирования.

 

Профайлеры

 

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

Под z/OS доступен программный продукт «Perfomance Analyzer», входящий в пакет Productivity Tools и выполняющий следующие функции профайлера:

 

·       Диагностика аварийных завершений программы, то есть, во время трассировки функций доступна история вызовов, что позволяет точно определить место аварийного завершения программы;

·       Трассировка многопоточных программ, при  этом возможен вывод информации трассировки для каждого отдельного потока.

 

Результаты работы профайлера «Perfomance Analyzer» могут  быть представлены в виде следующих данных:

·            диаграмма вложенных вызовов, когда исполнение программы показывается в виде серии вызовов функций и возвратов;

·            динамический граф вызовов в виде двумерного графического представления процесса выполнения программы, показывающего иерархию вызовов;

·            статистический текстовый отчет о системных ресурсах, потраченных каждой функцией.

·            временная диаграмма, показывающая вызовы функции в хронологической последовательности.

 

Как видим, операционная система z/OS обладает современными компиляторами и мощными средствами отладки и профилирования, что позволяет разрабатывать приложения разного уровня сложности и для разного класса задач.

 

 

Использованная литература

 

1.    XL C/C++ Programming Guide, SC09-4765-06

2.    XL C/C++ User’s Guide, SC09-4767-04

 

 


Тематические рубрики:
Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2022 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)