Вычисления в реальном времени - Real-time computing

Вычисления в реальном времени (RTC), или же реактивные вычисления это Информатика срок для аппаратное обеспечение и программного обеспечения системы, подверженные «ограничениям в реальном времени», например, из мероприятие к ответ системы.[нужна цитата ] Программы реального времени должны гарантировать ответ в указанные временные рамки, часто называемые «крайними сроками».[1]

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

Система реального времени описывается как система, которая «управляет средой, получая данные, обрабатывая их и возвращая результаты достаточно быстро, чтобы влиять на среду в это время».[2] Термин «в реальном времени» также используется в симуляция означает, что часы симуляции работают с той же скоростью, что и настоящие часы, а в контроль над процессом и корпоративные системы означать "без существенной задержки".

Программное обеспечение реального времени может использовать одно или несколько из следующего: синхронные языки программирования, операционные системы реального времени, и сети реального времени, каждая из которых обеспечивает необходимые основы для создания программного приложения реального времени.

Системы, используемые для многих критически важный приложения должны работать в режиме реального времени, например, для управления по проводам самолет, или антиблокировочная система тормозов оба требуют немедленного и точного механического ответа.[3]

История

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

Миникомпьютеры, особенно в 1970-х годах, когда они были встроены в специализированные встроенные системы такие как СОБАКА (Цифровая экранная графика ) сканеры повысили потребность в ответах на важные взаимодействия с входящими данными с малой задержкой и приоритетами, и, следовательно, в операционных системах, таких как Общие данные с RDOS (система работы с дисками в реальном времени) и ОСРВ с планирование фона и переднего плана а также Корпорация цифрового оборудования с РТ-11 датируются этой эпохой. Планирование фонового и переднего плана позволяло использовать процессорное время для задач с низким приоритетом, когда задача переднего плана не требовалась для выполнения, и давала абсолютный приоритет внутри переднего плана потокам / задачам с наивысшим приоритетом. Операционные системы реального времени также будут использоваться для совместное времяпровождение многопользовательские обязанности. Например, Данные General Business Basic может работать на переднем или заднем плане RDOS и вводит дополнительные элементы в алгоритм планирования, чтобы сделать его более подходящим для людей, взаимодействующих через немые терминалы.

Однажды, когда Технология MOS 6502 (используется в Коммодор 64 и Яблоко II ), а позже, когда Motorola 68000 (используется в Macintosh, Atari ST, и Коммодор Амига ) были популярны, любой мог использовать свой домашний компьютер как систему реального времени. Возможность деактивировать другие прерывания, разрешенные для жестко запрограммированных циклов с определенным временем, и низкий задержка прерывания позволил реализовать операционную систему реального времени, давая пользовательскому интерфейсу и дискам более низкий приоритет, чем поток реального времени. По сравнению с ними программируемый контроллер прерываний процессоров Intel (8086..80586) генерирует очень большую задержку, а операционная система Windows не является операционной системой реального времени и не позволяет программе полностью взять на себя ЦП и использовать свой собственный планировщик, без использования собственного машинного языка и, таким образом, превосходит весь прерывающий код Windows. Однако существует несколько библиотек кодирования, которые предлагают возможности в реальном времени на языке высокого уровня в различных операционных системах, например Java в реальном времени. В Motorola 68000 и последующие члены семейства (68010, 68020 и т. д.) также стали популярными у производителей промышленных систем управления. Это область применения, в которой управление в реальном времени дает реальные преимущества с точки зрения производительности и безопасности процесса.[нужна цитата ]

Критерии для вычислений в реальном времени

Система называется в реальном времени если полная правильность операции зависит не только от ее логической правильности, но и от времени, в которое она выполняется.[4] Системы реального времени, а также их крайние сроки классифицируются по последствиям пропуска крайнего срока:[5]

  • Жесткий - несоблюдение срока - полный сбой системы.
  • Твердый - нечастые нарушения сроков допустимы, но могут ухудшить качество обслуживания системы. По истечении крайнего срока полезность результата равна нулю.
  • Мягкий - полезность результата снижается по истечении установленного срока, что ухудшает качество обслуживания системы.

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

