ЖУРНАЛ СТА 2/2012

82 СТА 2/2012 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ www.cta.ru Результаты тестов производительности QNXNeutrino Владимир Махилёв В статье приводятся результаты тестирования производительности операционной системы реального времени QNX Neutrino на различных аппаратных платформах и в сравнении с другими встраиваемыми операционными системами. Рассматриваются задержки переключения между потоками, время обработки прерывания от системного таймера, производительность механизмов синхронизации и т.д. Бельгийская компания Dedicated Systems Experts*, специа- лизирующаяся на работе с системами реального времени, провела независимое тестирование и оценку нескольких опе- рационных систем. В публичный доступ выложены докумен- ты с описанием методики тестирования, обзорное описание операционных систем и отчеты по тестированию QNX Ne- utrino 6.5, ОС на базе ядра Linux 2.6.33.7.2 с патчами реально- го времени v.30 и Windows Embedded Compact 7 (бывшая Windows CE) [1–6]. QNX традиционно получил очень хорошие оценки, как при обзорном сравнении (8-9 из 10), так и при тестировании на конкретной аппаратуре (9 из 10). Среди сильных сторон по- прежнему отмечают отличную архитектуру и хорошую доку- ментацию, производительность и соответствие требованиям реального времени. Среди недостатков отмечено, что не все компоненты системы доступны в исходных кодах, и несмотря на то что QNX обладает достаточно внушительным списком се- тевых и Интернет-технологий, по этому параметру он уступа- ет конкурентам – 8/10 против 9/10 и 10/10 у Windows и Linux. Другие тестируемые системы получили оценки в целом ниже, чем QNX, хотя достаточно любопытно отметить, что за тесты реального времени Linux-RT получила 4/10 (большего от PREEMPT_RT ожидать и не следовало – [7]. – Прим. ред.), а Windows Embedded Compact 7 благодаря предсказуемому пове- дению получила такую же высокую оценку, как и QNX (9/10). Периодически при работе с системами реального времени в QNX возникает необходимость спрогнозировать или объ- яснить ту или иную задержку, например при обработке пре- рываний. Особый интерес добавляет то, что есть возможность сравнить поведение достаточно современных систем с раз- ными архитектурами. Тестирование QNX проводилось на следующих аппаратных платформах: ● достаточно старом компьютере на базе Pentium MMX 200; ● процессорном модуле Advantech SOM-6760 на базе про- цессора Intel Atom; ● процессорной плате Beagle-XMBoard на базе системына кри- сталле TI DM3730 с процессорным ядром ARMCortex A8. Погрешность измерений составляет 0,2 микросекунды. В РЕМЯ ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ СИСТЕМНОГО ТАЙМЕРА Одна из ключевых величин, влияющих на работу всей си- стемы, – время обработки прерывания от системного тайме- ра. Прерывание от системного таймера (системный тик) – это периодическое событие, в QNX 6 по умолчанию оно про- исходит с интервалом в 1 мс. Системный тик является осно- вой для большинства системных функций работы с временем и задержками. Длительность системного тика в QNX может быть изменена с помощью системной функции ClockPeriod() вплоть до минимального значения в 10 мкс. Такая гибкость позволяет тонко настроить систему на требуемое время реак- ции, однако следует помнить, что при уменьшении периода системного тика возрастёт нагрузка на систему вследствие большего количества прерываний от таймера. Прерывания в QNX запрещаются только на крайне малые промежутки времени, и любые системные или пользователь- ские функции, включая системные вызовы и другие обработ- чики прерываний, могут быть вытеснены при возникновении прерывания, в том числе и от системного таймера. Поэтому при оценке времени какого-либо события следует для худшего сценария учитывать вероятность совпадения этого события с системным тиком. Практически во всех максимальных значе- ниях измерений в последующих тестах будет присутствовать время обработки прерывания от системного таймера. Время обработки прерывания от системного таймера в QNX 6.5 по результатам тестов Для сравнения – Linux-RT на компьютере на базе Pentium MMX 200 обрабатывает прерывание от системного таймера в среднем в течение 19-21 микросекунды с единичными всплес- ками до 55 микросекунд. У Windows Compact 7 время обра- ботки системного таймера на платформе Intel Pentium II 233 МГц (на Pentium MMX 200 Windows Compact 7 отказался работать) имеет в среднем разброс 4-7 микросекунд. *Материал публикуется с разрешения Dedicated Systems Experts. Платформа Среднее значение Максимальное значение x86 Pentium 200 MMX 5 мкс 11 мкс x86 SOM-6760 Intel Atom 2,2 мкс 10 мкс ARM Beagle-XM 2 мкс 6,5 мкс © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy