L5 Real time Java

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
    • AsyncEvent
  • 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