Для определения «мягкого реального времени» проще всего сравнить его с «жестким реальным временем». Ниже мы увидим, что термин «устойчивый режим реального времени» представляет собой неправильное понимание «мягкого реального времени».
Говоря небрежно, у большинства людей неявно есть неформальная ментальная модель, которая рассматривает информацию или событие как происходящие "в реальном времени".
• если или в той степени, в которой это проявляется для них с задержкой (задержкой), которая может быть связана с его воспринимаемой валютой
• то есть во временном интервале, когда информация или событие имеют для них приемлемо удовлетворительную ценность.
Существует множество различных специальных определений «жесткого реального времени», но в этой ментальной модели жесткое реальное время представлено термином «если». В частности, предполагая, что действия в реальном времени (например, задачи) имеют крайние сроки завершения, приемлемо удовлетворительное значение события, когда все задачи завершены, ограничивается особым случаем, когда все задачи уложены в установленные сроки.
Системы жесткого реального времени делают очень сильные предположения, что все, что касается приложения, системы и среды, статично и известно априори - например, какие задачи, что они являются периодическими, время их прибытия, их периоды, их сроки, которые они выиграли. Нет конфликтов ресурсов и общей временной эволюции системы. В системе управления полетом самолета или автомобильной тормозной системе и во многих других случаях эти предположения обычно могут быть выполнены, так что все сроки будут соблюдены.
Эта ментальная модель намеренно и очень полезна, достаточно общая, чтобы охватить как жесткий, так и мягкий режим реального времени - мягкое приспособлено фразой «до такой степени». Например, предположим, что событие завершения задачи имеет неоптимальное, но приемлемое значение, если
- не более 10% задач срываются в срок
- или ни одна задача не задерживается более чем на 20%
- или средняя задержка всех задач не более 15%
- или максимальное опоздание среди всех заданий меньше 10%
Все это общие примеры мягких случаев реального времени во многих приложениях.
Рассмотрим однозадачное приложение: забрать ребенка после школы. У этого, вероятно, нет фактического крайнего срока, вместо этого есть некоторая ценность для вас и вашего ребенка в зависимости от того, когда это событие происходит. Слишком рано тратит ресурсы (например, ваше время), а слишком поздно имеет некоторую отрицательную ценность, потому что ваш ребенок может остаться один и потенциально может пострадать (или, по крайней мере, причинить ему неудобства).
В отличие от особого случая статического жесткого реального времени, мягкое реальное время делает только минимально необходимые предположения о задачах и системе, зависящие от приложения, и ожидаются неопределенности. Чтобы забрать своего ребенка, вам нужно ехать в школу, и время для этого зависит от погоды, условий движения и т. Д. У вас может возникнуть соблазн чрезмерно выделить свою систему (т.е. разрешить то, что, как вы надеетесь, является худший случай времени вождения), но опять же, это напрасная трата ресурсов (ваше время и использование семейного автомобиля, возможно, отказ от использования другими членами семьи).
Этот пример может показаться не слишком затратным с точки зрения потраченных впустую ресурсов, но рассмотрим другие примеры. Все военные боевые системы работают в режиме мягкого реального времени. Например, рассмотрите возможность атаки с самолета на вражеский наземный транспорт с использованием управляемой ракеты с обновлениями для нее в качестве маневров цели. Максимальное удовлетворение от выполнения заданий обновления курса достигается прямым разрушительным ударом по цели. Но попытка чрезмерного выделения ресурсов, чтобы убедиться в этом исходе, обычно слишком дорога и может быть даже невозможна. В этом случае вы можете быть менее, но достаточно удовлетворены, если ракета ударит достаточно близко к цели, чтобы вывести ее из строя.
Очевидно, что боевые сценарии имеют множество возможных динамических неопределенностей, которые должны быть учтены управлением ресурсами. Системы мягкого реального времени также очень распространены во многих гражданских системах, таких как промышленная автоматизация, хотя, очевидно, военные системы являются наиболее опасными и неотложными для достижения приемлемо удовлетворительной ценности.
Краеугольный камень систем реального времени - «предсказуемость». Случай жесткого реального времени интересен только одним частным случаем предсказуемости - то есть, что все задачи будут соответствовать установленным срокам и этим событием будет достигнута максимально возможная ценность. Этот частный случай называется «детерминированным».
Есть целый спектр предсказуемости. Детерминизм (детерминизм) - это одна конечная точка (максимальная предсказуемость) в спектре предсказуемости; другая конечная точка - минимальная предсказуемость (максимальный недетерминизм). Метрика и конечные точки спектра должны интерпретироваться с точки зрения выбранной модели предсказуемости; все между этими двумя конечными точками - это степени непредсказуемости (= степени недетерминизма).
Большинство систем реального времени (а именно программные) обладают недетерминированной предсказуемостью, например, времени выполнения задач и, следовательно, значений, полученных в результате этих событий.
В целом (теоретически) предсказуемость и, следовательно, приемлемо удовлетворительное значение может быть достигнута настолько близко к детерминированной конечной точке, насколько это необходимо - но по цене, которая может быть физически невозможной или чрезмерно дорогой (например, в бою или, возможно, даже в забирать ребенка из школы).
Мягкое реальное время требует выбора модели вероятности для конкретного приложения (а не общей частотной модели) и, следовательно, модели предсказуемости для рассуждений о задержках событий и результирующих значениях.
Возвращаясь к приведенному выше списку событий, которые обеспечивают приемлемое значение, теперь мы можем добавить недетерминированные случаи, такие как
- вероятность того, что ни одна задача не пропустит срок более чем на 5%, больше 0,87. (Обратите внимание на количество критериев планирования, выраженных там.)
В приложении противоракетной обороны, учитывая тот факт, что в бою нападение всегда имеет преимущество перед защитой, какой из этих двух сценариев вычислений в реальном времени вы бы предпочли:
поскольку полное уничтожение всех вражеских ракет очень маловероятно или невозможно, назначьте свои защитные ресурсы так, чтобы максимизировать вероятность того, что как можно больше наиболее опасных (например, исходя из их целей) вражеских ракет будет успешно перехвачено (близкий перехват имеет значение, потому что может сбить вражескую ракету с курса);
жаловаться, что это не проблема вычислений в реальном времени, потому что она динамическая, а не статическая, и традиционные концепции и методы реального времени не применяются, и это звучит сложнее, чем статика в жестком реальном времени, поэтому вас это не интересует .
Несмотря на различные недоразумения относительно «мягкого» реального времени в сообществе вычислителей реального времени, «мягкое» реальное время является очень общим и мощным, хотя и потенциально сложным по сравнению с жестким реальным временем. Системы мягкого реального времени, кратко описанные здесь, имеют долгую успешную историю использования за пределами сообщества вычислителей реального времени .
Чтобы напрямую ответить на вопрос OP:
Система жесткого реального времени может предоставить детерминированные гарантии - чаще всего, что все задачи будут соответствовать установленным срокам, время отклика на прерывание или системный вызов всегда будет меньше x и т. Д. - ЕСЛИ И ТОЛЬКО ЕСЛИ сделаны очень сильные предположения, которые все, что имеет значение, статично и известно априори (в общем, такие гарантии для систем жесткого реального времени - открытая исследовательская проблема, за исключением довольно простых случаев)
Система мягкого реального времени не дает детерминированных гарантий, она предназначена для обеспечения максимально возможной аналитически определенной и достигнутой вероятностной своевременности и предсказуемости своевременности, которые возможны в текущих динамических условиях в соответствии с критериями для конкретного приложения.
Очевидно, что жесткое реальное время - это простой частный случай мягкого реального времени. Очевидно, что аналитические недетерминированные гарантии мягкого реального времени могут быть очень сложными для обеспечения, но они обязательны в наиболее распространенных случаях реального времени (включая наиболее опасные критически важные для безопасности, такие как боевые действия), поскольку большинство случаев реального времени являются динамическими, а не статический.
«Фирменное реальное время» - это плохо определенный частный случай «мягкого реального времени». В этом термине нет необходимости, если термин «мягкое реальное время» понимается и используется правильно.
У меня есть более подробное и более точное обсуждение реального времени, жесткого реального времени, мягкого реального времени, предсказуемости, детерминизма и связанных тем на моем веб-сайте real-time.org.