Средство обработки транзакций

редактировать
z / TPF
IBM logo.svg
Разработчик IBM
Написано на z / Architecture Assembly язык, C, C ++
Семейство ОСязык ассемблера z / Architecture (z / TPF), язык ассемблера ESA / 390 (TPF4)
Рабочее состояниеТекущее
Исходная модельЗакрытый исходный код (Исходный код доступен лицензированным пользователям с ограничениями)
Первоначальный выпуск1979; 41 год назад (1979)
Последний выпуск 1.1.0.14 / ноябрь 2016 г.; 4 года назад (2016-11)
ПлатформыIBM System z (z / TPF), ESA / 390 (TPF4)
Тип ядра В реальном времени
По умолчанию пользовательский интерфейс 3215 3270
Лицензия Собственная ежемесячная плата за лицензию (MLC)
Официальный веб-сайтСтраница продукта z / TPF

Средство обработки транзакций (TPF) - это IBM операционная система реального времени для мэйнфреймов компьютеров, произошедших от IBM System / 360 семейство, включающее zSeries и System z9.

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

Хотя существуют и другие промышленные системы обработки транзакций, в частности собственные CICS и IMS IBM, TPF специализируется на экстремальных объемах и больших количествах. одновременных пользователей и очень быстрое время отклика. Например, он обрабатывает транзакции кредитной карты VISA во время пикового сезона праздничных покупок.

Приложение TPF для бронирования пассажиров PARS или его международная версия IPARS используется многими авиакомпаниями.

Одним из основных дополнительных компонентов TPF является высокопроизводительная специализированная база данных под названием TPF Database Facility (TPFDF).

Близкий родственник TPF, монитор транзакций ALCS, был разработан IBM для интеграции служб TPF в более распространенную операционную систему мэйнфреймов MVS, теперь z / OS.

Содержание

  • 1 История
  • 2 Пользователи
  • 3 Эксплуатация среда
    • 3.1 Тесно связанный
    • 3.2 Слабо связанный
      • 3.2.1 Общие записи процессора
      • 3.2.2 Уникальные записи процессора
  • 4 Атрибуты TPF
    • 4.1 Чем TPF не является
    • 4.2 Что TPF - это
      • 4.2.1 Записи данных
      • 4.2.2 Программы и место проживания
      • 4.2.3 Использование памяти
  • 5 Ссылки
  • 6 Библиография
  • 7 Внешние ссылки

История

TPF произошел от программы управления авиалиниями (ACP), бесплатного пакета, разработанного в середине 1960-х годов IBM совместно с крупными авиакомпаниями Северной Америки и Европы. В 1979 году IBM представила TPF как замену ACP и как платный программный продукт. Новое название предполагает более широкий охват и эволюцию в организации, не связанные с авиакомпаниями.

TPF традиционно был средой IBM System / 370 языка ассемблера по соображениям производительности, и многие приложения ассемблера TPF сохраняются. Однако более поздние версии TPF поощряют использование C. Другой язык программирования, названный SabreTalk, родился и умер на TPF.

IBM объявила о выпуске текущего выпуска TPF, получившего название z / TPF V1.1, в сентябре 2005 г. Наиболее важно то, что z / TPF добавляет 64-битную адресацию и требует использования 64-битной Инструменты разработки GNU.

Компилятор GCC и DIGNUS Systems / C ++ и Systems / C - единственные поддерживаемые компиляторы для z / TPF. Компиляторы Dignus предлагают меньше изменений исходного кода при переходе с TPF 4.1 на z / TPF.

Пользователи

Текущие пользователи: Sabre (бронирование), VISA Inc. (авторизация), American Airlines, American Express (авторизация), [DXC Technology] SHARES (бронирование - ранее EDS, HPES ), Holiday Inn (центральное бронирование), Amtrak, Marriott International, Travelport (Galileo, Apollo, Worldspan, Axess Japan GDS), Citibank, Air Canada, Trenitalia (бронирование), Delta Air Lines (бронирование и выполнение операций) и Japan Airlines.

