Pour définir «temps réel doux», il est plus facile de le comparer avec «temps réel dur».
Parlant avec désinvolture, la plupart des gens ont implicitement un modèle mental informel qui considère l'information ou un événement comme étant "en temps réel"
• si, ou dans la mesure où, cela se manifeste pour eux avec un retard (latence) qui peut être lié à sa devise perçue
• c'est-à-dire dans un laps de temps où l'information ou l'événement a une valeur satisfaisante pour eux.
Il existe de nombreuses définitions différentes de «temps réel dur», mais dans ce modèle mental, le temps réel dur est représenté par le terme «si». Plus précisément, en supposant que les actions en temps réel (telles que les tâches) ont des délais d'achèvement, la valeur acceptable de l'événement si toutes les tâches sont limitées est limitée au cas particulier où toutes les tâches respectent leurs délais.
Les systèmes durs en temps réel partent de l'hypothèse très forte que tout ce qui concerne l'application, le système et l'environnement est statique et connu a priori - par exemple, quelles tâches, qu'ils sont périodiques, leurs heures d'arrivée, leurs périodes, leurs délais, qu'ils ont gagnés 't avoir des conflits de ressources, et globalement l'évolution du temps du système. Dans un système de commande de vol d'avion ou un système de freinage automobile et de nombreux autres cas, ces hypothèses peuvent généralement être satisfaites afin que toutes les échéances soient respectées.
Ce modèle mental est délibérément et très utilement assez général pour englober à la fois dur et mou en temps réel - doux est adapté à l'expression «dans la mesure où». Par exemple, supposons que l'événement de fin de tâche ait une valeur sous-optimale mais acceptable si
- pas plus de 10% des tâches manquent leurs délais
- ou aucune tâche n'est en retard de plus de 20%
- ou le retard moyen de toutes les tâches ne dépasse pas 15%
- ou le retard maximum parmi toutes les tâches est inférieur à 10%
Ce sont tous des exemples courants de cas en temps réel doux dans un grand nombre d'applications.
Considérez l'application à tâche unique consistant à venir chercher votre enfant après l'école. Cela n'a probablement pas de date limite, mais il y a une valeur pour vous et votre enfant en fonction du moment où cet événement a lieu. Trop tôt gaspille des ressources (comme votre temps) et trop tard a une certaine valeur négative car votre enfant peut être laissé seul et potentiellement en danger (ou du moins incommodé).
Contrairement au cas spécial statique en temps réel dur, le temps réel doux ne fait que les hypothèses spécifiques à l'application nécessaires sur les tâches et le système, et des incertitudes sont attendues. Pour récupérer votre enfant, vous devez vous rendre à l'école en voiture, et le temps de le faire est dynamique en fonction des conditions météorologiques, des conditions de circulation, etc. Vous pourriez être tenté de sur-provisionner votre système (c.-à-d. pire temps de conduite), mais encore une fois cela gaspille des ressources (votre temps, et l'occupation du véhicule familial, éventuellement en refusant l'utilisation par d'autres membres de la famille).
Cet exemple peut ne pas sembler coûteux en termes de gaspillage de ressources, mais considérons d'autres exemples. Tous les systèmes de combat militaires sont doux en temps réel. Par exemple, envisagez d'effectuer une attaque aérienne contre un véhicule terrestre hostile en utilisant un missile guidé avec des mises à jour comme manœuvres cibles. La satisfaction maximale pour terminer les tâches de mise à jour du cours est obtenue par une frappe destructrice directe sur la cible. Mais une tentative de surprovisionner des ressources pour garantir ce résultat est généralement beaucoup trop coûteuse et peut même être impossible. Dans ce cas, vous pouvez être moins mais suffisamment satisfait si le missile frappe suffisamment près de la cible pour la désactiver.
De toute évidence, les scénarios de combat comportent de nombreuses incertitudes dynamiques possibles qui doivent être prises en compte par la gestion des ressources. Les systèmes logiciels en temps réel sont également très courants dans de nombreux systèmes civils, tels que l'automatisation industrielle, bien que les systèmes militaires soient évidemment les plus dangereux et les plus urgents pour obtenir une valeur acceptable satisfaisante.
La clé de voûte des systèmes en temps réel est la «prévisibilité». Le cas difficile en temps réel s'intéresse à un seul cas particulier de prévisibilité - c'est-à-dire que les tâches respecteront toutes leurs échéances et que la valeur maximale possible sera atteinte par cet événement. Ce cas spécial est appelé «déterministe».
Il existe un spectre de prévisibilité; la plupart des systèmes en temps réel (à savoir les systèmes logiciels) ont une prévisibilité non déterministe, par exemple, des temps d'exécution des tâches et donc des valeurs acquises de ces événements. En général, la prévisibilité, et donc la valeur, peuvent être faites aussi près du point final déterministe que nécessaire, mais à un prix qui peut être physiquement impossible ou excessivement cher (comme au combat ou peut-être même pour aller chercher votre enfant à l'école).
Le temps réel doux nécessite un choix spécifique à l'application d'un modèle de probabilité (pas le modèle fréquentiste commun) et donc d'un modèle de prévisibilité pour raisonner sur les latences des événements et les valeurs résultantes.
En se référant à la liste ci-dessus des événements qui fournissent une valeur acceptable, nous pouvons maintenant ajouter des cas non déterministes, tels que
- la probabilité qu'aucune tâche ne rate son échéance de plus de 5% est supérieure à 0,87.
Dans une application de défense antimissile, étant donné qu'en combat l'infraction a toujours l'avantage sur la défense, lequel de ces deux scénarios de calcul en temps réel préférez-vous:
parce que la destruction parfaite de tous les missiles hostiles est très improbable ou impossible, affectez vos ressources défensives pour maximiser la probabilité que le plus grand nombre de missiles hostiles les plus menaçants (par exemple, en fonction de leurs cibles) soient interceptés avec succès (les interceptions rapprochées comptent car elles peut déplacer le missile hostile en dehors du cap);
se plaignent que ce n'est pas un problème informatique en temps réel car il est dynamique au lieu d'être statique, et les concepts et techniques traditionnels en temps réel ne s'appliquent pas, vous n'êtes donc pas intéressé à faire de la R&D pour le temps réel doux.
Malgré les divers malentendus sur le temps réel doux dans la communauté informatique en temps réel (mais pas dans d'autres domaines non informatiques), le temps réel doux est très général et puissant, et potentiellement très complexe par rapport au temps réel dur.
Pour répondre directement à la question OP:
un système dur en temps réel peut fournir des garanties déterministes - le plus souvent que toutes les tâches respecteront leurs délais, l'interruption ou le temps de réponse aux appels système sera toujours inférieur à x, etc. - SI ET SEULEMENT SI des hypothèses très fortes sont faites et sont correctes tout ce qui compte est statique et connu a priori (en général, de telles garanties pour les systèmes durs en temps réel sont un problème de recherche ouvert, sauf pour les cas assez simples)
un système en temps réel doux ne fait pas de garanties déterministes, il est destiné à fournir la meilleure actualité probabiliste et la prévisibilité probables analytiquement spécifiées qui sont réalisables dans les circonstances dynamiques actuelles, selon des critères spécifiques à l'application. De toute évidence, le temps réel dur est un cas spécial simple de temps réel doux. De toute évidence, les assurances non déterministes analytiques en temps réel doux peuvent être très complexes à fournir, mais sont obligatoires dans les cas en temps réel les plus courants (y compris les plus critiques pour la sécurité, tels que le combat), car la plupart des cas sont dynamiques et non statiques.
J'ai une discussion détaillée beaucoup plus précise en temps réel, en temps réel dur, en temps réel doux, la prévisibilité, le déterminisme et les sujets connexes sur mon site Web real-time.org .