Programmation temps réel en Java(TM)
Java est une marque déposée de Sun Microsystems
|
Objectifs
- Maîtriser le temps-réel Java
- Contrôler les problèmes de gestion mémoire
- Gèrer des évènements asynchrones
- Comprendre les divers profils temps réel
|
Matériel
- Un PC par binôme
- Une machine virtuelle Java supportant les extensions temps réel et les outils de développement associés
- Un support de cours ainsi que la disquette contenant les exemples
Pré-requis
- Maîtrise du langage Java
- Connaissance des notions de base du temps réel
Outils de développement
- la machine virtuelle Java de Sun
- la machine virtuelle JamaicaVM version 3.2
- l'environnement de développement intégré Eclipse pour Java
Les threads temps-réel
- Thread temps réel
- Thread temps-réel sans gestion du heap
L'ordonnancement
- définition d'objets schedulables
- analyse de faisabilité
- assignation d'éligibilté d'exécution
- L'interface Schedulable
- La classe SchedulingParameters
- La classe PriorityParameters
- La classe ReleaseParameters
- La classe Scheduler
- PriorityScheduler
- RMAScheduler
- EDFScheduler
La synchronisation
- Contrôle de l'inversion de priorité
- PriorityInheritance
- PriorityCeilingEmulation
- Communication entre threads temps réel (NoHeapRealTimeThread) et threads Java réguliers
- WaitFreeWriteQueue
- WaitFreeReadQueue
- ...
La gestion mémoire
- Définir des zones mémoire en dehors du tas
- Définir de zones mémoire à portée (ScopedMemory)
- Définir des zones mémoire pour objets permanents (ImmortalMemort)
- Définition de zones mémoire mappées à des adresses physiques (PhysicalMemory)
- Le ramasse miettes (garbage collector)
La gestion du temps
- Les différents temps
- HighResolutionTime
- AbsoluteTime
- RelativeTime
- Les timers
- OneShotTimer
- PeriodicTimer
Les évènements asynchrones et leur traitement
- L'évènement asynchrone
- Les types de traitement d'un évènement asynchrone
- AsyncEventHandler
- BoundAsyncEventHandler
Les exceptions liées au temps réel
- Problèmes de gestion mémoire
- MemoryAcessError
- MemoryInUseExceptionResourceLimitError
- ScopedCycleException
- Dépassements de capacité
- ArrivalTimeQueueOverflowException
- ...
Le profil HIP
- High Integrity Profile
- Safety Critical Java Applications