Данилов М.В. () - , Никифоров В.В. () - , Павлов В.А. (pavl-pva@ya.ru ) - Тверской государственный технический университет (доцент), Тверь, Россия, кандидат военных наук, Глазков А.В. () - , Гуцалов Н.В. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
|
Сложившаяся практика построения, распространения и использования встроенных компьютерных систем приводит к требованиям существенного снижения их стоимости при одновременном расширении функциональных возможностей, выражающихся, в частности, в наличии графического пользовательского интерфейса и доступа к глобальной компьютерной сети. Вместе с тем выполнение части функций встроенных систем должно отвечать требованиям жесткого реального времени [1]. Совмещение этих требований приводит к необходимости применения во встроенных системах мощных операционных систем реального времени (ОС РВ). При использовании для этих целей коммерческих ОС РВ стоимость лицензии может составить существенную долю стоимости всей встроенной системы. Этим вызвано повышенное внимание разработчиков встроенных программных приложений к изучению возможностей использования в своих продуктах свободно распространяемых ОС РВ с открытым исходным кодом. В частности, проявляется интерес к свободно распространяемой ОС РВ eCos [2]. Не меньшее внимание уделяется разработке таких специализированных версий свободно распространяемой ОС Linux [3], которые были бы приспособлены к работе во встроенных системах (встроенные версии Linux) и/или к работе в системах реального времени (РВ-версии Linux). В исходном виде ОС Linux ориентирована на поддержку настольных приложений, а не на работу во встроенных системах или в системах реального времени (СРВ). Особое внимание к этой ОС обусловлено потенциальной возможностью использования большого числа библиотек, разработанных мировым сообществом в рамках Ассоциации свободно распространяемого программного обеспечения (Free Software Foundation Inc.). Следует также отметить, что эти библиотеки, как и сама ОС Linux, были разработаны программистами высокого уровня и прошли тестирование огромной армией бета-тестировщиков [4]. Авторами исследовались характеристики эффективности адаптации сокращенной версии ОС Linux к поддержке приложений РВ во встроенных системах, построенных на базе микроконтроллеров серии M-Core фирмы "Моторола" [5]. В данной статье рассматриваются результаты исследования функциональных возможностей и параметров быстродействия встроенных ОС и ОС РВ, представляющих собой модификацию исходных версий ОС Linux [6-11]. Требования ко встроенным и РВ-версиям Linux. В ряду требований к версиям ОС Linux, обеспечивающим поддержку встроенных приложений и приложений РВ, следует отметить реактивность, производительность, точность, функциональность, корректность и устойчивость, а также совместимость, преемственность, масштабируемость, меру готовности, оснащенность, мобильность. В применении к предмету настоящей статьи часть этих терминов требует пояснений, а некоторые из них трактуются специфически. Под реактивностью СРВ в самом общем смысле понимается способность системы быстро откликаться на возникновение обстоятельств, требующих незамедлительной реакции. ОС РВ как базовая составная часть СРВ должна строиться таким образом, чтобы в максимальной мере способствовать построению приложений с высокой реактивностью. Количественную характеристику пригодности ОС РВ к использованию в СРВ с высокой реактивностью определяют два параметра: - задержка обработки прерываний – продолжительность интервала времени между возникновением маскируемого сигнала прерывания и передачей управления обработчику этого прерывания; - задержка обработки внутрисистемных событий – продолжительность интервала времени между возникновением внутрисистемного события и передачей управления высокоприоритетной программе, ожидающей возникновения этого события. Максимальное значение задержки обработки прерываний компонентами ОС РВ учитывается при разработке приложений жесткого РВ, к которым предъявляются требования высокой предсказуемости поведения. Термин производительность в рамках данной статьи используется в смысле эффективности реализации операций межзадачных взаимодействий (коммуникационных и синхронизирующих операций). Встроенная система, как правило, связана с рядом независимо функционирующих внешних устройств, каждое из которых требует поддержки более или менее сложного протокола взаимодействия. В этих условиях обслуживание внешних устройств осуществляется множеством задач, разделяющих ресурс процессора согласно приоритетной дисциплине с вытеснением. Для координации действий задач используются механизмы передачи сообщений (коммуникационные механизмы) и механизмы синхронизации. Во встроенных системах эти механизмы используются с высокой частотой, поэтому важно обеспечить возможно более высокую эффективность их реализации, что означает необходимость принятия всех возможных мер к снижению затрат процессорного времени на выполнение основных коммуникационных и синхронизирующих операций. В результате выполнения синхронизирующей операции может произойти смена задачи, владеющей ресурсом процессора. При этом процессор должен переключиться из контекста задачи, освобождающей процессор, в контекст активизируемой задачи. Время, требуемое для переключения контекста, во многих случаях составляет большую часть общего времени выполнения синхронизирующей операции и является одной из ключевых характеристик ОС РВ. Приблизительную оценку эффективности переключения контекста можно получить путем измерения времени выполнения простейших синхронизирующих операций. Точность. Для СРВ характерна привязка вычислений к определенным моментам времени. Это относится к порождению экземпляров периодических задач и к возобновлению задач, выполнение которых откладывалось до наступления заданного момента времени. Моменты времени фактического выполнения этих операций могут отклоняться от заданных моментов времени на величину, характеризующую хронометрическую точность системы. Для приложений жесткого РВ эта характеристика ОС РВ является одной из ключевых. Под функциональностью ОС понимается широта набора сервисных функций, предоставляемого ОС прикладным программам. Корректность реализации системы понимается как точность соответствия ее поведения спецификациям реализуемых функций. Корректность встроенной системы в существенной мере зависит от корректности реализации входящей в ее состав ОС. Под устойчивостью системы понимается ее способность продолжать выполнение части функций при выходе из строя некоторых подсистем. Корректность и устойчивость определяют надежность функционирования системы, характеристику, особенно важную для встроенных приложений. Для версий ОС, ориентированных на настольные приложения, требования устойчивости обусловлены риском потери данных, риском снижения потребительских свойств обслуживаемых ОС настольных прикладных программ. Во встроенных системах и СРВ сбои в работе ОС могут оказаться чреватыми выходом из строя дорогостоящего оборудования и даже человеческими жертвами. Цена таких потерь может оказаться несоизмеримой с ценой потерь в настольных системах. Этим обусловлены повышенные требования к устойчивости встроенных и РВ-версий Linux. То есть при разработке встроенной версии Linux устойчивость конечного продукта должна быть не ниже, а, как правило, существенно выше устойчивости базовой версии Linux. Как было отмечено ранее, одним из преимуществ ОС Linux как базовой ОС для разработки встроенных ОС и ОС РВ является возможность использования большого числа имеющихся прикладных программ. В качестве примеров можно указать разнообразные средства редактирования, графические пользовательские интерфейсы, средства доступа к компьютерным сетям, интернет-браузеры, большое число игровых приложений. Совместимость встроенных версий Linux понимается в том смысле, что адаптация исходной версии ядра ОС Linux к условиям функционирования во встроенных системах, должна выполняться таким образом, чтобы сохранялась возможность использования библиотек этой исходной версии. Ядро ОС Linux постоянно совершенствуется, регулярно появляются его новые версии. Разработку на базе ядра Linux встроенной ОС или ОС РВ желательно осуществлять таким образом, чтобы оставалась возможность без чрезмерных затрат заменять устаревшее ядро исходной ОС на его более новые версии. Важно, чтобы при этом сохранялась преемственность в смысле возможности поддержки уже разработанных встроенных приложений и приложений РВ. Для размещения полной версии ОС Linux требуются значительные объемы памяти, в то время как ресурсы памяти встроенных систем во многих случаях весьма ограничены. Версии для встроенных систем должны предусматривать генерацию таких специфических конфигураций ОС, функциональные возможности которых в возможно более полной мере соответствовали бы потребностям конкретных приложений. Для встроенной системы может оказаться слишком расточительной трата аппаратных ресурсов для размещения компонентов ОС, не используемых прикладными программами. Свойство масштабируемости ОС характеризует возможности генерации конфигураций ОС, соответствующих функциональным требованиям со стороны приложений. Среди требований ко многим встроенным системам указывают необходимость высокой степени готовности системы к выполнению своих функций. Мера готовности выражается отношением суммарной длительности интервалов нормального функционирования системы к общей продолжительности функционирования, включающей интервалы профилактики, настройки, сбоев в работе и т.п. Под оснащенностью понимается степень укомплектованности ОС специальными инструментальными средствами для разработки приложений, например, редакторами, компиляторами, средствами отладки и т.п. При разработке встроенных систем инструментальные программные средства, как правило, реализуются на аппаратных платформах, отличных от аппаратных платформ целевых встроенных систем. Поэтому для встроенных версий ОС характеристика мобильности приобретает два измерения – мобильность целевых кодов ОС и мобильность ее инструментального оснащения. Под мобильностью программной системы понимается возможность ее переноса на различные аппаратные платформы. Время жизни высокомобильных программных систем может существенно превышать время жизни аппаратных платформ, для которых они были первоначально разработаны. ОС Linux представляет собой пример высокомобильной ОС. Сохранение этого свойства за встроенными версиями Linux расширяет возможности внедрения построенных на их базе прикладных программных систем. Подходы к разработке встроенных и РВ-версий Linux. Анализ известных прецедентов адаптации ОС Linux для поддержки встроенных приложений и приложений РВ показал, что коллективы исследователей и разработчиков, действующих, в этом направлении, придерживаются одного из трех подходов к решению поставленной задачи. Ключевой идеей первого подхода является построение двуядерной ОС, включающей, наряду с ядром Linux, дополнительное ядро, обслуживающее задачи РВ. При этом алгоритм ядра Linux остается неизменным, коды ядра подвергаются лишь минимальной модификации, необходимой для сопряжения с ядром РВ. Примерами ОС такого рода являются система RTLinux [6] и система Embedix-RealTime [7], построенная на базе выполненной в Миланском политехническом институте реализации специального интерфейса прикладных программ RTAI (Real-Time Application Interface). Суть второго подхода (примерами его реализации являются системы TimeSys Linux/RT [8], Hard Hat Linux [9], KURT [10]) сводится к внесению в ядро Linux таких модификаций, которые обеспечивали бы ему свойства, необходимые для поддержки задач РВ. Разработчики, реализующие третий подход, (примером реализации этого подхода является система BlueCat [11]), оставляют состав функциональных возможностей целевой ОС Linux неизменным, а направляют усилия на расширение оснащенности этой ОС инструментальными средствами. При этом повышение устойчивости ОС осуществляется за счет устранения имеющихся дефектов и повышения мобильности в обоих измерениях как в части состава поддерживаемых вариантов архитектуры целевых систем, так и в части состава платформ, на которых реализованы соответствующие инструментальные средства. Ниже рассматриваются особенности архитектуры, функциональные особенности, характеристики реактивности и эффективности межзадачных взаимодействий для перечисленных представителей всех трех подходов к построению встроенных и РВ-версий Linux. RTLinux и Embedix-RealTime. Архитектурные решения, реализуемые двуядерными системами RTLinux и Embedix-RealTime, в основном совпадают. Они отражены на рисунке 1. Здесь следует отметить два ключевых момента организации таких двуядерных систем: 1) ядро ОС Linux функционирует в роли фоновой задачи ОС РВ; 2) сигналы прерываний от внешних устройств, обрабатываемые компонентами ядра Linux, передаются туда через составляющую ОС РВ, называемую виртуальной машиной. Адаптация кодов ОС Linux к работе в двуядерной системе сводится к изменению статуса обработчиков прерываний. Они преобразуются в процедуры, вызываемые виртуальной машиной. Таким образом, алгоритмы ОС Linux остаются неизменными, трудоемкость адаптации новых версий Linux к работе в двуядерной системе невелика, то есть требования совместимости и преемственности удовлетворяются с достаточной полнотой. Поскольку ядро ОС Linux и контролируемые им процессы работают в рамках фоновой задачи ОС РВ, реактивность системы и эффективность операций взаимодействия задач РВ определяются не столько свойствами ядра Linux, сколько качеством реализации ядра ОС РВ. В системах RTLinux и Embedix-RealTime ядро ОС РВ реализовано не самым эффективным образом. Гарантированная реактивность системы ограничивается необходимостью регистрации в структурах виртуальной машины прерываний от внешних устройств, контролируемых ядром ОС Linux (Linux-устройств). При активной работе с диском задержка обработки прерываний для RTLinux может превысить один-два десятка микросекунд при использовании процессоров с тактовой частотой в сотни МГц. Более тщательная реализация ядра ОС РВ в Embedix-RealTime привела к улучшению этой характеристики примерно на треть. Отметим, что планировщик задач РВ реализован недостаточно эффективно. Это приводит к тому, что в условиях отсутствия активности Linux-устройств максимальная задержка обработки прерываний возрастает с ростом числа задач РВ. Еще одним следствием неэффективной реализации планировщика задач РВ является низкая эффективность переключения контекста и, как следствие, низкая эффективность синхронизирующих операций, сопровождающихся сменой текущей задачи. TimeSys Linux/RT. Компания "TimeSys Corp." выпустила продукт TimeSys Linux/RT, в котором модифицированное ядро ОС Linux дополнено модулем Resource Kernel (RK). В составе RK реализован механизм резервирования ресурсов, отвечающий за выделение прикладным задачам запрашиваемых ими ресурсов и за последующий контроль использования задачами ресурсов в рамках выделенных объемов. В настоящее время модуль RK в системе TimeSys Linux/RT контролирует выделение и использование ресурса процессора периодическими задачами. Контроль над использованием ресурса процессора позволяет гарантировать задачам его использование в рамках выделенных им объемов (задачи, пытающиеся превысить выделенный им ресурс процессора, принудительно завершаются). При запросе ресурса процессора для выполнения периодической задачи механизму резервирования ресурсов сообщаются: а) период выполнения задачи, б) относительный срок выполнения задачи, в) продолжительность выполнения задачи в рамках одного периода. Проверка наличия запрашиваемого ресурса осуществляется средствами частотно-монотонного анализа [12]. Помимо резервирования ресурсов, в модуле RK реализованы поддержка периодических задач и мютексы. Реализация мютексов существенно улучшена в сравнении с их реализацией в стандартных библиотеках ОС Linux. Во-первых, реализованы протоколы контроля инверсии приоритетов. Во-вторых, усилен контроль над корректностью использования этого синхронизирующего механизма пользовательскими программами. В-третьих, реализация мютексов в модуле RK свободна от дефектов, имеющихся в стандартных библиотечных реализациях этого механизма. Кроме того, реализация мютексов в пространстве ядра ОС Linux существенно более эффективна в сравнении с библиотечным вариантом. Hard Hat Linux. Главной особенностью разработки, результатом которой стала ОС Hard Hat Linux, является усовершенствование планировщика процессов, управляемых ядром ОС Linux. В ОС Hard Hat Linux процессы с дисциплиной планирования SCHED_FIFO и SCHED_RR рассматриваются как задачи РВ. Эти задачи распределяются по шкале, включающей 128 приоритетных уровней. Структура данных, представляющая множество готовых к выполнению задач, изображена на рисунке 2. Эта структура содержит 128 очередей задач РВ (по числу приоритетных уровней). В конкретный момент времени некоторые очереди могут оказаться пустыми, другие содержат одну или несколько задач. Специальный битовый массив интерпретируется как множество из 128 флагов, отмечающих непустые очереди. Для выбора подлежащей выполнению задачи планировщик ищет первую непустую строку в массиве флагов и выбирает первую задачу из соответствующей очереди. При таком способе организации планировщика время поиска задачи, подлежащей выполнению, и время включения новой задачи в очередь практически не зависят от числа задач, готовых к выполнению, и от общего числа задач в системе. Это повышает предсказуемость поведения системы, что особенно важно для СРВ. Кроме того, время выполнения этих операций (а оно составляет значительную часть времени переключения контекста) существенно сокращается. KURT. ОС KURT представляет собой результат модификации ОС Linux, выполненной для ее адаптации к требованиям поддержки таких приложений РВ, как обработка потока пакетов сообщений в узлах компьютерных сетей. Подобные приложения требуют высокой хронометрической точности активизации прикладных задач. ОС KURT отличается от стандартной ОС Linux наличием двух дополнительных компонентов: подсистемы UTIME, позволяющей повысить точность службы времени до микросекундного уровня, и интерпретатора точного графика событий РВ (график формируется статически, то есть в фазе компиляции прикладных программ). Каждое событие РВ инициализирует выполнение соответствующего ему модуля РВ, который представляет собой загружаемый модуль ядра, выполняющий функции специфической прикладной задачи РВ. Модуль РВ выполняется в режиме ядра, потому имеет доступ к драйверам внешних устройств, а также к другим частям ядра системы, которые недоступны процессам ОС Linux, работающим в режиме пользователя. Таким образом, ОС KURT дополняет функциональные возможности стандартной ОС Linux только возможностью инициализировать выполнение некоторых пользовательских программ с микросекундным уровнем точности в соответствии со статически формируемым графиком. Из этого следует, что KURT как ОС РВ является весьма узкоспециализированной системой. BlueCat. Фирма "LynuxWorks Inc." разработала продукт, представляющий собой модификацию ОС Linux, ориентированную на поддержку встроенных приложений, – ОС BlueCat. При этом набор функциональных возможностей продукта остается неизменным, то есть в точности повторяет набор функциональных возможностей исходной ОС Linux. Достоинства продукта состоят, во-первых, в его высокой мобильности (в настоящее время фирма уже поддерживает большое число целевых и инструментальных платформ). Во-вторых, фирма обязуется оперативно выпускать новые версии продукта при появлении новых свободно распространяемых версий ОС Linux, обеспечивая при этом преемственность приложений в течение 15 лет. Отмечается достойный уровень процесса разработки продукта, обеспечивающий его высокую надежность (процесс производства программных средств в фирме "LynuxWorks Inc." сертифицирован на соответствие стандарту ISO 9001). Оценки соответствия требованиям. В таблице приведены экспертные оценки соответствия рассмотренных ОС требованиям, предъявляемым к версиям ОС Linux, обеспечивающим поддержку встроенных приложений и приложений РВ. Оценки, характеризующие измеряемые параметры ОС, основаны на результатах, полученных при выполнении специальных измерительных приложений. Требования качественного характера оценивались на основании опыта разработки измерительных приложений для исследовавшихся версий рассматриваемых систем. При этом учитывались сведения, имеющиеся в документации по указанным продуктам и в других опубликованных материалах. В таблицу не включены требования, для которых оценки по всем рассматриваемым ОС совпадают: совместимость и преемственность хорошие, масштабируемость и мера готовности удовлетворительные. На рисунке 3 представлены в виде диаграмм сравнительные оценки рассматриваемых версий ОС Linux. Таблица и рисунок 3 иллюстрируют преимущества двуядерных систем и, в особенности, преимущества Embedix-RealTime по реактивности, производительности, точности. Из рисунка 3 видно, что контур, представляющий характеристики одноядерной ОС TimeSys Linux/RT, заметно смещен в сторону характеристик 5-7 (корректность, устойчивость, оснащенность). Две другие одноядерные ОС имеют преимущества в части характеристик 7-8 (оснащенность, мобильность), отражающих эффективность разработки. В случае ОС KURT оценка выше средней выставлена только для одной характеристики (точность), что свидетельствует об узкоспециализированной ориентации этой системы. Представленные в статье результаты, опирающиеся на данные экспериментальных исследований РВ-версий ОС Linux, показали, что на базе этой ОС может быть построена достаточно эффективная ОСРВ, которая в то же время будет удовлетворять стандарту POSIX. Наиболее перспективным архитектурным решением авторы считают двуядерный подход. При этом, естественно, необходимо расширить функциональные возможности ядра РВ, улучшить его временные характеристики и обеспечить более гибкое взаимодействие процессов ОС Linux и задач РВ, составляющих встроенное приложение. Дальнейшие исследования будут направлены на решение этих проблем. Список литературы 1. Никифоров В.В., Павлов В.А. Операционные системы реального времени для встроенных программных комплексов. // Программные продукты и системы. - № 4, 1999. - С.24-30. 2. eCos Reference Manual, Red Hat, Inc., September 2000. 3. Goldt S., Meer S., Burkett S., Welsh m. The Linux Programmer’s Guaide. 1995. 4. Searls D. BigBlue’s Love Letters to Linux. // Linux Journal, 7-mar-2001 (http://www2.linuxjournal.com/articles/ breits/ 0079.html). 5. Никифоров В.В., Данилов М.В., Осипов М.В. Сопряжение пакетов программ общего назначения с задачами жесткого реального времени. // Программные продукты и системы. - № 4, 2000. - С.19-25. 6. Yodaiken V. The RTLinux Manifesto. Dept. of Computer Science New Mexico Institute of Technology 1999 (http://www.rtlinux.org). 7. Embedix-RealTime. Programming Guide 1.0. Lineo, Inc.: September 2000. 8. Lazenby D.. TimeSys Linux/RT (Professional Edition). Linux Journal #77, September 2000. 9. Hard Hat Linux 2.0. Professional Edition. Reference Guide. MontaVista Software Inc: 2001. (http://www.muista.com/ products/shared/ORG.pdf). 10. Hill R., Srinivasan B., Pather S., Niehaus D. Temporal Resolution and Real-Time Extensions to Linux. Dept. of Electrical Engineering and Computer Science, University of Kansas, 1998. 11. BlueCat Specifications. LynuxWorks Inc.: 2001 (http://www.bluecat.com/products/ whatisbcl.html). 12. Tindell K., Hansson H. Real-Time Systems by Fixed Priority Scheduling. DoCS, Uppsala University, 1997. |
http://swsys.ru/index.php?id=852&lang=.&page=article |
|