Выбор ОС при построении систем реального времени

ПРОЕКТИРОВАНИЕ

Алексей Жданов,

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

Из чего выбирать?

Среди современных ОС есть класс продуктов, называемых операционными системами реального времени (ОСРВ), разработанных специально для построения систем жесткого реального времени, - VxWorks, OS9, QNX, LynxOS, OSE и др. Они заведомо содержат необходимый для достижения поставленной цели набор инструментов и в некоторых случаях являются единственным возможным вариантом - их приходится применять, невзирая на затраты.

Однако достаточно часто требования к реальному времени (например, к предсказуемости времени отклика) допускают компромиссы. Иногда нужна лишь определенная средняя производительность, иногда можно жестко контролировать только одно из событий, допуская при этом задержки реакций на остальные. В подобных случаях возможности выбора расширяются и желаемых результатов можно достичь с помощью таких широко распространенных ОС, как Linux, Windows NT, Windows CE, дополнив их расширениями реального времени (RTAI, RT Linux, RTX), используя глубокие знания системы и высокое искусство конкретных специалистов.

Экономические критерии выбора

Один из главных вопросов, интересующих российского пользователя, - стоимость. Стоимость чего? Казалось бы, очевидно - важно знать, во сколько обойдется проект в целом. Однако именно об этом чаще всего забывают и, экономя на частях, увеличивают интегральную стоимость проекта. Одна из стандартных ошибок, например, заключается в том, что затраты на ПО сводятся к затратам на покупку операционной системы. И механически выбирается наиболее дешевый из допустимых (иногда недопустимых) вариантов. Ниже перечислены основные статьи затрат на программную часть проекта:

1) операционная система и средства разработки;

2) разработка (включая затраты на освоение системы);

3) дальнейшая модификация проекта;

4) лицензии;

5) сопровождение;

6) возможные риски.

Эти затраты очевидны. Но есть несколько подводных камней, которые надо учитывать при оценке стоимости разных ОС.

Коммерческие операционные системы реального времени

Стоимость операционной системы и средств разработки. Недорогие системы этого класса стоят до 10 тыс. долл. (OS9, QNX). Зато нередко можно встретить системы стоимостью порядка 20 тыс. долл. (VxWorks). Но это - разовые затраты на полный набор средств разработки. Они легко оправдываются при больших проектах или больших тиражах. Стоимость лицензий для этих систем быстро падает от 200-1000 долл. за единицу продукта до 10-50 долл. при больших тиражах.

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

Стоимость сопровождения, модификаций, оценка рисков. Для ОС реального времени эти параметры в общем случае ниже, чем для других систем (Linux, Windows NT). Причем разница тем больше, чем сложнее система, чем жестче к ней требования. Причина проста - необходимые параметры достигаются штатными средствами, а не с помощью остроумных нестандартных решений, которые могут оказаться бесполезными при небольшой модификации начальных условий. Что касается стоимости рисков, то она здесь также ниже, ввиду хорошей “обкатанности” ОС, так как наиболее известные ОСРВ работают в миллионах копий по всему миру в системах разной сложности.

Linux, RT Linux, RTAI

Стоимость операционной системы и средств разработки совпадает со стоимостью носителя и его пересылки (до 100 долл.).

Стоимость разработки и отладки. Эти ОС имеют достаточно комфортные средства разработки и отладки, однако специализированных средств отладки приложений реального времени в них нет. И несмотря на то что Linux развивается очень быстро, все-таки появляются отдельные решения для встроенных систем и систем реального времени. Именно оценивая стоимость разработки, можно столкнуться с неожиданными проблемами, средств на решение которых вы не предусмотрели. Например, может оказаться, что одна из базовых функций в расширениях реального времени работает не так, как вы ожидали; нет документации; на вопросы, размещенные в конференции, никто не отвечает, и вам приходится начинать достаточно сложные и глубокие эксперименты в ситуации, когда уже поздно поворачивать назад.

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

Windows NT/2000/NTE/CE, RTX

Стоимость ОС, естественно, ниже, чем для ОСРВ, однако закупка всех необходимых средств разработки заставит вас потратить около 3000 долл. Что касается систем разработок для Windows CE или RTX, то они выводят вас в ценовой диапазон недорогих OCRB.

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

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

1) вы пытаетесь использовать эти ОС в проектах, в которых этого делать нельзя (сложные системы реального времени);

2) ваш заказчик требует перехода на новую версию (например, на Windows 2000 с Windows NT или на Windows CE 3.0 с Windows CE 2.12), и вы увидели, что либо поведение системы изменилось, либо не все инструментальные средства третьих фирм, используемые вами, работают в новой версии.

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

1. При разработке аппаратно-программного комплекса реального времени начальные затраты на покупку ОСРВ выше, однако интегральная стоимость проекта будет ниже для сложных систем высокой надежности.

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

3. если после изучения требований к проекту вы пришли к выводу, что можно выбрать операционную систему Linux (RT Linux, RTAI +), постарайтесь установить кооперацию с компанией, которая будет консультировать вас при проектировании и оказывать техническую поддержку, даже если ваши программисты уверяют, что они все сделают сами. Этим вы снизите риск больших потерь в ситуации, когда окажетесь лицом к лицу с неожиданной проблемой.

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

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

Технические критерии выбора

В этом разделе мы остановимся на технических критериях выбора ОС для построения систем реального времени. Аппаратно-программный комплекс реального времени всегда требует конкретных расчетов. Поэтому к приводимым здесь оценкам и рекомендациям следует относиться только как к отправным точкам.

Как проектируется аппаратно-программный комплекс реального времени? Вначале внимательно изучаются критерии, предъявляемые к объекту (автоматизации), и классифицируются события на этом объекте. Выделяются события, реакция на которые в заранее запланированное время строго необходима (иначе возможны большие потери или разрушения системы). С каждым из событий связывается критическое время отклика на него. Затем прогнозируются худшие из прогнозируемых ситуаций на объекте (возникновение одновременно нескольких критических событий, сбои питания, ошибки приложений и пр.), описываются требования к поведению системы в этих ситуациях. Цель такой экспертизы - найти ситуации, в которых система окажется в наиболее жестких условиях. В результате такого анализа вы должны оценить следующие параметры системы.

Время реакции системы на события, связанные с объектом. ОСРВ содержат механизмы, гарантирующие заранее заданное время реакции системы. Эта гарантия достигается знанием максимального времени блокировок прерываний в системе, времени переключения контекста и выполнения различных системных вызовов, применением нужных механизмов диспетчеризации и пр. То есть время реакции на события для ОСРВ рассчитывается с большой точностью. Подобные вычисления невозможны для Linux и Windows NT - в случае их применения можно полагаться только на результаты тестирования, эмпирические оценки. Часто производительность компьютера подбирается таким образом, чтобы успевать реагировать за нужное время, но сути дела это не меняет, поэтому риски в сложных комплексах могут оказаться велики - при небольшом изменении внешних условий или при модификации приложений эти времена могут “поплыть”. Что касается расширений реального времени для Linux и Windows NT, то в них, по крайней мере, можно полагаться на показатели времени отклика, полученные при тестировании.

Какие операционные системы могут быть использованы при разных требованиях к реактивности системы? В таблице приведены ориентировочные цифры, дающие представление о порядке времени отклика различных ОС.

Возможность создания бездисковой конфигурации системы. По этому признаку подходят все рассматриваемые ОС, кроме Windows NT. Но и для этого случая есть решение: Windows NT Embedded.

Время перезагрузки системы. Данный параметр кажется второстепенным, однако мы были свидетелями, когда именно он определил выбор дорогой ОС (время перезагрузки не должно было превышать 1 с). Этот параметр важен для систем непрерывной работы; в них ставятся ловушки, отслеживающие зависание системы или приложений и, если таковое произошло, автоматически перезагружающие систему (такие ловушки необходимы в системах повышенной надежности, так как от ошибок, по крайней мере в приложениях, никто не застрахован). В подобных случаях важной является “живучесть” системы при незапланированных перезагрузках. Большинство ОСРВ устойчивы к перезагрузкам; их работу можно прервать и перезагрузить их в любое время.

Время загрузки для разных ОСРВ колеблется от секунды до нескольких десятков секунд. В большинстве систем (OS9, VxWorks) время загрузки можно регулировать, изменяя стартовые последовательности.

В Linux время загрузки в стандартном варианте более минуты, система неустойчива к внезапным остановам - требуется стандартная процедура завершения работы с системой (shutdown). Однако Linux достаточно гибок, и можно создать конфигурации системы, в которых время загрузки уменьшится до десятка секунд и система будет устойчива к сбоям (использование специальной опции файловой системы).

В Windows NT время загрузки более минуты, система неустойчива к внезапным сбоям. Использование расширений реального времени (RTX) позволяет детектировать зависание системы и выполнить в этих случаях необходимые операции по спасению данных и выполнению каких-то страховочных действий.

Наличие инструментальных средств. Чем выше требования к инструментальным средствам, необходимым для создания системы (наличие специфических сетевых протоколов, баз данных, редких компиляторов), тем существенно выше шансы Linux и Windows NT и их расширений реального времени.

Наличие необходимых драйверов устройств. Если разрабатываемая система имеет сложную периферию, то уже имеющиеся для них готовые драйверы могут оказать большое влияние на выбор ОС. Естественно, самый большой набор драйверов создан для Linux и Windows NT. Наиболее популярные ОСРВ (VxWorks, OS9, QNX) также имеют обширные наборы готовых драйверов и, кроме того, содержат средства для их быстрой разработки.

Несколько слов в заключение

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

Хотелось бы добавить еще одну важную практическую рекомендацию: оценивая операционную систему, оценивайте и ее поставщиков. С технической точки зрения у вас есть, как правило, выбор из нескольких систем. Остановитесь на той, которую предлагает поставщик, способный обеспечить надежную техническую поддержку на время выполнения проекта или (если такого удастся найти) на все время жизни вашей системы. 4

С авторами статьи можно связаться по телефону: (095) 742-6828 или по

E-mail: rtsoft@rtsoft.msk.ru.