Системы жесткого реального времени используются, когда необходимо, чтобы на событие отреагировали в строго установленные сроки. Такие строгие гарантии требуются от систем, для которых отсутствие реакции в течение определенного интервала времени могло бы каким-либо образом привести к большим потерям, особенно к физическому ущербу окружающей среде или угрозе человеческим жизням (хотя строгое определение состоит в том, что несоблюдение крайнего срока означает отказ системы. ). Некоторые примеры систем жесткого реального времени:

  • А машина двигатель Система управления - это система жесткого реального времени, потому что задержанный сигнал может вызвать отказ двигателя или его повреждение.
  • Медицинские системы, такие как сердце кардиостимуляторы. Несмотря на то, что задача кардиостимулятора проста, из-за потенциального риска для жизни человека подобные медицинские системы, как правило, должны проходить тщательное тестирование и сертификацию, что, в свою очередь, требует сложных вычислений в реальном времени, чтобы предложить доказуемые гарантии того, что сбой произошел. маловероятно или невозможно.
  • Контроллеры промышленных процессов, например, машины на сборочная линия. Если машина задерживается, элемент на сборочной линии может выйти за пределы досягаемости машины (оставив продукт нетронутым), или машина или продукт могут быть повреждены из-за активации робота в неподходящее время. Если неисправность обнаружена, оба случая приведут к остановке сборочной линии, что замедлит производство. Если отказ не обнаружен, продукт с дефектом может пройти через производство или вызвать повреждение на более поздних этапах производства.
  • Системы жесткого реального времени обычно взаимодействуют на низком уровне с физическим оборудованием, в встроенные системы. Ранние системы видеоигр, такие как Atari 2600 и Кинематроника векторная графика предъявляла жесткие требования к работе в режиме реального времени из-за природы графики и оборудования для синхронизации.
  • Софтмодемы замените аппаратный модем программным обеспечением, работающим на процессоре компьютера. Программное обеспечение должно запускаться каждые несколько миллисекунд, чтобы генерировать следующие аудиоданные для вывода. Если эти данные запаздывают, принимающий модем потеряет синхронизацию, что вызовет длительное прерывание при восстановлении синхронизации или приведет к полной потере соединения.
  • Многие виды принтеры имеют жесткие требования в реальном времени, такие как струйные (чернила должны наноситься в то время, когда печатающая головка пересекает страницу), лазерные принтеры (лазер должен быть активирован в нужный момент, когда луч проходит через вращающийся барабан), а также точечная матрица и различные типы линейные принтеры (ударный механизм должен быть активирован в нужный момент, когда механизм печати выровняется с желаемым результатом). Отказ в любом из них может привести либо к отсутствию вывода, либо к смещению вывода.

В контексте многозадачность системы политика планирования обычно управляется приоритетом (упреждающий планировщики). В некоторых ситуациях это может гарантировать производительность в реальном времени (например, если набор задач и их приоритеты известны заранее). Существуют и другие планировщики жесткого реального времени, такие как темпо-монотонный что не является обычным для систем общего назначения, так как для планирования задачи требуется дополнительная информация: а именно граничная оценка или оценка в худшем случае того, как долго задача должна выполняться. Существуют специальные алгоритмы для планирования таких задач жесткого реального времени, такие как самый ранний крайний срок сначала, что, игнорируя накладные расходы переключение контекста, достаточно для загрузки системы менее 100%.[6] Новые системы планирования наложения, такие как адаптивный планировщик разделов помогают в управлении большими системами со смесью приложений жесткого и не реального времени.