Условия эксплуатации

Тесно связанная

TPF может работы на мультипроцессоре, то есть в системах с более чем одним процессором. В LPAR процессоры называются потоками инструкций или просто I-потоками . Когда TPF работает в LPAR с более чем одним I-потоком, считается, что он выполняет тесно связанный . TPF придерживается концепции SMP ; не существует концепции различий между адресами памяти на основе NUMA.

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

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

Слабосвязанная

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

Чтобы сериализовать доступы между записями данных в слабосвязанной системе, необходимо использовать метод, известный как блокировка записи. Это означает, что когда один процессор мэйнфрейма получает удержание для записи, механизм должен предотвратить получение всеми другими процессорами такого же удержания и сообщить запрашивающим процессорам, что они ожидают. В любой тесно связанной системе этим легко управлять между I-потоками с помощью таблицы удержания записи . Однако, когда блокировка достигается за пределами процессора TPF в блоке управления DASD, необходимо использовать внешний процесс. Исторически блокировка записи выполнялась в блоке управления DASD с помощью RPQ, известного как LLF (Limited Locking Facility), а затем ELLF (расширенный). LLF и ELLF были заменены механизмом блокировки многолучевого распространения (MPLF). Для работы кластеризованного (слабосвязанного) z / TPF требуется либо MPLF во всех блоках управления дисками, либо альтернативное блокирующее устройство, называемое Coupling Facility.

Общие записи процессора

Записи, которыми необходимо управлять с помощью блокировки записи процессами являются те, которые используются совместно с процессором. В TPF большинство обращений к записям осуществляется с использованием типа записи и порядкового номера . Итак, если вы определили тип записи в системе TPF «FRED» и дали ему 100 записей или порядковых номеров, то в общей схеме процессора тип записи «FRED» с порядковым номером «5» разрешился бы в точно такой же адрес файла на DASD. - очевидно, что требует использования механизма блокировки записи.

Все общие записи процессора в системе TPF будут доступны через один и тот же адрес файла, который будет разрешен в одно и то же место.

Уникальные записи процессора

Уникальная запись процессора - это запись, которая определена так, что каждый процессор, который, как ожидается, будет находиться в слабосвязанном комплексе, имеет тип записи «FRED» и, возможно, 100 порядковых номеров. Однако, если пользователь на любых 2 или более процессорах проверяет адрес файла, в который разрешается тип записи «FRED», порядковый номер «5», он заметит, что используется другой физический адрес.

Атрибуты TPF

Чем TPF не является

TPF является не операционной системой общего назначения (GPOS ). Специализированная роль TPF состоит в том, чтобы обрабатывать входные сообщения транзакции, а затем возвращать выходные сообщения в соотношении 1: 1 при чрезвычайно большом объеме с короткими максимальными затраченными сроками.

TPF не имеет встроенных функций графического пользовательского интерфейса, а TPF никогда не предлагал средства прямого графического отображения: реализация его на хосте будет считаться ненужным и потенциально опасным отвлечением системных ресурсов реального времени. Пользовательский интерфейс TPF управляется командной строкой с простыми терминалами для отображения текста, которые прокручиваются вверх, и на TPF Prime CRAS (набор агентов компьютерной комнаты - что лучше всего) отсутствуют курсоры, окна или значки, управляемые мышью. как «пульт оператора»). Символьные сообщения предназначены для общения с пользователями-людьми; вся работа выполняется с использованием командной строки, аналогично UNIX без X. Доступно несколько продуктов, которые подключаются к Prime CRAS и предоставляют функции графического интерфейса для оператора TPF, например, TPF Operations Server. Графические интерфейсы для конечных пользователей при желании должны предоставляться внешними системами. Такие системы выполняют анализ содержания символов (см. Очистка экрана ) и преобразуют сообщение в / из желаемой графической формы в зависимости от его контекста.

