Перейти в оглавлению раздела

Часть VI

6.4. Профили систем реального времени


6.4.1 Профиль минимальных (встроенных) систем реального времени (Minimal (Embedded) Realtime System Profile) - PSE51

    Данный профиль, имеющий в классификации стандартов наименование PSE51, описывает API-окружение систем реального времени (РВ-систем) с минимальными функциональными возможностями.

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

    Так как эти системы требуют поддержки минимальной функциональности, то для обеспечения их переносимости можно обойтись небольшим набором функций из стандартов POSIX 4 and POSIX 1.

    В частности, таким системам не требуется файловая система, средства мультипроцессности, система управления памятью (memory management unit - MMU), средства пользовательского взаимодействия, общие средства ввода/вывода и пр.

    Как уже отмечалось, профили POSIX.13 имеют две основные опции, определяющие язык реализации API-интерфейсов. Одна опция соответствует использованию языка С, другая - Ada. Оба этих режима задаются в заголовочном файле посредством символьных констант {_POSIX_AEP_REALTIME_LANG_C89} и {_POSIX_AEP_REALTIME_LANG_Ada95} соответственно.

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

    Основным приемом построения функциональности профиля является селекция требуемых для систем данного класса сервисов, описанных в стандартах POSIX, посредством использования аппарата символьных констант.

    Определение функциональности системного ядра РВ-профилей формируется из следующих стандартов:

  • P1003.1 (System Interfaces - системный интерфейс) - POSIX 1
  • P1003.1b (Realtime Extension - расширение для реального времени) - POSIX 4
  • P1003.1с (Threads Extension) - POSIX 4a
  • Из стандарта POSIX 1 в профиль PSE51 выбираются следующие модули функциональности:
  • POSIX_SINGLE_PROCESS
  • POSIX_SIGNALS
  • POSIX_DEVICE_IO
  • POSIX_C_LANG_SUPPORT.

    Полная функциональность интерфейса системного ядра, определенного стандартом POSIX.1, в случае использования профиля PSE51 становится такой, как показано в таблице 6.6.

Таблица 6.6

Модуль функциональности
(Unit of Functionality)
Функции модуля функциональности
(Included Functions)
POSIX_SINGLE_PROCESS sysconf(), time(), uname()
POSIX_SIGNALS alarm(), kill(), pause(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), sigpending(), sigprocmask(), sigsuspend()
POSIX_DEVICE_IO open(), close(), read(), ungetc(), write()
POSIX_C_LANG_SUPPORT См. таблицу 6.5

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

    В частности, для стандарта POSIX.1c выбираются следующие модули функциональности:

  • POSIX_FILE_LOCKING
  • POSIX_C_LANG_SUPPORT_R

    Опции для стандартов POSIX.1, POSIX.1b, POSIX.1c. выбираются следующие.

    Для POSIX.1 выбирается опция _POSIX_NO_TRUNC.

    Для POSIX.1b выбираются опции:

  • _POSIX_FSYNC
  • _POSIX_MEMLOCK
  • _POSIX_MEMLOCK_RANGE
  • _POSIX_SEMAPHORES
  • _POSIX_SHARED_MEMORY_OBJECTS
  • _POSIX_REALTIME_SIGNALS
  • _POSIX_TIMERS
  • _POSIX_MESSAGE_PASSING
  • _POSIX_SYNCHRONIZED_IO

    Для POSIX.1c выбираются опции:

  • _POSIX_THREADS
  • _POSIX_THREAD_ATTR_STACKSIZE
  • _POSIX_THREAD_PRIO_INHERIT
  • _POSIX_THREAD_PRIORITY_SCHEDULING
  • _POSIX_THREAD_PRIO_PROTECT
  • _POSIX_THREAD_ATTR_STACKADDR

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

    Сравнивая таблицы 6.2 и 6.6 можно заметить, что большая часть примитивов механизма процессов стандарта POSIX.1 не включена в профиль PSE51. Это вызвано тем, что в данном профиле за основу параллелизма принята модель нитей, определенная в стандарте POSIX.1b (POSIX 4). Однако сигнальные сервисы POSIX.1 задействованы в полном объеме, так как являются базовым механизмом для Unix-подобных систем. Они применяются для обработки ошибок и событий в системе.

    Функции sysconf(), time(), uname() требуются для РВ-приложений, чтобы дать возможность определять значения переменных своего системного окружения. Это позволяет разрабатывать гибкое программное обеспечение, которое может исполняться на различных платформах (при этом предполагается, что CHILD_MAX=0).

    Ввод/вывод поддерживается только для основных устройств (функция open()). Поддержка каталогов и пространства полных имен файлов не требуется.

    В модели вычисления, предлагаемой профилем PSE51, приложение будет состоять их одного процесса и, возможно, нескольких нитей. Поэтому для организации параллельной обработки и синхронизации нитей предполагается использовать сигналы реального времени (Realtime Signals), семафоры, аппарат часов и таймеров, а также некоторые другие средства стандарта POSIX.1b [11].

6.4.2 Профиль систем-контроллеров реального времени (Realtime Controller System Profile) - PSE52

    Профиль PSE52 описывает несколько более развитое по сравнению с PSE51 API-окружение систем реального времени, которые применяются в системах управления с жесткими временными ограничениями, например, в качестве контроллеров устройств ввода/вывода или систем управления производственными процессами.

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

    По сравнению с профилем PSE51 в профиль PSE52 добавляются следующие функциональные возможности:

  1. Для POSIX.1 функциональные группы:
    • POSIX_FILE_SYSTEMS
    • POSIX_FD_MGMT
  2. Для POSIX.1b опции:
    • _POSIX_MAPPED_FILE
    • _POSIX_ASYNCHRONOUS

