Описание тега real-time
Определение
Задача выполняется в режиме реального времени, когда своевременность выполнения действий является функциональным требованием и условием правильности, а не просто показателем производительности. Система реального времени - это система, в которой некоторые (хотя, возможно, не все) задачи являются задачами реального времени.
Системы реального времени
Термин " реальное время" используется по крайней мере двумя различными способами при обращении к компьютерным системам:
В академическом смысле реального времени программа или система являются "работающими в реальном времени", когда они подвержены ограничениям времени выполнения, например крайним срокам. Такие системы делятся на мягкое и жесткое реального времени. Корректность реализации зависит не только от значений, создаваемых программой, но и от времени, в которое эти значения создаются.
- Системы жесткого реального времени - это системы, в которых недопустимы отклонения от временных ограничений (например, пропущенные сроки), и любой отказ представляет собой полный отказ системы.
- Системы мягкого реального времени допускают некоторую степень отклонения от временных ограничений, например системы потоковой передачи мультимедиа, в которых некоторые запаздывающие пакеты могут временно ухудшать качество, но все же обеспечивать приемлемое выполнение.
Как синоним слова "он-лайн", когда программа должна реагировать на события "в реальном времени", независимо от того, существуют ли фактические временные ограничения. (например, котировки акций в реальном времени или что-то еще.)
В Википедии есть полезное обсуждение.
Детерминизм
Некоторые участники, особенно в оборонном и аэрокосмическом сообществе, вместо этого используют такие термины, как критичный по времени или динамический критический по времени, для обозначения систем, которые имеют ограничения в реальном времени. Термин " реальное время" иногда является проблематичным, поскольку он подразумевает детерминизм (который не всегда требуется или даже желателен), а также имеет багаж очень конкретной теории и истории реализации. Тем не менее, существуют высокодинамичные системы, которые, тем не менее, имеют временные ограничения, и много времени на разработку уходит на использование комбинации жесткого и мягкого подходов в реальном времени и специальных хаков для удовлетворения этих требований.
Если у меня есть система с четко определенными задачами, и я хочу сказать, что задача X должна завершиться к моменту t с вероятностью 0,95, это жесткая или мягкая задача в реальном времени?
Состав задач
Обратите внимание, что многие системы реального времени являются составными, состоящими из задач и действий, требующих различной степени предсказуемости своевременности.
Фонды
Вот несколько основных вопросов о Stackru и других ресурсах, которые помогут понять концепции реального времени:
- В чем суть распределенных систем реального времени?
- Обновление программного обеспечения за миллиард миль. Часто системы реального времени также являются критически важными для безопасности и критически важны, и требования и подходы совпадают.
Управление ресурсами
Обеспечение того, чтобы действия в системе реального времени обычно основывались на характеристике потребностей деятельности в ресурсах и последующем управлении ресурсами для их удовлетворения.
Характеристика потребностей в ресурсах обычно включает, по крайней мере, анализ времени выполнения. Распространенной мерой является время выполнения наихудшего случая (WCET), которое обычно определяется комбинацией эмпирических данных и анализа. Кроме того, часто бывает необходимо улавливать другие потребности в ресурсах, такие как ввод-вывод, или "логические" ресурсы, такие как блокировки / мьютексы / семафоры. Распространенным показателем в этом параметре является фактор блокировки.
После того, как деятельность была охарактеризована, применяются четкие дисциплины для обеспечения своевременности. Исторически это делалось полностью вручную, например, с использованием шаблона циклического исполнительного проектирования. Если система построена на многопроцессорной или многопоточной платформе, необходимо использовать дисциплины планирования и синхронизации. Наиболее распространенный тип планировщика в ОСРВ - это планировщик приоритетов, в котором готовые действия получают процессорное время в порядке их выраженного приоритета. В то время как временные ограничения для большинства операций в реальном времени сформулированы в терминах крайних сроков, немногие ОСРВ или никакие ОСРВ не предоставляют явный планировщик крайних сроков. Вместо этого периодическим или спорадическим действиям с детерминированными крайними сроками назначаются приоритеты с использованием Оцените монотонный анализ (RMA), чтобы сопоставить их с фиксированными приоритетами.
Стандарты
- Расширения реального времени POSIX - IEEE 1003.1b-1993 и 1003.1i-1995; Описано на unix.org
- Спецификация Ada Real-Time; отличный обосновательный документ.
- Сетевые корпоративные решения для взаимодействия (NESI) Министерства обороны США, часть 4: руководство по узлу, вычислительная инфраструктура узла, критичные ко времени операции (P1395)
- Спецификация реального времени для Java (RTSJ) - см. Также Stackru rtsj и теги Java реального времени.
Реализация / Платформы
В этом разделе будут обобщены язык, операционные системы, промежуточное ПО и другие компоненты реализации, общие в системах RT.
- Какие языки используются для программирования систем в реальном времени?
- Linux в реальном времени - усилия, спонсируемые сообществом, такие как PREEMPT_RT, а также коммерческие поставщики, такие как RedHawk Linux от Concurrent