Каковы основы распределенных систем реального времени?
Распределенная система реального времени состоит из двух сложных наборов свойств, которые налагаются областью задачи или областью решения (или обеими).
Распространяется
Распределенная система связывает ряд независимых вычислительных объектов с локальными свойствами посредством механизма связи. Как следствие, алгоритмы и другие компоненты проектирования должны учитывать синхронность и модель отказов . Полезное резюме (не совсем объективное) проблем распределенных вычислений включено в '1013 * Восемь заблуждений распределенных вычислений * Дойча . (См. это полезное изложение .) Все это полезно рассмотреть в (в реальном времени) распределенном проектировании; каждый из них является отправной точкой для решения важных вопросов проектирования и реализации:
- Сеть надежна
- Задержка равна нулю
- Пропускная способность бесконечна
- Сеть защищена
- Топология не меняется
- Есть один администратор
- Транспортные расходы равны нулю
- Сеть однородна
Real-Time
Система
A в режиме реального времени - это система, в которой своевременность завершения операции является частью функциональных требований и меры корректности системы. (Я открыл SO вопрос здесь , чтобы попытаться прояснить это.) В действительности, почти все системы можно считать «мягкими» в реальном времени, поскольку обычно существуют невысказанные требования / ожидания в отношении своевременности операций. , Мы резервируем термин в режиме реального времени , иногда квалифицируемый как soft или hard , для систем, которые некорректны , когда временные ограничения не выполнены , Обратите внимание, что многие из проблем, изложенных выше в заблуждениях, пересекаются с своевременностью. (См. Также тег в реальном времени вики )
Полезно отметить, что системы RT (и DRT) существуют по целому ряду требований, с «детерминированными» (или условно, жесткими значениями реального времени ) в одном крайнем случае. Однако многие системы имеют очень важные временные ограничения, которые, тем не менее, являются недетерминированными. Особенно в контексте систем DRT также полезно отделить концепцию деятельности срочность от деятельности приоритет . В больших системах, где задержка и отказ являются реальными и нетривиальными факторами, становится все более важным явное управление вычислительными и коммуникационными ресурсами для обеспечения своевременности и других требований к проектированию, и становится важным разделение этих двух измерений.
Компоновка, распространяемая в реальном времени
- Явные требования к своевременности & mdash; Каковы требования, как они соотносятся с действиями, являются ли они истинными требованиями к своевременности трансузлов, как временные ограничения будут четко представлены в проекте и реализациях, и как будут обнаруживаться, сообщаться и устраняться сбои?
- Синхронизация времени & mdash; Каковы требования и механизмы для достижения тактовой синхронизации? Вики на часы синхронизации ; для многих приложений требуется только NTP ; более строгие требования могут потребовать специального оборудования (например, IRIG-B ) или подходов.
- Требования к синхронизации & mdash; Каковы предположения синхронности, ограничивающие и требования к системной синхронизации? Это связано с синхронизацией часов, но не идентично. Несколько мыслей о формальных моделях от Дуга Дженсена ; Википедия по Асинхронная система и Синхронная ; ТАК вопрос о частичном упорядочении событий ;
- Шаблоны проектирования & mdash; Что такое движущиеся части и как они связаны с транспортом? (В частности, как эти отношения влияют на своевременность?)
- Промежуточное программное обеспечение & mdash; Как вы собираетесь кодировать распределенные аспекты системы? Примеры включают в себя CORBA в реальном времени (вот хорошая страница от OIS ) или DDS .
- Ограничения по времени & mdash; Как вы собираетесь документировать, измерять и применять временные ограничения в системе?
- Частичная ошибка & mdash; Система реального времени обычно предъявляет требования к надежности. Одним из уникальных аспектов распределенных систем является возможность возникновения целых классов отказов, называемых «частичными» сбоями, либо из-за реальных сбоев / сбоев связи, либо из-за ошибок своевременности, которые должны рассматриваться как сбои. ТАК вопрос о сбоях ;
- ОСРВ & mdash; Какая операционная система в реальном времени будет использоваться?
Несколько ссылок
Для довольно традиционного представления систем DRT, посмотрите книгу Копца . Для более динамичного просмотра рекомендуется работа Дженсена и его веб-сайт . В области Java я предлагаю прочитать превосходное "Введение в надежное распределенное программирование" . Он не решает в полной мере проблемы своевременности, но решает частичные ошибки особенно четко.
В последнее время концепция (ненадежных) детекторов отказов стала полезной синхронной конструкцией, обеспечивающей полезные теоретические рассуждения и практические методы формулирования / проектирования / конструирования для систем DRT. Основным документом по этой теме является О влиянии быстрых детекторов отказов на отказоустойчивые системы реального времени , подготовленные Агилерой, Ле Ланн и Туегом Эта статья тяжело катается на санях, но вознаграждает каждую унцию интеллектуальных инвестиций.