Что такое функционирование
в Реальном масштабе времени
В настоящее время в документах и публикациях с различной тематикой встречаются слова о требовании, поддержке и т.д. работы в режиме реального времени, режима реального времени или просто реального времени. Что же такое режим реального времени применительно к компьютерным системам? Постараемся представить различные современные точки зрения на это понятие.
I. Толковый словарь по вычислительным системам/Под ред. В. Илленгуорта и др.: пер. С англ.,: - М.: Машиностроение, 1989.
Эта, уже далеко не новая по меркам компьютерного мира книга, дает такое определение (стр. 399):
R.052 real-time system
система реального времени (СРВ)
Любая система, в которой существенную роль играет время генерации выходного сигнала. Это обычно связано с тем, что входной сигнал соответствует каким-то изменениям в физическом процессе, и выходной сигнал должен быть связан с этими же изменениями. Временная задержка от получения входного сигнала до выдачи выходного сигнала должна быть небольшой, чтобы обеспечить приемлемое время реакции. Время реакции является системной характеристикой: при управлении ракетой требуется реакция в течении нескольких миллисекунд, тогда как для диспетчерского управления движением пароходов требуется время реакции, измеряемое днями. Системы обычно считаются системами реального времени, если время их реакции имеет порядок миллисекунд; диалоговыми считаются системы с временем реакции порядка нескольких секунд, а в системах пакетной обработки время реакции измеряется часами или днями. Примерами систем реального времени являются системы управления физическими процессами с применением вычислительных машин, системы торговых автоматов, автоматизированные системы контроля и автоматизированные испытательные комплексы.
II. Толковый словарь по информатике. Першиков В.И., Савинков В.М. М.: Финансы и статистика, 1991.
В этом словаре дается такое определение (стр. 335):
Режим реального времени [real time processing]. Режим обработки данных,
при котором обеспечивается взаимодействие вычислительной системы с внешними
по отношению к ней процессами в темпе, соизмеримом со скоростью протекания
этих процессов.
III. FAQ comp.realtime
Ниже я попробую привести полный перевод соответствующего ответа (что означает real-time) из FAQ comp.realtime: Существует несколько определений термина реальное время, многие из них противоречивые. К сожалению, это спорная тема, и здесь не существует стопроцентной договоренности о терминах.
Системой реального времени является такая система, корректность функционирования
которой определяется не только корректностью выполнения вычислений, но
и временем, в которое получен требуемый результат. Если требования по времени
не выполняются, то считается, что произошел отказ системы.
Другие добавляют: Поэтому необходимо, чтобы было гарантировано
[аппаратными и программными средствами и алгоритмами обработки] выполнение
требований по времени. Гарантия выполнения требований по времени необходима,
чтобы поведение системы было предсказуемо.Также желательно, чтобы система
обеспечивала высокую степень использования ресурсов, чтобы удовлетворять
требованиям по времени [с минимальными затратами].
Хорошим примером является робот, который должен брать что-либо с ленты конвейера. Объекты на конвейере движутся, и робот имеет некоторый небольшой интервал времени для того, чтобы схватить объект. Если робот опоздает, то объекта уже не будет на месте, и поэтому работа будет неверной, даже если робот [переместил захват] в правильное положение. Если робот поспешит, то объекта там еще не будет, более того, робот может заблокировать движение объектов.
Другой пример - цикл управления самолетом, летящим на автопилоте. Датчики самолета должны постоянно передавать измеренные данные в управляющий компьютер. Если данные измерений теряются, то качество управления самолетом падает, возможно вместе с самолетом.
Давид Сонниер (David Sonnier (mailto:dps@devnull.mpd.tandem.com) отметил следующую особенность:
В примере с роботом и имеем настоящий, жесткий режим реального времени (hard real time), и если робот опоздает, то это приведет к полностью ошибочной операции. Однако это мог бы быть режим квазиреального времени (soft real time), если бы опоздание робота приводило бы только к потере производительности. Многое из того, что сделано в области программирования в реальном времени, в действительности работает в режиме квазиреального времени. Грамотно разработанные системы, как правило, имеют уровень безопасности/коррекции поведения даже для случая, когда вычисления не закончились в необходимый момент, так что если компьютер чуть-чуть не успевает, то это может быть скомпенсировано.
Для того, чтобы система могла удовлетворить требованиям, предъявляемым к системам реального времени, аппаратные, программные средства и алгоритмы работы системы должны гарантировать заданные временные параметры реакции системы. Время реакции не обязательно должно быть очень маленьким, но оно должно быть гарантированным (и отвечающим поставленным требованиям);
Дмитрий Ковригин, Ведущий специалист фирмы Эврика