6.4.3 Профиль выделенных систем реального времени (Dedicated Realtime System Profile) - PSE53

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

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

    Функциональность данного профиля по сравнению с функциональностью профиля PSE52 изменяется следующим образом:

  1. Для POSIX.1 вводятся функциональные группы:
    • POSIX_MULTI_PROCESS
    • POSIX_PIPE, при этом исключается модуль функциональности
    • POSIX_FILE_SYSTEMS /файловая система считается не обязательной для данного класса задач/
  2. Для POSIX.1b вводятся функциональные группы:
    • POSIX_MEMORY_PROTECTION
    • _POSIX_PRIORITY_SCHEDULING, при этом исключается модуль функциональности
    • _POSIX_MAPPED_FILE /все по той же причине/

6.4.4 Профиль многоцелевых систем реального времени (Multi-Purpose Realtime System Profile) - PSE54

    

    Данный профиль предназначен для поддержки переносимости многоцелевых приложений реального времени, относящихся, как правило, к высшим уровням иерархии управляющих функций. Такие системы применяются в качестве командных центров систем ПВО и ПРО, управления войсковыми соединениями, центров управления космическими станциями, сложными производственными процессами.

    Поэтому функциональность профиля PSE54 строится как объединение всех возможностей, описанных в стандартах POSIX.1, POSIX.1b, POSIX.1c., а также POSIX.2.

6.4.5 Список требований конформности реализации стандартизованному профилю для языка С (ISP Requirements List (C Language))

    В завершающей части документа POSIX\RT-AEP приведены нормативные приложения A и B (по правилам OSI-профилей, которые мы будем рассматривать дальше), определяющие списки требований конформности, т.е. требований, которым должна удовлетворять конформная профилю POSIX.13 реализация. В приложении A приведены требования для С интерфейса, а в приложении B приведены требования для интерфейса, определенного средствами языка Ada.

    Кратко рассмотрим содержание приложения A.

    Оно включает следующие три раздела:

  • A.1 Options (опции)
  • A.2 Standards (стандарты)
  • A.3 Constraints (ограничения)

    В разделе A.1 в табличной форме (см. Табл.6.7) определяются возможности выбора функциональности для реализации, которая заявляется как конформная профилю или профилям POSIX.13. В таблице 6.7 содержится три столбца: первый включает наименования профилей в таксономии POSIX-профилей; второй - символьные обозначения опций, с помощью которых выбирается тот или иной тип профиля; третий - определяет состояние (status) рассматриваемого элемента, например, является ли его выбор обязательным или нет.

Таблица 6.7
Profile Symbol Status
PSE51 {_POSIX_AEP_REALTIME_MINIMAL} OPT
PSE52 {_POSIX_AEP_REALTIME_CONTROLLER} OPT
PSE53 {_POSIX_AEP_REALTIME_DEDICATED} OPT
PSE54 {_POSIX_AEP_REALTIME_MULTI} OPT

    Замечание.

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

    В разделе A.2 также в табличной форме (см. Табл.6.8) задается список нормативных базовых стандартов для документа POSIX\RT-AEP стандартов.

Таблица 6.8
Standard PSE51 PSE52 PSE53 PSE54
C Standard PRT PRT PRT MAN
POSIX.1 PRT PRT PRT MAN
POSIX.1b PRT PRT PRT MAN
POSIX.1c PRT PRT MAN MAN
NRQ NRQ NRQ OPT
POSIX.1g PRT PRT PRT PRT
POSIX.2/2a OPT OPT OPT OPT

    Замечание.

    PRT (Partial) - включает часть опций или функциональных модулей, определенных в A.3.

    MAN (Mandatory) - используется полностью всеми опциями.

    NRQ (Not required) - является не обязательным в окружении.

    OPT (OPTIONAL) - может быть включен в окружение в качестве дополнительной возможности.

    В разделе A.3 осуществляется последовательный анализ перечисленных выше нормативных базовых стандартов. И для каждого стандарта рассматриваются все его опции и функциональные группы с целью определения статуса элементов стандарта по отношению к профилям POSIX.13 и критериям конформности. Как правило, в стандартах и профилях требования конформности разработчики стандартов стараются представить в табличной форме. Это обеспечивает наглядность и компактность представления требований, а также полноту и системность их разработки.

    Ниже в качестве примера представления такой информации приведем две таблицы с определением требований для опций стандарта POSIX.1 (см. Табл.6.9) и требований для модуля функциональности POSIX_SINGL_PROCESS (см. Табл.6.10). В таблице 6.10 столбец Reference указывает раздел стандарта с описанием рассматриваемого элемента стандарта.

Таблица 6.9 - POSIX.1 Option Requirements

    Замечание.

    NRQ (Not required) - является необязательным для данного профиля.

    MAN (Mandatory) - является обязательным для данного профиля.

    NAM - является обязательным для определения ошибки в случае, когда имена объектов длиннее, чем значение переменной NAME_MAX.

    PRI (Primary) - первичная система файлов будет определять ошибку в случае, когда компоненты имени пути объектов длиннее, чем значение переменной NAME_MAX.

Таблица 6.10 - POSIX_JOB_CONTROL Functions

    Замечание.

    NRQ (Not required) - функция является необязательной для данного профиля.

    MAN (Mandatory) - функция является обязательной для данного профиля.

    * - место определение дополнительной функциональности.

Предыдущая глава Оглавление Следующая глава