Операционные системы и программное обеспечение на платформе zSeries

       

Базовые средства создания программ


На рис. 5.59 представлены классическая последовательность этапов и базовые средства разработки программного обеспечения в операционной системе z/OS [27].

Исходный модуль, содержащий текст программы на одном из поддерживаемых языков программирования, может быть создан средствами TSO/ISPF/UNIX shell или подготовлен, а затем импортирован с рабочей станции. Для размещения исходного модуля может быть использован последовательный или библиотечный (PDS, PDSE) набор данных или файл z/OS UNIX. Компиляция исходного текста программы осуществляется встроенным языковым компилятором или ассемблером. z/OS включает как новые 64-разрядные компиляторы для таких языков, как, например, С/С++ и Cobol, так и множество старых версий. Компиляторы, которые могут запускаться как в пакетном, так и в интерактивном режиме, формируют объектный модуль, содержащий откомпилированный код и необходимые вспомогательные таблицы. Объектные модули обычно размещаются в наборе данных (библиотеке объектных модулей) или файле UNIX для последующего связывания с другими объектными модулями, размещенными в системных или пользовательских библиотеках. Компиляторы языков С/С++ и Cobol, а также HL Assembler дают возможность получить объектные модули расширенных форматов XOBJ или GOFF (Generalized Object File Format), допускающих использование длинных внешних имен (до 32767 байт).


Рис. 5.59.  Базовые средства разработки приложений в 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). Загрузчик производит размещение программы в виртуальном адресном пространстве и подготавливает ее к выполнению, осуществляя настройку адресных констант. Обычно сразу же после загрузки программа получает управление, то есть начинает выполняться под управлением ОС.

Как видно из рис. 5.59, существует возможность выполнять загрузку программ, минуя стадию сохранения загрузочного модуля (программного объекта) в библиотеке. Для этой цели может использоваться Binder или же специальный пакетный загрузчик (Batch Loader), который на основе объектного модуля строит загрузочный модуль "старого" формата и размещает его в виртуальной памяти.


Содержание раздела