Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие
.pdf
1. Особенности ОС РВ
11
освоения данного языка становится главным препятствием для его широкого применения. Кроме того, компиляторы довольно дорогостоящи и требуют мощных процессоров.
Языки Си и C++
Язык Си и на сегодняшний день является одним из самых широко применяемых на практике. Используется для разработки высокоэффективных
приложений, включая приложения реального времени. Большинство микропроцессоров, применяемых в системах управления, имеют С-компиляторы. В сфере промышленности данный язык наряду с ОС UNIX получили
широкое распространение. Это объясняется тем, что реализованные на
языке Си приложения являются машинно-независимыми и не требуют
больших ресурсов для адаптации к работе в различной аппаратной среде.
Язык Си следует использовать при написании программ, которые выполняют обращение к функциям ОС, так как ему свойственен высокий уровень
совместимости логики объявления переменных, вызова функций, описания
структур данных и синтаксисом обращения к ресурсам системы. Способность выполнять поддержку реализации легко используемых библиотек
программ представляет собой главное достоинство языка. Стоит отметить,
что программирование в режиме реального времени на языке С++ может
выполняться только посредством специализированных программных модулей и библиотек классов.
Язык Java
Как уже упоминалось выше, Java уже скорее не просто отдельный язык
программирования, а платформа и инфраструктура. Ее отличают мощная
поддержка сообщества, огромное количество доступных инструментов и
документации, множество библиотек и поддерживаемых платформ. Собственно говоря, программы, написанные на языке Java работают на любой
аппаратной и программной базе, куда перенесена сама платформа и ее виртуальная машина.
Язык BASIC
Является простейшим языком в сравнении с языками программирования высокого уровня. Был разработан с целью обеспечения поддержки интерактивной разработки программ с удаленных терминалов. Вследствие
своей простоты не применяется для реализации больших структурированных систем. Главным преимуществом данного языка является то, что при

1. Особенности ОС РВ
12
помощи него небольшие приложения могут быть разработаны на порядок
быстрее, чем при использовании других языков. Также BASIC имеется на
многих мини- и микрокомпьютерах.
Язык FORTRAN
Является первым языком высокого уровня, который до сих пор широко
применяется, в частности для математических вычислений. Может применяться для разработки систем реального времени, хотя наиболее широкое
применение получил в мировом научном сообществе. Каждая последующая выпускаемая версия направлена на устранение таких недостатков за
счет поддержки развитых структур данных. За счет того, что язык используется в научных приложениях, нередко данные в системах реального времени обрабатываются существующими FORTRAN-программами. По этой
же причине дополнения и библиотеки к этим программам, а также обслуживающие модули и приложения, также разрабатываются на языке FORTRAN.
Важным условием является координация процесса передачи информации
между БД реального времени и прикладными модулями, написанными на
FORTRAN. Как правило, за подобную координацию отвечает ОС.
Языки Паскаль и Модула-2
Паскаль разрабатывался как дидактический язык, предназначаемый
для обучения программированию. Получил широкое распространение в
разнообразных приложениях. Как и язык BASIC используется в микро- и
персональных компьютерах. Язык Модула-2 разрабатывался с целью программирования встроенных промышленных вычислительных систем реального времени. Несмотря на схожесть структур между Паскалем и Модула-2, последнему присуще большое количество функций и синтаксических конструкций. Гибкость от использования этих языков будет выше,
если драйверы устройств, обработчики прерываний и пр. будут реализованы на языке ассемблера. Также эти языки поддерживают вызов внешних
модулей на языке ассемблера. Могут быть применены с целью реализации
встроенных систем, однако не подходят для разработки сложных приложений в распределенных системах. Ещё одним преимуществом этих языков является их ориентация на структуру. Благодаря этому программы становятся хорошо читаемыми, а это оказывает положительное влияние на
последующее сопровождение.

1. Особенности ОС РВ
13
В настоящее время разработка программного обеспечения может выполняться даже без непосредственно использования языков программирования. Этот подход называется LOW-CODE или NO-CODE, а применяемая
технология описывается понятием CASE-средств.
CASE-средства или Computer Aided Software Engenering – это так
называемые инструменты разработки «четвертого поколения». Они применяются как для проектирования и документирования программного
обеспечения реального времени, так и для непосредственной разработки
приложений.
В минимальном варианте использования при помощи CASE-средства
выполняется формализованное описание объектов программного кода, их
свойств и принципов взаимодействия между собой (вызова). На основе полученных схем выполняется генерация программного кода и даже его компиляция. Современные CASE -инструменты помогают получить приложения со стандартными функциями для различных платформ типа персональных ЭВМ, серверов или мобильных устройств. Если желаемый функционал отсутствует в библиотеке компонентов CASE-средства, мы можем дописать алгоритмы на поддерживаемых языках и оформить в виде нового
блока. Эта идея не является принципиально новой. В научном сообществе
такими функциями обладает MATLAB Simulink, разработчики аппаратуры и систем аппаратного мониторинга знакомы с LabView или
Simintech. Теперь подобные системы приходят в сферу разработки программных продуктов.
Системы «реального времени» получили широкое распространение во
многих сферах науки и техники. Причем не только как инструменты решения специализированных, но и бытовых задач.
Если рассмотреть наиболее важные сферы применения ОС РВ, то мы
можем отметить следующее:
− применение ОС РВ в военной и космической области: управление
встраиваемыми системами, датчиковыми системами и системами для измерения, блоками мониторинга и контроля параметров, радарными комплексами, сканерами, системами акустического мониторинга, системами моделирования, вычислительными комплексами, системами навигации различных типов, системами управления движением и т.п. В большинстве своем,
подобные инструменты разрабатываются по заказу оборонной и

1. Особенности ОС РВ
14
космической отраслей, а некоторые до сих пор работают еще с «предыдущих» поколений;
− промышленность: в первую очередь это системы контроля и управ-
ления производством (системы управления технологическими процессами
на предприятиях, системы управления конкретными станками и оборудованием). Следует отметить, что в эту классификацию попадают и современные системы моделирования технологических процессов, а также системы
управления процессами на предприятиях в целом;
− товары широкого потребления: подобные системы нам широко зна-
комы – это разнообразные мобильные телефоны и смартфоны, «умные»
часы и колонки, игровые приставки, навигаторы и т.д.
ОС РВ в зависимости от сферы применения имеют различный мас-
штаб. Для встраиваемых систем это будет прошивка небольших размеров
(несколько килобайт), написанная на языках низкого уровня, например на
Ассемблере или Си. В то же самое время, ОС РВ для научной сферы или
для промышленности будет иметь совершенно другой масштаб – операционная система с множеством драйверов устройств и целый комплекс системного или пользовательского программного обеспечения, занимающая гигабайты.
Систему реального времени принято делить на три слоя.
1. Ядро системы содержит весь необходимый для работы системы
минимум. Основные задачи: управление задачами и их приоритерами, переключение задач, их синхронизация и взаимодействие, управление доступом к общей и разделяемой памяти процессов, контроль процессов
ввода/вывода.
2. Система управления – это ядро плюс ряд некоторых дополнитель-
ных сервисов, расширяющих возможности системы: более сложные и даже
интеллектуальные механизмы управления памятью, задачами, приложениями и файлами. Также к этому слою программного обеспечения можно отнести подсистему взаимодействия с аппаратными устройствами ЭВМ.
3. Система реального времени – это в большей степени комплекс ути-
лит и средств разработки программного обеспечения. Сюда, например, мы
можем отнести подсистемы управления, компиляторы, интерпретаторы, отладчики программного кода, системы визуализации данных и человеко-машинные интерфейсы.

1. Особенности ОС РВ
15
ОС РВ для конкретного применения выбирается согласно следующим
основным критериям:
− пиковая или средняя производительность системы на конкретном
оборудовании;
− время реакции на некоторое событие (например, аппаратное),
устойчивость, надежность, готовность к обработке данных в любое время;
− программная и аппаратная поддержка микропроцессоров различ-
ных типов;
− поддержка параллельного выполнения задач, т.е. многопоточности
или многопроцессорности;
− доступность инструментов разработки приложений на требуемом
языке программирования;
− наличие инструментов реального времени того или иного типа, а
также возможность их работы в рамках устанавливаемых требований;
− поддержка файловых систем различных типов (FAT, NTFS, ext –
ext4, HPFS, JFS, QNX, XFS и т.п.).

1. Особенности ОС РВ
16
2. СТАНДАРТЫ ОС РВ
Проблема стандартизации ОС РВ существует давно, и она возникла
вследствие наличия существенных различий в спецификациях операционных систем в целом.
2.1. POSIX
Стандарт POSIX (Portable Operating System Interface for Computer Envi-
ronments) был одним из самых первых стандартов, применяемых для опи-
сания ОС РВ. Механизм для взаимодействия между прикладной программы
и операционной системой определяется спецификацией POSIX. Для ОС РВ
интерес представляют семь стандартов: 1003.1a, 1003.1b, 1003.1c, 1003.1d,
1003.1j, 1003.21, 1003.2h. Однако распространённую поддержку получили
только три первых вышеперечисленных стандарта.
Стандарт 1003.1a. Включает базовые интерфейсы ОС РВ: поддержку
единственного или множества процессов, управление заданиями, группами
пользователей, файловыми атрибутами и устройствами ввода/вывода и специального назначения, системными БД, каналами и очередями FIFO.
Стандарт 1003.1b. Описывает следующие расширения ОС для задач
реального времени: система реального времени и различные таймеры, приоритетное планирование запуска задач, задачи ввода/вывода (в том числе
синхронные и асинхронные), механизмы синхронизации доступа к файловым объектам, методы и алгоритмы блокировки памяти, подсистемы обмена сообщениями между компонентами системы.
Стандарт 1003.1c. Посвящен описанию различных функций для
многопоточной обработки данных внутри процессов, описанию процедур
управления потоками и планированию запуска задач с учетом системы
приоритетов.
Стандарт POSIX может быть описан следующей схемой (см. рис. 2).
2.2. DO-178B
Данный стандарт создан для разработки бортовых авиационных систем и оборудования в рамках Радиотехнической комиссии по аэронавтике
(RTCA, Inc.). Он принят и подтвержден такими организациями и

2.3. OSEK/VDX
17
регулирующими органами, как Федеральное авиационное управление
(FAA) и Европейское агентство по авиационной безопасности (EASA).
Рис. 2. Стандарты POSIX
Стандарт описывает целых пять уровней серьезности отказа системы.
Для каждого уровня определяется специальный набор требований к ПО, соблюдение которых гарантирует работоспособность системы реального времени в случае возникновения отказов.
Использование стандарта вообще подразумевает, что несоблюдение
хотя бы одного требования полностью блокирует введение системы в эксплуатацию.
2.3. OSEK/VDX
Первоначально использовался для разработки систем автомобильной
промышленности. Затем стал более абстрактным, что привело к его использованию в различных отраслях.

2. Стандарты ОС РВ
18
2.4. ARINC 653
Стандарт на интерфейс прикладного ПО для использования в
авионике.
Данный стандарт описывает методики распределения ресурсов ЭВМ
(преимущественно для систем авиации) во времени и в пространстве в соответствии с принципами модульной авионики. Под интегрированной модульной авионикой понимается концепция построения бортового комплекса, базирующаяся на открытой сетевой архитектуре и единой вычислительной платформе (см. рис. 3).
Рис. 3. Архитектура стандарта ARINC 653
Кроме того, определяет программный интерфейс, который должен ис-
пользовать прикладное ПО для доступа к ресурсам ЭВМ.
В качестве единицы планирования ресурсов выступает раздел. Каждый
раздел получает как временные ресурсы (процессорное время), так и пространственные (часть информационной ёмкости ОЗУ). В рамках раздела существует возможность выполнить организацию исполнения нескольких
процессов/потоков.
К основным сервисам следует отнести:
1. управление разделами;
2. управление процессами;
3. управление временем;
4. взаимодействие между разделами;

2.6. SCEPTRE
19
5. взаимодействие внутри раздела;
6. реакция на ошибки.
2.5. ГОСТ Р МЭК 61508-4-2012
− описывает все стадии жизненного цикла безопасности систем в це-
лом, а также подсистем электрических и/или электронных, и/или программируемых электронных (Э/Э/ПЭ) элементов;
− основа ГОСТа является устойчивой и полной для будущих раз-
работок;
− обеспечивает возможность разработки стандартов областей приме-
нения, в которых используются Э/Э/ПЭ-системы;
− предоставляет метод разработки спецификации требований к без-
опасности, необходимых для достижения заданной функциональной безопасности Э/Э/ПЭ-систем;
− для определения требований к уровням полноты безопасности ис-
пользуется подход, основанный на оценке рисков;
− устанавливает целевые меры отказов для функций безопасности,
реализуемых Э/Э/ПЭ-системами, и связывает эти меры с уровнями полноты
безопасности;
− устанавливает нижнюю границу для целевых мер отказов для
функции безопасности, реализуемой одиночной Э/Э/ПЭ-системой, связанной с безопасностью.
2.6. SCEPTRE
В данном комплексе документов европейского стандарта для систем
с реальным временем выполнения задач объединены спецификации для
промышленных приложений, а также даны определения и описания методов и подходов, которые применяются в операционных системах реального времени.
Посредством данного стандарта определяются следующие цели, кото-
рым должны удовлетворять ОС РВ:
1. адекватность применения системы в различных задачах;
2. безопасность внедрения и применения;
3. номинальная или даже минимальная стоимость использования;

2. Стандарты ОС РВ
20
4. номинальная или максимальная производительность системы на
конкретном оборудовании;
5. переносимость компонентов системы с платформы на платформу;
6. адаптивность;
7. модульность.
Стандарт разделяет задачи на два класса.
1. Прямые задачи, также называемые непосредственными.
2. Косвенные или отложенные задачи.
Прямые задач – это такие задачи, которые способны обеспечить связь
и взаимодействие между программой и ее внешним окружением. Это могут
быть задачи ввода/вывода для оборудования, задачи доступа к файловой
системе или задачи, просто обрабатывающие события системного таймера.
Для таких задач характерна прямая активация сигналом, приходящим извне
посредством управляемого интерфейса. Такой же точно интерфейс инициации выполнения задач характерен механизму управления прерываниями
(в данном примере аппаратными прерываниями), где используется специализированный контроллер.
Косвенные или отложенные задачи – это такие задачи, которые инициируются другими задачами (порождаются). Обычно такие задачи работают
с данными, полученными от других косвенных или прямых задач.
В своей совокупности, прямые и косвенные задачи могут создавать
(инициировать) цепочки вызовов (стэк вызовов) с возвратом управления в
обратном порядке.
2.7. LynxOS-178
Данный стандарт появился после разработки операционной ОС РВ
LynxOS v.3., первые версии которой были разработаны еще в 1986 г. в Дал-
ласе, США специально для компьютера Motorola 68010.
Данная ОС РВ сама по себе является интересной, так как выполняется
в изолированном разделе, а ее компоненты рассчитаны на абсолютный детерминизм выполнения задач. Тут как раз и имеется в виду жесткая производительность в реальном времени, определяемой реакцией на события в
течение известного периода времени. При всем этом предсказуемое время
отклика гарантируется даже при интенсивном вводе-выводе благодаря
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