Фирменные системы реального времени имеют более расплывчатое определение, и некоторые классификации не включают их, различая только жесткие и программные системы реального времени. Некоторые примеры фирменных систем реального времени:

  • Сборочная машина, описанная ранее как жесткий вместо этого можно было бы рассматривать реальное время твердый в реальном времени. Пропуск крайнего срока по-прежнему вызывает ошибку, которую необходимо устранить: может быть оборудование, которое помечает деталь как неисправную или выбрасывает ее с конвейера, или сборочная линия может быть остановлена, чтобы оператор мог исправить проблему. Однако, если эти ошибки нечасты, с ними можно мириться.

Системы мягкого реального времени обычно используются для решения проблем одновременного доступа и необходимости поддерживать ряд подключенных систем в актуальном состоянии при изменении ситуации. Некоторые примеры систем мягкого реального времени:

  • Программное обеспечение, которое поддерживает и обновляет планы полетов для коммерческих авиалайнеры. Планы полета должны быть достаточно актуальными, но они могут работать с задержкой в ​​несколько секунд.
  • Живые аудио-видео системы также обычно работают в режиме мягкого реального времени. Фрейм звука, который воспроизводится с опозданием, может вызвать кратковременный сбой звука (и может привести к соответствующей задержке всего последующего звука, вызывая ощущение, что звук воспроизводится медленнее, чем обычно), но это может быть лучше, чем альтернативы продолжению воспроизведение тишины, статики, предыдущего звукового кадра или оценочных данных. Задержанный кадр видео обычно вызывает еще меньше неудобств для зрителей. Система может продолжать работать, а также восстанавливаться в будущем с использованием методологий прогнозирования рабочей нагрузки и реконфигурации.[7]
  • Точно так же видеоигры часто работают в режиме мягкого реального времени, особенно когда они пытаются достичь цели. частота кадров. Поскольку следующее изображение не может быть вычислено заранее, так как оно зависит от входных данных от проигрывателя, доступно лишь короткое время для выполнения всех вычислений, необходимых для создания кадра видео, прежде чем этот кадр должен быть отображен. Если крайний срок пропущен, игра может продолжаться с меньшей частотой кадров; в зависимости от игры это может повлиять только на ее графику (пока игровой процесс продолжается с нормальной скоростью) или сам игровой процесс может быть замедлен (что было обычным явлением в старых в третьих- и консоли четвертого поколения ).

Цифровая обработка сигналов в реальном времени

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

Рассмотрим аудио DSP пример; если процессу требуется 2,01 секунды для анализировать, синтезировать, или обработать 2,00 секунды звука, это не в реальном времени. Однако, если это займет 1,99 секунды, это будет или может быть преобразовано в процесс DSP в реальном времени.

Обычная аналогия из жизни - стоять в очереди или очередь в ожидании оформления заказа в продуктовом магазине. Если линия асимптотически становится все длиннее и длиннее без ограничений, процесс оформления заказа не выполняется в реальном времени. Если длина строки ограничена, клиенты "обрабатываются" и выводятся в среднем так же быстро, как и вводятся, тогда этот процесс является в реальном времени. Бакалейщик может обанкротиться или, по крайней мере, потерять бизнес, если не сможет осуществить процесс оформления заказа в реальном времени; таким образом, принципиально важно, чтобы этот процесс происходил в реальном времени.

Алгоритм обработки сигнала, который не успевает за потоком входных данных, когда выход все дальше и дальше отстает от входа, не работает в режиме реального времени. Но если задержка вывода (относительно ввода) ограничена относительно процесса, который работает в течение неограниченного времени, то этот алгоритм обработки сигнала работает в реальном времени, даже если задержка пропускной способности может быть очень большой.

Прямая трансляция против реального времени

