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