Realtime Java
"Un système fonctionne en temps réel s’il est capable d’absorber toutes les informations d’entrée sans qu’elles soient trop vieilles pour l’intérêt qu’elles représentent, et par ailleurs, de réagir à celles-ci suffisamment vite pour que cette réaction ait un sens"
La version PDF de la présentation est disponible ici : Media:presentation.pdf
Le Temps Réel
"Realtime is not Realfast"
Aller vite n’est pas l’objectif recherché. On recherche avant tout à avoir une cohérence temporelle entre l'acquisition, le traitement et le résultat produit pour une tâche. Un système temps réel n’est pas un système qui va vite, mais un système qui satisfait des contraintes temporelles.
Pour qu’un système soit caractérisé temps il doit répondre à 3 caractéristiques principales :
- Déterminisme logique :
- Les mêmes entrées appliqués au système produisent les mêmes résultats
- Déterminisme temporel :
- Respect des contraintes temporelles (échéances)
- Fiabilité :
- Le système répond à des contraintes de disponibilité
- Comportement doit être prédictible
- Maitrise des temps de latence et de leurs variations
- Contrainte de temps :
- Date de livraison d’un résultat
- Décomposés en tâches
- Séparation des traitements
- Meilleur utilisation du processeur
- Meilleur fiabilité en cas de surcharge
- Choix de l’ordre d’exécution des fonctions important
- Déterminisme d’exécution (predictability)
- Langage de programmation adapté :
- Ada95 (Ce n’est pas une blague…)
- C/C++
- Java
Java Real-Time : RTS J
- Pas de restriction à une version de Java
- Compatibilité avec tous les systèmes d'exploitation
- Pas de pré-requis de puissance ou de matériel
- Granularité améliorée : nanoseconde
- Les principales Java Virtual Machine :
- Jrts : Développé par Sun
- Jrockit : Développé par Oracle
- FijiVM : Développé par Fiji Systems
- Metronome : Développé par IBM