stringtranslate.com

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

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

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

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

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

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

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

История

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

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

Ранние персональные компьютеры иногда использовались для вычислений в реальном времени. Возможность деактивации других прерываний позволяла использовать жестко запрограммированные циклы с определенным временем, а низкая задержка прерываний позволяла реализовать операционную систему реального времени, давая пользовательскому интерфейсу и дисковым накопителям более низкий приоритет, чем поток реального времени. По сравнению с ними программируемый контроллер прерываний процессоров Intel (8086..80586) генерирует очень большую задержку, а операционная система Windows не является операционной системой реального времени и не позволяет программе полностью захватить процессор и использовать свой собственный планировщик , не используя собственный машинный язык и, таким образом, обходя весь прерывающий код Windows. Однако существует несколько библиотек кодирования, которые предлагают возможности реального времени на языке высокого уровня в различных операционных системах, например Java Real Time . Более поздние микропроцессоры, такие как Motorola 68000 и последующие члены семейства (68010, 68020, ColdFire и т. д.), также стали популярны у производителей промышленных систем управления. В этой области применения управление в реальном времени обеспечивает реальные преимущества с точки зрения производительности и безопасности процесса. [ необходима цитата ]

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

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

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

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

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

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

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

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

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

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

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

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

В прямом эфире или в реальном времени

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

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

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

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

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

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

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

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

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

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

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

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

Ссылки

  1. ^ "FreeRTOS – Ядро RTOS с открытым исходным кодом для небольших встраиваемых систем – Что такое FreeRTOS FAQ?". FreeRTOS . Получено 2021-03-08 .
  2. ^ Бен-Ари, Мордехай ; «Принципы параллельного и распределенного программирования», гл. 16, Prentice Hall, 1990, ISBN 0-13-711821-X , стр. 164 
  3. ^ Мартин, Джеймс (1965). Программирование компьютерных систем реального времени . Энглвуд Клиффс, Нью-Джерси: Prentice-Hall Incorporated. стр. 4. ISBN 978-0-13-730507-0.
  4. ^ Кант, Кришна (май 2010). Компьютерное управление промышленностью. PHI Learning. стр. 356. ISBN 9788120339880. Получено 17.01.2015 .
  5. ^ Шин, Канг Г.; Раманатан, Парамешваран (январь 1994 г.). «Вычисления в реальном времени: новая дисциплина компьютерной науки и техники» (PDF) . Труды IEEE . 82 (1): 6–24. CiteSeerX 10.1.1.252.3947 . doi :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». Future Generation Computer Systems . 25 (7): 779–784. doi :10.1016/j.future.2008.11.001.
  9. ^ Куо, Сен М.; Ли, Боб Х.; и Тянь, Вэньшунь; «Цифровая обработка сигналов в реальном времени: реализации и приложения», Wiley, 2006, ISBN 0-470-01495-4 , раздел 1.3.4: Ограничения в реальном времени. 
  10. ^ Kudrle, Sara; Proulx, Michel; Carrieres, Pascal; Lopez, Marco; et al. (Июль 2011 г.). «Fingerprinting for Solving A/V Synchronization Issues within Broadcast Environments». SMPTE Motion Imaging Journal . 120 (5): 36–46. doi :10.5594/j18059XY. Установлены соответствующие пределы синхронизации A/V, и диапазон, который считается приемлемым для фильмов, составляет +/- 22 мс. Диапазон для видео, согласно ATSC, составляет до 15 мс опережения и около 45 мс времени задержки
  11. ^ Станкович, Джон (1988), «Заблуждения о вычислениях в реальном времени: серьезная проблема для систем следующего поколения», Computer , т. 21, № 10, IEEE Computer Society, стр. 11, doi : 10.1109/2.7053, S2CID  13884580
  12. ^ ab "Федеральный стандарт 1037C: Глоссарий терминов по телекоммуникациям". Its.bldrdoc.gov . Получено 26.04.2014 .

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

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