Ответ 1
В чем суть распределенных систем реального времени?
Распределенная система реального времени состоит из двух сложных наборов свойств, которые налагаются предметной областью или областью решения (или и тем и другим).
Распределенные
A распределенная система связывает ряд независимых вычислительных объектов с локальными свойствами посредством механизма связи. Как следствие, алгоритмы и другие компоненты дизайна должны учитывать модель синхронизация и . Полезное резюме (не полностью объективное) проблем с распределенными вычислениями включено в Deutsch Восемь ошибок в распределенных вычислениях. (См. это полезное изложение.) Все это полезно рассмотреть в распределенном проекте (в режиме реального времени); каждая из них является отправной точкой для существенных проблем проектирования и реализации:
- Сеть надежна
- Задержка равна нулю
- Полоса пропускания бесконечна
- Сеть защищена
- Топология не изменяется
- Существует один администратор
- Стоимость транспортировки равна нулю
- Сеть является однородной.
Real-Time
A система реального времени - это система, в которой своевременность завершения операции является частью функциональных требований и мера корректности системы. (Я открыл здесь SO вопрос, чтобы попытаться это прояснить.) На самом деле почти все системы можно считать "мягкими" в режиме реального времени, так как обычно нет невысказанных требования/ожидания для своевременности операций. Мы резервируем термин в режиме реального времени, иногда квалифицируемый мягким или жестким, для систем, которые являются неправильными, когда ограничения по времени не выполняются. Обратите внимание, что многие из проблем, суммированных в заблуждениях выше, пересекаются с своевременностью. (См. Также вики-метки в реальном времени)
Полезно отметить, что системы RT (и DRT) существуют в континууме требований с "детерминированным" (или условно, жестким реальным временем) с одной стороны. Однако множество систем имеют очень важные временные ограничения, которые, тем не менее, не детерминированы. Особенно в контексте DRT-систем также полезно отделить концепцию активности срочность от приоритета . В больших системах, где задержка и отказ являются реальными и нетривиальными факторами, явное управление вычислительными и коммуникационными ресурсами для обеспечения своевременности и других требований к проектированию становится более важным, и разделение этих двух измерений становится важным.
Композиция, распределенная с помощью реального времени
- Явные требования к срочности -— Каковы требования, как они сопоставляются с действиями, являются ли они истинными требованиями к своевременности, как будут отображаться временные ограничения явно в дизайне и реализации, и как выявить, сообщить и восстановить ошибки?
- Синхронизация времени — Каковы требования и механизмы для синхронизации часов? Wiki на синхронизация часов; для многих приложений требуется только NTP; более жесткие требования могут потребовать специального оборудования (например, IRIG-B) или подходов.
- Требования к синхронности — Каковы ограничения синхронных допущений и требования к системной синхронизации? Это связано с синхронизацией часов, но не идентично. Некоторые мысли о формальных моделях от Doug Jensen; wikipedia on Асинхронная система и Synchronous; SO вопрос о частичном упорядочении событий;
- Дизайн шаблонов — Каковы движущиеся части и как они связаны с транспортом? (В частности, как эти отношения влияют на своевременность?)
- Middleware — Как вы собираетесь кодировать распределенные аспекты системы? Примеры включают CORBA реального времени (здесь хорошая страница из OIS) или ДДС.
- Ограничения времени — Как вы собираетесь документировать, измерять и применять ограничения по времени в системе?
- Частичная ошибка /mdash; Система реального времени обычно имеет требования к надежности. Один из уникальных аспектов распределенных систем - это потенциал для целых классов отказов, называемых "частичными" отказами, из-за истинных сбоев при сбоях/сбоях или ошибок времени, которые должны рассматриваться как сбои. SO вопрос об отказоустойчивых подходах;
- RTOS — Какие операционные системы в режиме реального времени будут использоваться?
Несколько ссылок
Для довольно традиционной презентации DRT-систем взгляните на книгу Kopetz. Для более динамичного просмотра работа Дженсена и рекомендуется его веб-сайт. В области Java я предлагаю прочитать отличный "Введение в надежное распределенное программирование" . Он не затрагивает все вопросы, связанные с своевременностью, но особенно четко указывает на частичный сбой.
В последнее время концепция (ненадежных) детекторов отказа появилась как полезная синхронная конструкция, позволяющая использовать полезные теоретические рассуждения и практические методы разработки/проектирования/построения систем DRT. Основная статья по теме О влиянии быстрых детекторов отказов на отказоустойчивые системы в режиме реального времени, Агилера, Ле Ланн и Toueg. Эта статья - тяжелые санки, но вознаграждает каждую унцию интеллектуальных инвестиций.