Вычисления в реальном времени
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Апрель 2014 г. ) |
Вычисления в реальном времени ( RTC ) — это в компьютерной науке термин , обозначающий аппаратные и программные системы, на которые распространяются «ограничения реального времени», например, от события до ответа системы . [1] Программы реального времени должны гарантировать ответ в течение определенных временных ограничений, часто называемых «крайними сроками». [2]
Термин «реальное время» также используется в моделировании и означает, что часы моделирования работают с той же скоростью, что и реальные часы.
Часто понимают, что ответы в реальном времени имеют порядок миллисекунд, а иногда и микросекунд. Система, не указанная как работающая в режиме реального времени, обычно не может гарантировать ответ в течение какого-либо периода времени, хотя типичные или ожидаемые могут быть указаны сроки ответа. Обработка в реальном времени завершается неудачей , если она не завершена в течение указанного срока относительно события; Сроки должны соблюдаться всегда, независимо от загрузки системы .
Система реального времени описывается как система, которая «управляет средой, получая данные, обрабатывая их и возвращая результаты достаточно быстро, чтобы в этот момент повлиять на окружающую среду». [3] Термин «в реальном времени» используется в системах управления процессами и корпоративных системах и означает «без значительной задержки».
Программное обеспечение реального времени может использовать одно или несколько из следующих языков: синхронные языки программирования , операционные системы реального времени (RTOS) и сети реального времени, каждая из которых предоставляет необходимые платформы для создания программного приложения реального времени.
Системы, используемые во многих критически важных для безопасности приложениях, должны работать в режиме реального времени, например, для управления самолетом с электродистанционным управлением или антиблокировочной системы тормозов , оба из которых требуют немедленного и точного механического реагирования. [4]
История
[ редактировать ]Термин «реальное время» происходит от его использования в раннем моделировании , при котором реальный процесс моделируется со скоростью, соответствующей скорости реального процесса (теперь это называется моделированием в реальном времени, чтобы избежать двусмысленности). Аналоговые компьютеры чаще всего были способны моделировать в гораздо более быстром темпе, чем в реальном времени, и эта ситуация могла быть столь же опасной, как и медленное моделирование, если бы ее также не распознавали и не учитывали.
Миникомпьютеры, особенно начиная с 1970-х годов, когда они были встроены в специализированные встроенные системы, такие как сканеры DOG ( цифровая экранная графика ), увеличили потребность в реагировании на основе приоритетов с малой задержкой на важные взаимодействия с входящими данными и, следовательно, в таких операционных системах, как Data. General компании RDOS (дисковая операционная система реального времени) и RTOS с фоновым и передним планированием, а также Digital Equipment Corporation компании RT-11 относятся к этой эпохе. Планирование фонового и переднего плана позволяло использовать процессорное время для задач с низким приоритетом, когда не требовалось выполнять задачу приоритетного плана, и давало абсолютный приоритет на переднем плане потокам/задачам с самым высоким приоритетом. Операционные системы реального времени также будут использоваться для многопользовательских задач с разделением времени . Например, Data General Business Basic может работать на переднем или заднем плане RDOS и внесет дополнительные элементы в алгоритм планирования, чтобы сделать его более подходящим для людей, взаимодействующих через простые терминалы .
Первые персональные компьютеры иногда использовались для вычислений в реальном времени. Возможность деактивации других прерываний позволяла использовать жестко запрограммированные циклы с определенным временем, а низкая задержка прерываний позволила реализовать операционную систему реального времени, давая пользовательскому интерфейсу и дисководам более низкий приоритет, чем поток реального времени. По сравнению с ними программируемый контроллер прерываний процессоров Intel (8086..80586) генерирует очень большую задержку, а операционная система Windows не является операционной системой реального времени и не позволяет программе полностью взять на себя управление процессором и использовать его. собственный планировщик , без использования машинного языка и, таким образом, в обход всего прерывающего кода Windows. Однако существует несколько библиотек кодирования, которые предлагают возможности реального времени на языке высокого уровня в различных операционных системах, например Java Real Time . Более поздние микропроцессоры, такие как Motorola 68000 и последующие члены семейства (68010, 68020, ColdFire и т. д.), также стали популярными среди производителей промышленных систем управления. В этой области применения управление в реальном времени дает реальные преимущества с точки зрения производительности и безопасности процесса. [ нужна ссылка ]
Критерии вычислений в реальном времени
[ редактировать ]Говорят, что система работает в режиме реального времени , если общая правильность операции зависит не только от ее логической корректности, но и от времени, в течение которого она выполняется. [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 .
См. также
[ редактировать ]- Автономная периферийная работа
- Система управления
- Детектор отказов
- Узловая архитектура
- Режимы обработки
- Проект Птолемея
- Данные в реальном времени
- Компьютерная графика в реальном времени
- Операционная система реального времени
- Тестирование в реальном времени
- Удаленная диагностика
- Системы анализа расписания реального времени
- Синхронный язык программирования
- Функция полезности времени
- Метод Уорда – Меллора
- Наихудшее время выполнения
Ссылки
[ редактировать ]- ^ «FreeRTOS — ядро RTOS с открытым исходным кодом для небольших встраиваемых систем. Что такое часто задаваемые вопросы по FreeRTOS?» . FreeRTOS . Проверено 8 марта 2021 г.
- ^ Бен-Ари, Мордехай ; «Принципы параллельного и распределенного программирования», гл. 16, Прентис Холл, 1990 г., ISBN 0-13-711821-X , с. 164
- ^ Мартин, Джеймс (1965). Программирование компьютерных систем реального времени . Энглвуд Клиффс, Нью-Джерси: Prentice-Hall Incorporated. п. 4 . ISBN 978-0-13-730507-0 .
- ^ Кант, Кришна (май 2010 г.). Компьютерное управление производством . Обучение PHI. п. 356. ИСБН 9788120339880 . Проверено 17 января 2015 г.
- ^ Шин, Кан Г .; Раманатан, Парамешваран (январь 1994 г.). «Вычисления в реальном времени: новая дисциплина информатики и техники» (PDF) . Труды IEEE . 82 (1): 6–24. CiteSeerX 10.1.1.252.3947 . дои : 10.1109/5.259423 . ISSN 0018-9219 .
- ^ Копец, Герман; Системы реального времени: принципы проектирования распределенных встраиваемых приложений , Kluwer Academic Publishers, 1997 г.
- ^ Лю, Чанг Л.; и Лэйланд, Джеймс В.; «Алгоритмы планирования для мультипрограммирования в среде жесткого реального времени», Журнал ACM , 20(1):46-61, январь 1973 г., http://citeseer.ist.psu.edu/liu73scheduling.html
- ^ Менихтас, Андреас; Кириазис, Димосфенис; Церпес, Константинос (июль 2009 г.). «Реконфигурация в реальном времени для обеспечения уровней обеспечения QoS в средах Grid». Компьютерные системы будущего поколения . 25 (7): 779–784. дои : 10.1016/j.future.2008.11.001 .
- ^ Куо, Сен М.; Ли, Боб Х.; и Тянь, Вэньшунь; «Цифровая обработка сигналов в реальном времени: реализации и приложения», Wiley, 2006 г., ISBN 0-470-01495-4 , Раздел 1.3.4: Ограничения реального времени .
- ^ Кудрле, Сара; Пру, Мишель; Карриер, Паскаль; Лопес, Марко; и др. (июль 2011 г.). «Отпечатки пальцев для решения проблем синхронизации A/V в средах вещания». Журнал SMPTE Motion Imaging . 120 (5): 36–46. дои : 10.5594/j18059XY .
Были установлены соответствующие пределы синхронизации A/V, а диапазон, который считается приемлемым для фильма, составляет +/- 22 мс. Диапазон видео, по данным ATSC, составляет до 15 мс времени опережения и около 45 мс времени задержки.
- ^ Станкович, Джон (1988), «Заблуждения о вычислениях в реальном времени: серьезная проблема для систем следующего поколения», Computer , vol. 21, нет. 10, Компьютерное общество IEEE, стр. 10. 11, номер дои : 10.1109/2.7053 , S2CID 13884580
- ^ Jump up to: а б «Федеральный стандарт 1037C: Глоссарий телекоммуникационных терминов» . Its.bldrdoc.gov . Проверено 26 апреля 2014 г.
Дальнейшее чтение
[ редактировать ]- Бернс, Алан; Веллингс, Энди (2009), Системы реального времени и языки программирования (4-е изд.), Аддисон-Уэсли, ISBN 978-0-321-41745-9
- Бутаццо, Джорджио (2011), Вычислительные системы жесткого реального времени: алгоритмы и приложения предсказуемого планирования , Нью-Йорк, Нью-Йорк: Springer, ISBN 9781461406761 – через Google Книги .
- Лю, Джейн В.С. (2000), Системы реального времени , Аппер-Сэддл-Ривер, Нью-Джерси: Прентис-Холл .
- Международный журнал вычислительных систем, критичных ко времени
Внешние ссылки
[ редактировать ]- Технический комитет IEEE по системам реального времени
- Технический комитет Евромикро по системам реального времени
- Что, где и почему моделирование в реальном времени
- Джонстон, Р.Л. «RTOS — расширение OS/360 для управления космическими полетами в реальном времени» (PDF) . Битсейверы . Проверено 24 февраля 2023 г.
- Койл, Р.Дж.; Стюарт, Дж. К. (сентябрь 1963 г.). «Проектирование системы программирования реального времени» . Компьютеры и автоматизация . XII (9). Силвер-Спринг, Мэриленд: Datatrol Corporation: 26–34.
[...] набор примечаний, которые, мы надеемся, укажут на проблемные области, которые следует учитывать при проектировании в реальном времени.