Обработка сигналов в реальном времени необходима, но сама по себе недостаточна для обработки сигналов в реальном времени, например, что требуется в поддержка живых мероприятий. Для обработки цифрового аудиосигнала в реальном времени требуется как работа в реальном времени, так и достаточный предел задержки пропускной способности, чтобы исполнители, использующие сценические мониторы или же внутриканальные мониторы и не заметно как ошибка синхронизации губ зрители также непосредственно наблюдают за исполнителями. Допустимые пределы задержки для обработки в реальном времени в реальном времени являются предметом исследования и обсуждения, но, по оценкам, составляют от 6 до 20 миллисекунд.[9]

Двунаправленный в реальном времени телекоммуникационные задержки менее 300 мс («двусторонняя задержка» или двойная задержка в одном направлении) считаются «приемлемыми», чтобы избежать нежелательного «разговора» в разговоре.

В реальном времени и с высокой производительностью

Вычисления в реальном времени иногда неправильно понимают как высокопроизводительные вычисления, но это не точная классификация.[10] Например, массивный суперкомпьютер выполнение научного моделирования может предложить впечатляющую производительность, но при этом не выполняются вычисления в реальном времени. И наоборот, как только аппаратное и программное обеспечение антиблокировочной тормозной системы было разработано с учетом установленных сроков, дальнейшее повышение производительности не является обязательным или даже полезным. Более того, если сетевой сервер сильно загружен сетевым трафиком, время его отклика может быть меньше, но (в большинстве случаев) все равно будет успешным до того, как истечет время ожидания (истечет крайний срок). Следовательно, такой сетевой сервер не может считаться системой реального времени: временные сбои (задержки, тайм-ауты и т. Д.) Обычно небольшие и разделены (ограничены по сути), но не являются катастрофическими отказами. В системе реального времени, такой как Индекс FTSE 100, замедление сверх установленных ограничений часто рассматривается как катастрофическое в контексте приложения. Наиболее важным требованием к системе реального времени является постоянный результат, а не высокая пропускная способность.

Некоторые виды программного обеспечения, например многие шахматные программы, может попасть в любую категорию. Например, шахматная программа, разработанная для игры в турнире с часами, должна будет принять решение о ходе до определенного крайнего срока или проиграть партию, и, следовательно, это вычисление в реальном времени, но шахматная программа, которой разрешено работать бесконечно. до переезда нет. Однако в обоих этих случаях желательна высокая производительность: чем больше работы может выполнить шахматная программа турнира за отведенное время, тем лучше будут ее ходы, и чем быстрее будет выполняться неограниченная шахматная программа, тем скорее она сможет двигаться. Этот пример также иллюстрирует существенное различие между вычислениями в реальном времени и другими вычислениями: если шахматная программа турнира не принимает решения о своем следующем шаге в отведенное время, она проигрывает партию, т. Е. Терпит неудачу при вычислении в реальном времени - в то время как в другом сценарии предполагается, что соблюдение крайнего срока не является необходимым. Высокая производительность указывает на объем обработки, выполняемой за заданный промежуток времени, тогда как в реальном времени - это способность завершить обработку, чтобы получить полезный результат в доступное время.

Почти в реальном времени

Термин «почти в реальном времени» или «почти в реальном времени» (NRT) в телекоммуникации и вычисление, относится ко времени задерживать введен автоматизированным обработка данных или же сеть передача между возникновением события и использованием обработанных данных, например, для отображения или Обратная связь и в целях контроля. Например, дисплей в режиме, близком к реальному, отображает событие или ситуацию в том виде, в каком они существовали в текущий момент, за вычетом времени обработки, почти как время живого события.[11]

Различие между терминами «почти реальное время» и «реальное время» несколько расплывчато и должно быть определено для конкретной ситуации. Термин означает отсутствие значительных задержек.[11] Во многих случаях обработка, описываемая как «в реальном времени», была бы более точно описана как «почти в реальном времени».

Практически в реальном времени также подразумевается отложенная передача голоса и видео в реальном времени. Он позволяет воспроизводить видеоизображения примерно в реальном времени, не дожидаясь загрузки всего большого видеофайла. Несовместимые базы данных могут экспортировать / импортировать в обычные плоские файлы, которые другая база данных может импортировать / экспортировать по расписанию, чтобы они могли синхронизировать / обмениваться общими данными друг с другом «почти в реальном времени».

