Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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.
Данная ОС РВ сама по себе является интересной, так как выполняется в изолированном разделе, а ее компоненты рассчитаны на абсолютный де­терминизм выполнения задач. Тут как раз и имеется в виду жесткая произ­водительность в реальном времени, определяемой реакцией на события в течение известного периода времени. При всем этом предсказуемое время отклика гарантируется даже при интенсивном вводе-выводе благодаря
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]