Шаблоны проектирования, обычно используемые для RTOS (VXworks) - PullRequest
0 голосов
/ 10 мая 2010

Может кто-нибудь помочь мне с шаблонами проектирования, обычно используемыми для ОСРВ?
В VXworks какой шаблон предпочтительнее?

Ответы [ 3 ]

7 голосов
/ 10 мая 2010

Можем ли мы игнорировать второе предложение в вашем вопросе? Это бессмысленно и, возможно, указывает на неправильное понимание шаблонов проектирования. Однако первая часть интересна. Тем не менее, я бы обобщил это для охвата систем реального времени , а не ОСРВ.

Многие из наиболее знакомых шаблонов являются механистическими, но в системах реального времени также важны архитектурные шаблоны более высокого уровня.

Брюс Пауэлл Дуглас , вероятно, является главным автором в области паттернов для систем реального времени. Если вы хотите узнать, что он говорит по этому вопросу, прочитайте эту статью на Embedded.com (это третья часть из серии трех; обязательно прочитайте первые два, так как они также касаются предмета, (1) (2) ). Вы также можете сделать хуже, чем посетить Embedded.com и ввести «шаблоны проектирования» в поле поиска, здесь есть ряд статей по конкретным шаблонам и общие статьи по этой теме.

Хотя я думаю, что вы слишком далеки от специфики запроса шаблонов для «RTOS (VxWorks)», шаблоны, которые я использовал специально для VxWorks, - это шаблоны Facade и Adapter . Частично для обеспечения OO API, а также для обеспечения уровня абстракции, не зависящей от RTOS. Затем полученные классы были реализованы для Segger emBOS (чтобы мы могли запускать меньшую, более дешевую, бесплатную ОСРВ), а также для Windows и Linux, чтобы позволить тестировать, отлаживать и моделировать код в более богатой среде с помощью более мощных инструментов.

Неисчерпывающий список многих шаблонов приведен в Wikipedia , многие из которых будут применимы к системам реального времени. Перечисленные шаблоны параллелизма наиболее актуальны.

6 голосов
/ 10 мая 2010

Как заметил Майк ДеСимоне, он слишком общий. Тем не менее, вот несколько вещей, которые нужно учитывать для RTOS (не только для VxWorks).

  1. Старайтесь не делать слишком много в ISR. Если возможно, передайте часть обработки ожидающей задаче.
  2. Сохраняйте многопоточность оптимальной. Слишком много, и у вас есть издержки переключения контекста. Слишком мало, и решение вашей проблемы может быть сложным.
1 голос
/ 09 июня 2010

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

...