ref-20761 (664637), страница 2
Текст из файла (страница 2)
При выборе аппаратной платформы для систем реального времени основополагающими моментами являются жесткие требования к временным характеристикам и гибкости системы. Требования к аппаратному обеспечению в настоящее время довольно чётко определены. Большинство проектов реального времени осуществляется в рамках архитектурных решений магистрально-модульных систем (ММС).
Однако, как бы ни была важна сама ОС РВ, сейчас в условиях доступности совместимых аппаратных средств основное внимание уделяется разработке и отладке прикладного программного обеспечения, чья доля в затратах на разработку систем реального времени составляет до 70%.
По среде в которой функционируют системы их можно разделить на классы: программирование на уровне микроконтроллеров, минимальное ядро СРВ, ядро СРВ и инструментальная среда, ОС с полным сервисом.
-
Встроенные системы реального времени.
Следующее отличие - применение операционной системы реального времени всегда связано с аппаратурой, с объектом, с событиями, происходящими на объекте. Система реального времени, как аппаратно-программный комплекс, включает в себя датчики, регистрирующие события на объекте, модули ввода-вывода, преобразующие показания датчиков в цифровой вид, пригодный для обработки этих показаний на компьютере, и, наконец, компьютер с программой, реагирующей на события, происходящие на объекте. Операционная система реального времени ориентирована на обработку внешних событий. Именно это приводит к коренным отличиям (по сравнению с ОС общего назначения) в структуре системы, в функциях ядра, в построении системы ввода-вывода. Операционная система реального времени может быть похожа по пользовательскому интерфейсу на ОС общего назначения (к этому, кстати, стремятся почти все производители операционных системах реального времени), однако устроена она совершенно иначе – более подробно об этом в пункте 2.2.
В последнее время высокопроизводительные микропроцессоры, а с ними и операционные системы реального времени, все чаще используются в так называемых "глубоко встроенных" (deeply embedded) применениях. К таким компьютерным системам предъявляются два основных требования: малые габариты и низкая стоимость. Поэтому глубоко встроенные микропроцессорные системы ставят две проблемы на пути применения серийных ОС РВ: небольшие объемы используемой памяти и отсутствие "лишних" интерфейсов, по которым можно было бы связать целевую и инструментальную машины на этапе разработки встроенного ПО.
По структурным характеристикам программно-аппаратные комплексы можно разделить на классы: исполнительные системы реального времени, ядра реального времени, Unix’ы реального времени.
-
Вывод.
Были рассмотрены центральные отличия систем реального времени от систем разделения времени. В основе этих отличий лежит главное требование к подобным системам – предсказуемость. Пользователи СРВ должны быть заранее уверены в том, что отклик на внешнее воздействие будет получен в обозначенный интервал времени. Это влечет за собой необходимость представлять себе какие объёмы данных несут в себе внешние воздействия и какими аппаратными возможностями по обработке этих данных располагает система. Вполне логично, что системы реального времени не ориентированы на взаимодействие с человеком, а предполагают самостоятельную работу в критичных точках инженерных систем.
-
Особенности управления задачами.
-
Управление временем.
-
Одним из основных свойств операционных систем реального времени является их способность изолировать друг от друга приложения, поэтому если в программе возникает сбой или выполняются какие-то нелегальные операции, ОС может быстро блокировать программу, инициировать восстановление и защиту других программ либо самой системы от серий вредоносных команд.
Если не выполняется обработка критических ситуаций либо она происходит недостаточно быстро, система жесткого реального времени прерывает операцию и блокирует ее, чтобы не пострадала надежность и готовность остальной части системы. Системы мягкого реального времени более «снисходительны» и «терпят» определенные, некритичные ошибки.
Особую важность приобретают такие инструменты как средства работы с таймерами, необходимые для систем с жестким временным регламентом. Развитость этих средств - необходимый атрибут операционных систем реального времени. Они, как правило, позволяют:
-
измерять и задавать различные промежутки времени (от 1 мкс и выше),
-
генерировать прерывания по истечении временных интервалов,
-
создавать разовые и циклические будильники.
-
Управление памятью.
Система реального времени должна уметь управлять памятью в зависимости от критичности задач. Для устойчивой работы процессов требуются механизмы выделения памяти при их порождении, использования памяти при жизнедеятельности и освобождения.
ОС позволяет программистам изолировать совместно используемые библиотеки, данные и системное программное обеспечение, а также приложения. Та же самая защита предотвращает переполнение стеков памяти, вызываемое действиями любых программ.
-
Управление доступом (синхронизация).
При одновременной работе нескольких процессов в многозадачной системе реального времени операционная система должна обеспечить устойчивый механизм для обмена информацией между запущенными процессами. Связь между процессами (Interprocess communication, сокращенно IPC) является ключом к разработке приложений как совокупности процессов, в которых каждый процесс выполняет отведенную ему часть общей задачи.
Для операционных систем реального времени характерна развитость IPC-механизмов. К таким механизмам относятся: семафоры, события, сигналы, средства для работы с разделяемой памятью, каналы данных (pipes), очереди сообщений. Многие из подобных механизмов используются и в ОС общего назначения, но их реализация в операционных системах реального времени имеет свои особенности - время исполнения системных вызовов почти не зависит от состояния системы, и в каждой операционной системе реального времени есть по крайней мере один быстрый механизм передачи данных от процесса к процессу.
-
Вывод.
Так же как сами системы реального времени существенно отличаются от обычных ОС, так и способы выполнения задач в них имеют свою специфику. Работа по управлению их выполнением превращается в сложную инженерную задачу, которая включает в себя создание алгоритмов разделения ресурсов системы, планирования их независимого выделения и освобождения для задач системы.
-
Классификация систем реального времени.
Количество операционных систем реального времени, несмотря на их специфику, очень велико. В обзоре журнала "Real-Time Magazine" ещё за март 97 года было упомянуто около шестидесяти систем. За прошедшие годы этих систем стало ещё больше. Если же добавить к их числу некоммерческие операционные системы реального времени, то мы получим вполне солидное число, отражающее заинтересованность современного общества в подобных системах. Однако сама специфика применения операционных систем реального времени требует гарантий надежности, причем гарантий в том числе и юридических - этим, видимо, можно объяснить тот факт, что среди некоммерческих систем реального времени нет сколько-нибудь популярных.
На рис. 5 дано компактное представление классификации систем по трём различным признакам: класс (отсутствие РВ, мягкое РВ, жесткое РВ), сложность (одноадресное пространство, многоадресное/защищенное), стандартизация (частное решение, подмножество POSIX, только POSIX, UNIX и POSIX).
-
Классификация по структурным характеристикам.
В мире операционных систем реального времени, как впрочем и в любой другой динамично развивающейся отрасли, в которой ещё нет установившейся достаточно строгой теории, существует несколько разнообразных подходов к построению подобных систем.
-
Исполнительные системы реального времени.
Признаки систем этого типа - различные платформы для систем разработки и исполнения. Приложение реального времени разрабатывается на host-компьютере (компьютере системы разработки), затем компонуется с ядром и загружается в целевую систему для исполнения. Как правило, приложение реального времени - это одна задача и параллелизм здесь достигается с помощью нитей (threads).
Системы этого типа обладают рядом достоинств, среди которых главное - скорость и реактивность системы. Главная причина высокой реактивности систем этого типа - наличие только нитей(потоков) и, следовательно, маленькое время переключения контекста между ними ( в отличие от процессов).
С этим главным достоинством связан и ряд недостатков: зависание всей системы при зависании нити, проблемы с динамической подгрузкой новых приложений.
Кроме того, системы разработки для продуктов этого класса традиционно дороги (порядка $20000). Хотя, надо отметить, что качество и функциональность систем разработки в этом классе традиционно хороши, так как они были изначально кроссовыми.
Наиболее ярким представителем систем этого класса является операционная система VxWorks. Область применения - компактные системы реального времени с хорошими временами реакций.
-
Ядра реального времени
В этот класс входят системы с монолитным ядром, где и содержится реализация всех механизмов реального времени этих операционных систем. Исторически системы этого типа были хорошо спроектированы. В отличие от систем других классов, которые появлялись как временные компромиссы и затем "наращивали мускулы" благодаря первым удачным реализациям (исполнительные системы реального времени и UNIX'ы реального времени), разработчики систем этого класса имели время для разработки систем именно реального времени и не были изначально ограничены в выборе средств (например фирма "Microware" имела в своем распоряжении три года для разработки первого варианта OS-9).
Одна из их особенностей - высокая степень масштабируемости. На базе этих ОС можно построить как компактные системы реального времени, так и большие системы серверного класса.
Как правило, ядра реального времени имеют два типа систем разработки - кроссовую и резидентную.
Системы этого класса, как правило, модульны, хорошо структурированы, имеют наиболее развитый набор специфических механизмов реального времени, компактны и предсказуемы. Наиболее популярные системы этого класса: OS9, QNX.
-
UNIX'ы реального времени
Исторически системы реального времени создавались в эпоху расцвета и бума UNIX'а и поэтому многие из них содержат те или иные заимствования из этой красивой концепции операционный системы (пользовательский интерфейс, концепция процессов и т.д.).
Часть разработчиков операционных систем реального времени попыталась просто переписать ядро UNIX, сохранив при этом интерфейс пользовательских процессов с системой, насколько это было возможно. Реализация этой идеи не была слишком сложной, поскольку не было препятствия в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время, и сразу весь набор пользовательских приложений - компиляторы, пакеты, различные инструментальные системы.
В этом смысле создателям систем первых двух классов пришлось потрудиться не только при создании ядра реального времени, но и продвинутых систем разработки.
Однако Unix'ы реального времени не избавлены от следующих недостатков: системы реального времени получаются достаточно большими и реактивность их ниже, чем реактивность систем первых двух классов.
Наиболее популярным представителем систем этого класса является операционная система реального времени LynxOS.
-
Классификация по программной среде.
Становится очевидным то, что задачи реального времени необходимо реализовывать в рамках специфической системной программной среды. В соответствии с [12] системы реального времени можно разделить на 4 класса.
-
Программирование на уровне микропроцессоров.
В данном случае программы для программируемых микропроцессоров, встраиваемых в различные устройства, очень небольшие и обычно написаны на языке низкого уровня типа ассемблера или PLM. Внутрисхемные эмуляторы пригодны для отладки, но высокоуровневые средства разработки и отладки программ не применимы. Операционная среда обычно недоступна.
-
Минимальное ядро системы реального времени.
На более высоком уровне находятся системы реального времени, обеспечивающие минимальную среду исполнения. Предусмотрены лишь основные функции, а управление памятью и диспетчер часто недоступны. Ядро представляет собой набор программ, выполняющих типичные, необходимые для встроенных систем низкого уровня функции, такие, как операции с плавающей запятой и минимальный сервис ввода/вывода. Прикладная программа разрабатывается в инструментальной среде, а выполняется, как правило, на встроенных системах.
-
Ядро системы реального времени и инструментальная среда.
Этот класс систем обладает многими чертами ОС с полным сервисом. Разработка ведется в инструментальной среде, а исполнение - на целевых системах. Этот тип систем обеспечивает гораздо более высокий уровень сервиса для разработчика прикладной программы. Сюда включены такие средства, как дистанционный символьный отладчик, протокол ошибок и другие средства. Часто доступно параллельное выполнение программ.
-
ОС с полным сервисом.
Такие ОС могут быть применены для любых приложений реального времени. Разработка и исполнение прикладных программ ведутся в рамках одной и той же системы.