Будучи операционной системой специального назначения, TPF не содержит компилятора / ассемблера, текстового редактора и не реализует концепцию рабочего стола, как можно было бы ожидать от GPOS. Исходный код приложения TPF обычно хранится во внешних системах и также создается в автономном режиме. Начиная с z / TPF 1.1, Linux является поддерживаемой платформой сборки; исполняемые программы, предназначенные для работы z / TPF, должны соответствовать формату ELF для s390x-ibm-linux.

Использование TPF требует знания его Руководства по командам, поскольку нет поддержки интерактивных команд «directory» или «man» / help, к которым пользователи могли бы привыкнуть. Команды, созданные и поставляемые IBM для системного администрирования TPF, называются «функциональными сообщениями» - обычно называемыми «Z-сообщениями», поскольку все они начинаются с буквы «Z». Остальные буквы зарезервированы, чтобы клиенты могли писать свои собственные команды.

TPF реализует отладку в распределенном режиме клиент-сервер; что необходимо из-за того, что система лишена головы и имеет многопроцессорную природу: приостановка всей системы для перехвата одной задачи будет очень контрпродуктивной. Пакеты отладчика были разработаны сторонними поставщиками, которые использовали совершенно разные подходы к операциям «прерывание / продолжение», требуемые на узле TPF, реализуя уникальные протоколы связи, используемые в трафике между человеком-разработчиком, выполняющим клиент отладчика, и контроллером отладки на стороне сервера а также форма и функция программных операций отладчика на стороне клиента . Двумя примерами пакетов отладчика сторонних производителей являются Step by Step Trace от Bedford Associates и CMSTPF, TPF / GI и zTPFGI от TPF Software, Inc.. Ни один пакет не полностью совместим ни с другим, ни с собственным предложением IBM. Предложение отладочного клиента IBM упаковано в IDE под названием IBM TPF Toolkit.

Что такое TPF

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

Записи данных

Исторически все данные в системе TPF должны были соответствовать фиксированным размерам записи (и основного блока) в 381, 1055 и 4 КБ. Частично это было связано с физическими размерами записей блоков, расположенных на DASD. Значительные накладные расходы были сокращены за счет освобождения любой части операционной системы от разбиения больших объектов данных на более мелкие во время файловых операций и их повторной сборки во время операций чтения. Поскольку оборудование IBM выполняет ввод-вывод с помощью каналов и программ каналов, TPF будет генерировать очень маленькие и эффективные программы каналов для выполнения своих операций ввода-вывода - все во имя скорости. С самого начала также уделялось повышенное внимание размеру носителей информации - будь то память или диск, - приложения TPF превратились в очень мощные вещи, при этом потребляя очень мало ресурсов.

Сегодня многие из этих ограничений сняты. Фактически, только из-за устаревшей поддержки все еще используются записи DASD размером менее 4 КБ. Благодаря достижениям в технологии DASD чтение / запись записи 4K так же эффективно, как и запись размером 1055 байт. Те же достижения позволили увеличить емкость каждого устройства, так что больше не существует надбавки за возможность упаковывать данные в самую маленькую модель.

Программы и место проживания

Программа TPF также имела свои программные сегменты, выделенные как 381, 1055 и 4К-байтовые записи в разные моменты своей истории. Каждый сегмент состоял из одной записи; с типичным комплексным приложением, требующим, возможно, десятков или даже сотен сегментов. В течение первых сорока лет истории TPF эти сегменты никогда не редактировались. Вместо этого перемещаемый объектный код (прямой вывод из ассемблера) был размещен в памяти, были разрешены его внутренние (самореференциальные) перемещаемые символы, затем все изображение было записано в файл для последующей загрузки в систему. Это создало сложную среду программирования, в которой связанные друг с другом сегменты не могли напрямую обращаться друг к другу, а передача управления между ними реализовывалась как системная служба ENTER / BACK .