Разница между «почти в реальном времени» и «в реальном времени» варьируется, а задержка зависит от типа и скорости передачи. Задержка в режиме, близком к реальному времени, обычно составляет от нескольких секунд до нескольких минут.[нужна цитата ]

Методы проектирования

Существует несколько методов, помогающих проектировать системы реального времени, примером которых является ТАЛИСМАН, старый, но очень успешный метод, который представляет одновременный структура системы. Другие примеры: КАПОТ, UML в реальном времени, AADL, то Профиль Ravenscar, и Java в реальном времени.

Смотрите также

Рекомендации

  1. ^ Бен-Ари, Мордехай; «Принципы параллельного и распределенного программирования», гл. 16, Прентис Холл, 1990, ISBN  0-13-711821-X, стр.164
  2. ^ Мартин, Джеймс (1965). Программирование компьютерных систем в реальном времени. Энглвуд Клиффс, Нью-Джерси: Prentice-Hall Inc., стр.4. ISBN  978-0-13-730507-0.
  3. ^ Кант, Кришна (май 2010 г.). Компьютерное управление производством. PHI Learning. п. 356. ISBN  9788120339880. Получено 2015-01-17.
  4. ^ Шин, Кан Г.; Раманатан, Парамешваран (январь 1994 г.). «Вычисления в реальном времени: новая дисциплина информатики и инженерии» (PDF). Труды IEEE. 82 (1): 6–24. CiteSeerX  10.1.1.252.3947. Дои:10.1109/5.259423. ISSN  0018-9219.
  5. ^ Копец, Германн; Системы реального времени: принципы проектирования распределенных встроенных приложений, Kluwer Academic Publishers, 1997 г.
  6. ^ Лю, Чанг Л .; и Layland, James W .; «Алгоритмы планирования для мультипрограммирования в среде жесткого реального времени», Журнал ACM, 20 (1): 46-61, январь 1973 г., http://citeseer.ist.psu.edu/liu73scheduling.html
  7. ^ Menychtas, Andreas; Кириазис, Димостенис; Церпес, Константинос (июль 2009 г.). «Реконфигурация в реальном времени для обеспечения уровней обеспечения QoS в грид-средах». Компьютерные системы будущего поколения. 25 (7): 779–784. Дои:10.1016 / j.future.2008.11.001.
  8. ^ Kuo, Sen M .; Ли, Боб Х .; и Тиан, Вэньшунь; «Цифровая обработка сигналов в реальном времени: реализации и приложения», Wiley, 2006 г., ISBN  0-470-01495-4, Раздел 1.3.4: Ограничения в реальном времени.
  9. ^ Кудрле, Сара; Пру, Мишель; Каррьер, Паскаль; Лопес, Марко; и другие. (Июль 2011 г.). «Отпечаток пальца для решения проблем синхронизации аудио / видео в средах вещания». Журнал SMPTE Motion Imaging. 120 (5): 36–46. Дои:10,5594 / j18059XY. Были установлены соответствующие пределы синхронизации A / V, и диапазон, который считается приемлемым для пленки, составляет +/- 22 мс. Диапазон для видео, согласно ATSC, составляет до 15 мс с опережением и около 45 мс с задержкой.
  10. ^ Станкович, Джон (1988), «Заблуждения о вычислениях в реальном времени: серьезная проблема для систем следующего поколения», Компьютер, Компьютерное общество IEEE, 21 (10), стр. 11, Дои:10.1109/2.7053, S2CID  13884580
  11. ^ а б «Федеральный стандарт 1037C: Глоссарий телекоммуникационных терминов». Its.bldrdoc.gov. Получено 2014-04-26.

дальнейшее чтение

внешняя ссылка