Система реального времени

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Реальное время»)
Перейти к навигации Перейти к поиску

Система реального времени (СРВ) — это система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений. Оксфордский словарь английского языка говорит об СРВ как о системе, для которой важно время получения результата. Другими словами, обработка информации системой должна производиться за определённый конечный период времени, чтобы поддерживать постоянное и своевременное взаимодействие со средой[1]. Естественно, что масштаб времени контролирующей системы и контролируемой ей среды должен совпадать[2].

Под реальным временем понимается количественная характеристика, которая может быть измерена реальными физическими часами, в отличие от логического времени, определяющего лишь качественную характеристику, выражаемую относительным порядком следования событий. Говорят, что система работает в режиме реального времени, если для описания работы этой системы требуются количественные временны́е характеристики[2].

Характеристики систем реального времени[править | править код]

Процессы (задачи) систем реального времени могут иметь следующие характеристики и связанные с ними ограничения[3]:

  • дедлайн (англ. deadline) — критический срок обслуживания, предельный срок завершения какой-либо работы;
  • латентность (англ. latency) — время отклика (время задержки) системы на внешние события;
  • джиттер (англ. jitter) — разброс значений времени отклика. Можно различить джиттер запуска (англ. release jitter) — период времени от готовности к исполнению до начала собственно исполнения задачи и джиттер вывода (англ. output jitter) — задержка по окончании выполнения задачи. Джиттер может возникать под влиянием других одновременно исполняемых задач.

В моделях систем реального времени могут фигурировать и другие параметры, например, период и количество итераций (для периодических процессов), нагрузка (англ. load) — количество команд процессора в худшем случае[3].

В зависимости от допустимых нарушений временных ограничений системы реального времени можно поделить на системы жёсткого реального времени (англ. hard real-time), для которых нарушения равнозначны отказу системы, и системы мягкого реального времени (англ. soft real-time), нарушения характеристик которых приводят лишь к снижению качества работы системы[1]. См. также: вычисления в реальном времени. Также можно рассматривать твёрдые системы реального времени (англ. firm real-time), в которых допускается небольшое нарушение дедлайнов, но бо́льшее нарушение может привести к катастрофическому отказу системы[4][5].

Следует заметить, что определение жёсткого реального времени ничего не говорит об абсолютном значении времени отклика: это могут быть как миллисекунды, так и недели[6]. Требования к системам мягкого реального времени можно задать только в вероятностных терминах, например, как процент откликов, выданных в установленные временны́е рамки. Интересно, что при проектировании предварительные расчёты легче выполнить для системы жёсткого реального времени, чем получить, например, долю выполняемых в срок задач в системе мягкого реального времени, поэтому разработчики таких систем часто пользуются инструментами и методиками для проектирования систем жёсткого реального времени[7].

События реального времени[править | править код]

События реального времени могут относиться к одной из трёх категорий[1]:

  • Асинхронные события — полностью непредсказуемые события. Например, вызов абонента телефонной станции.
  • Синхронные события — предсказуемые события, случающиеся с определённой регулярностью. Например, вывод аудио и видео.
  • Изохронные события — регулярные события (разновидность асинхронных), случающиеся в течение интервала времени. Например, в мультимедийном приложении данные аудиопотока должны прийти за время прихода соответствующей части потока видео.

Применение систем реального времени[править | править код]

С развитием технологий системы реального времени нашли применения в самых различных областях. Особенно широко СРВ применяются в промышленности, включая системы управления технологическими процессами, системы промышленной автоматики, SCADA-системы, испытательное и измерительное оборудование, робототехнику. Применения в медицине включают в себя томографию, оборудование для радиотерапии, прикроватное мониторирование. СРВ встроены в периферийные устройства компьютеров, телекоммуникационное оборудование и бытовую технику, такую как лазерные принтеры, сканеры, цифровые камеры, кабельные модемы, маршрутизаторы, системы для видеоконференций и интернет-телефонии, мобильные телефоны, микроволновые печи, музыкальные центры, кондиционеры, системы безопасности. На транспорте СРВ применяются в бортовых компьютерах, системах регулирования уличного движения, управлении воздушного движения, аэрокосмической технике, системе бронирования билетов и т. п. СРВ находят применения и в военной технике: системах наведения ракет, противоракетных системах, системах спутникового слежения[8].

Примеры[править | править код]

Примеры систем, работающих в режиме реального времени:

Проблемы[править | править код]

При создании систем реального времени приходится решать проблемы привязки внутрисистемных событий к моментам времени, своевременного захвата и освобождения системных ресурсов, синхронизации вычислительных процессов, буферизации потоков данных и т. п. Системы реального времени обычно используют специализированное оборудование (например, таймеры) и программное обеспечение (например, операционные системы реального времени)[источник не указан 1461 день].

См. также[править | править код]

Примечания[править | править код]

  1. 1 2 3 Labrosse, et al, 2007, p. 536.
  2. 1 2 Mall, 2006, p. 2—3.
  3. 1 2 Huss, S.A. Advances in Design and Specification Languages for Embedded Systems: Selected Contributions from FDL’06. — Springer, 2007. — P. 345. — 368 p. — ISBN 9781402061493.
  4. Laplante, Ovaska, 2011, pp. 6—7.
  5. Барретт, Пак, 2014, с. 521.
  6. Labrosse, et al, 2007, p. 539.
  7. Ganssle, Barr, 2003, p. 251.
  8. Mall, 2006, p. 3—8.

Литература[править | править код]

  • Jean J. Labrosse, et al. Chapter 8. DSP in Embedded Systems // Embedded Software. — Newnes, 2007. — 792 p. — ISBN 978-0-7506-8583-2.
  • Jack Ganssle and Michael Barr. Embedded systems dictionary. — CMP Books, 2003. — 293 p. — ISBN 1-57820-120-92.
  • Dimosthenis Kyriazis, Theodora Varvarigou, Kleopatra Konstanteli. Achieving Real-Time in Distributed Computing. — IGI Global, 2011. — 452 p. — ISBN 978-1-60960-827-9.
  • Rajib Mall. Real-Time Systems: Theory and Practice. — IGI Global, 2006. — 242 p. — ISBN 9788131700693.
  • Phillip A. Laplante, Seppo J. Ovaska. Real-Time Systems Design and Analysis: Tools for the Practitioner. — John Wiley & Sons, 2011. — 560 p. — ISBN 978-0-470-76864-8.
  • Стивен Баррет, Даниэль Пак. Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68НС12 / НСS12 с применением языка С. — ДМК-Пресс, 2014. — 640 p. — ISBN 978-5-457-38723-2.