В первые дни ACP / TPF (около 1965 г.) объем памяти был сильно ограничен, что привело к различию между резидентными программами и резидентными ядрами . - только наиболее часто используемые прикладные программы были записаны в память и никогда не удалялись (core-резидентность ); остальные были сохранены в файле и прочитаны по запросу, а их буферная память была освобождена после выполнения.

Введение языка C в TPF в версии 3.0 было впервые реализовано в соответствии с соглашениями о сегментах, включая отсутствие редактирования связей. Эта схема быстро продемонстрировала свою непрактичность для чего-либо, кроме простейших программ на языке C. В TPF 4.1 в TPF были представлены полностью связанные загрузочные модули . Они были скомпилированы с помощью компилятора z / OS C / C ++ с использованием специфичных для TPF файлов заголовков и связаны с IEWL, что привело к загрузочному модулю, совместимому с z / OS., что никак нельзя считать традиционным сегментом TPF. Загрузчик TPF был расширен для чтения уникального для z / OS формата файла модуля загрузки, а затем размещения разделов модулей загрузки, резидентных в файле, в памяти; Между тем, программы на языке ассемблера оставались ограниченными сегментной моделью TPF, создавая очевидное несоответствие между приложениями, написанными на ассемблере, и приложениями, написанными на языках более высокого уровня (HLL).

В z / TPF 1.1 все типы исходного языка были концептуально унифицированы и полностью редактировались по ссылкам, чтобы соответствовать спецификации ELF. Концепция сегмента устарела, а это означает, что любая программа, написанная на любом исходном языке, включая Ассемблер, теперь может иметь любой размер. Кроме того, стали возможны внешние ссылки, и отдельные программы исходного кода, которые когда-то были сегментами, теперь можно было напрямую связать вместе в общий объект . Важным моментом является то, что критически важные унаследованные приложения могут получить выгоду от повышения эффективности за счет простой переупаковки - вызовы, выполняемые между членами одного модуля совместно используемых объектов, теперь имеют гораздо более короткий путь во время выполнения по сравнению с вызовом системы ENTER. / НАЗАД сервис. Члены одного и того же общего объекта теперь могут совместно использовать записываемые области данных напрямую благодаря функции копирования при записи, также представленной в z / TPF 1.1; что по совпадению усиливает требования TPF к повторной входимости.

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

Поскольку z / TPF должен был поддерживать стек вызовов для программ на языке высокого уровня, что дало HLL-программам возможность использовать преимущества распределения памяти на основе стека, Было сочтено полезным расширить стек вызовов до программ на языке ассемблера на необязательной основе, что может уменьшить нагрузку на память и упростить рекурсивное программирование.

Все исполняемые программы z / TPF теперь упакованы как общие объекты ELF.

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

Исторически, как и предыдущие, блоки ядра - память - также имели размер 381, 1055 и 4 Кбайт. Поскольку ВСЕ блоки памяти должны были иметь этот размер, большая часть накладных расходов на получение памяти, обнаруженная в других системах, была отброшена. Программисту просто нужно было решить, какой размер блока подойдет, и запросить его. TPF будет поддерживать список используемых блоков и просто передавать первый блок в доступном списке.

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

По мере того, как приложения становились все более продвинутыми, требования к памяти увеличивались, и как только C стал доступен, потребовались блоки памяти неопределенного или большого размера. Это привело к использованию хранилища в куче и некоторых процедур управления памятью. Чтобы уменьшить накладные расходы, память TPF была разбита на фреймы размером 4 КБ (1 МБ с z / TPF). Если приложению требуется определенное количество байтов, предоставляется количество непрерывных кадров, необходимое для заполнения этой потребности.

Ссылки

Библиография

  • Средство обработки транзакций: Руководство для программистов приложений (серия Yourdon Press Computing), автор Р. Джейсон Мартин (в твердом переплете - апрель 1990 г.), ISBN 978-0139281105

Внешние ссылки

Последняя правка сделана 2021-06-11 09:41:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте