Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

История [ править ]

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

Миникомпьютеры, особенно в 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 и т.д.) , также стали популярными с производителями промышленных систем управления. В этой области применения управление в реальном времени дает реальные преимущества с точки зрения производительности и безопасности процесса. [цитата необходима ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. Также [ править ]

  • Автономная периферийная работа
  • DSOS
  • Режимы обработки
  • Проект Птолемея
  • Данные в реальном времени
  • Компьютерная графика в реальном времени
  • Тестирование в реальном времени
  • Системы анализа расписания в реальном времени
  • Синхронный язык программирования
  • Функция полезности времени
  • Время исполнения в наихудшем случае

Ссылки [ править ]

  1. Бен-Ари, Мордехай ; «Принципы параллельного и распределенного программирования», гл. 16, Prentice Hall, 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. Проверено 17 января 2015 .
  4. ^ Шин, Кан Г .; Раманатан, Парамешваран (январь 1994 г.). «Вычисления в реальном времени: новая дисциплина информатики и инженерии» (PDF) . Труды IEEE . 82 (1): 6–24. CiteSeerX 10.1.1.252.3947 . DOI : 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, Андреас; Кириазис, Димостенис; Церпес, Константинос (июль 2009 г.). «Реконфигурация в реальном времени для обеспечения уровней обеспечения QoS в грид-средах». Компьютерные системы будущего поколения . 25 (7): 779–784. DOI : 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. DOI : 10.5594 / j18059XY . Установлены соответствующие пределы синхронизации A / V, и диапазон, который считается приемлемым для пленки, составляет +/- 22 мс. Диапазон для видео, согласно ATSC, составляет до 15 мс с опережением и около 45 мс с задержкой.
  10. ^ Станкович, Джон (1988), «Заблуждения о вычислениях в реальном времени: серьезная проблема для систем следующего поколения», Компьютер , IEEE Computer Society, 21 (10), стр. 11, DOI : 10,1109 / 2,7053 , S2CID 13884580 
  11. ^ a b «Федеральный стандарт 1037C: Глоссарий телекоммуникационных терминов» . Its.bldrdoc.gov . Проверено 26 апреля 2014 .

Дальнейшее чтение [ править ]

  • Бернс, Алан; Веллингс, Энди (2009), Системы реального времени и языки программирования (4-е изд.), Аддисон-Уэсли, ISBN 978-0-321-41745-9
  • Буттаццо, Джорджио (2011), Вычислительные системы жесткого реального времени: алгоритмы и приложения прогнозируемого планирования , Нью-Йорк, Нью-Йорк: Springer, ISBN 9781461406761.
  • Лю, Джейн WS (2000), Системы реального времени , Верхняя Сэдл-Ривер, Нью-Джерси: Prentice Hall.

Внешние ссылки [ править ]

  • Технический комитет IEEE по системам реального времени
  • Технический комитет Euromicro по системам реального времени
  • Что, где и почему моделирование в реальном времени
  • «ПРОЕКТИРОВАНИЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ В РЕАЛЬНОМ ВРЕМЕНИ» . Компьютеры и автоматика . XII (9): 26–34. Сентябрь 1963 г. [...] набор примечаний, которые, мы надеемся, укажут на проблемные области, которые следует учитывать при проектировании в реальном времени.