Вычисления в реальном времени

Из Википедии, бесплатной энциклопедии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В прямом эфире против реального времени [ править ]

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

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

реальном времени и высокая Работа в производительность

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

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

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

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

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

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

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

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

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

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

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

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

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