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

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

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

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

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

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

История

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

Миникомпьютеры, особенно в 1970-х годах, когда они были встроены в специализированные встроенные системы, такие как сканеры DOG ( цифровая экранная графика ), увеличили потребность в ответах на важные взаимодействия с входящими данными с малой задержкой и приоритетами, и, следовательно, в операционных системах, таких как Data Общие 's RDOS (Real-Time Disk Operating System) и ОС реального времени с фоном и планирования на переднем плане , а также Digital Equipment Corporation ' s RT-11 дата этой эпохи. Планирование фонового и переднего плана позволяло использовать процессорное время для задач с низким приоритетом, когда задача переднего плана не требовалась для выполнения, и давала абсолютный приоритет внутри переднего плана потокам / задачам с наивысшим приоритетом. Операционные системы реального времени также будут использоваться для многопользовательских функций с разделением времени . Например, Data General Business Basic может работать как на переднем плане, так и на заднем плане RDOS и вводит дополнительные элементы в алгоритм планирования, чтобы сделать его более подходящим для людей, взаимодействующих через немые терминалы .

Когда-то, когда была популярна технология MOS 6502 (использовавшаяся в Commodore 64 и Apple II ), а позже, когда была популярна Motorola 68000 (использовавшаяся в Macintosh , Atari ST и Commodore Amiga ), любой мог использовать свой домашний компьютер в качестве устройства реального времени. система. Возможность деактивировать другие прерывания позволяла создавать жестко запрограммированные циклы с определенной синхронизацией, а низкая задержка прерывания позволяла реализовать операционную систему реального времени, давая пользовательскому интерфейсу и дискам более низкий приоритет, чем поток реального времени. По сравнению с ними, программируемый контроллер прерываний процессоров Intel (8086..80586) генерирует очень большую задержку, а операционная система Windows не является операционной системой реального времени и не позволяет программе полностью захватить центральный процессор и использовать его собственный планировщик , без использования родного машинного языка и, таким образом, превосходящий весь прерывающий код Windows. Однако существует несколько библиотек кодирования, которые предлагают возможности реального времени на языке высокого уровня в различных операционных системах, например Java Real Time . В Motorola 68000 члены семьи и последующие (68010, 68020 и т.д.) , также стали популярными с производителями промышленных систем управления. В этой области применения управление в реальном времени дает реальные преимущества с точки зрения производительности и безопасности процесса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Существует несколько методов, помогающих проектировать системы реального времени, примером которых является MASCOT , старый, но очень успешный метод, который представляет параллельную структуру системы. Другими примерами являются HOOD , UML в реальном времени, AADL , профиль Ravenscar и Java в реальном времени .

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

использованная литература

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

внешние ссылки