picto Développement

Formation Java temps réel et embarqué

Référence

JTRE

Durée

3 JOURS

Tarif

EN INTRA SEULEMENT

NIVEAU

Expert

Cours à distance

Oui

Objectifs de la formation Java temps réel et embarqué

L'objectif principal de cette formation Java est la présentation des solutions générales proposées par java pour la réalisation d'applications temps-réel. Cette formation java présente par ailleurs rapidement les principaux standards java pour l'embarqué (J2ME, Android, Java Card) afin de montrer les différences importantes dans leur approche des problèmes et les solutions apportées.

Pré-Requis

L'objectif principal de cette formation Java est la présentation des solutions générales proposées par java pour la réalisation d'applications temps-réel. Cette formation java présente par ailleurs rapidement les principaux standards java pour l'embarqué (J2ME, Android, Java Card) afin de montrer les différences importantes dans leur approche des problèmes et les solutions apportées.

Public

Cette formation Java s'adresse à des développeurs Java

Contenu du cours Java temps réel et embarqué

Les problèmes du temps réel vs les problèmes de l'embarqué

L'embarqué : la programmation sous contraintes sur les ressources (processeur, mémoire, écran, espace de stockage de données)
Le temps réel : la programmation avec garantie du comportement temporel.

Introduction aux concepts importants du Temps Réel

Les caractéristiques des systèmes temps réel : le parallélisme + le comportement réactif + le respect des contraintes temporelles + le déterminisme du comportement
Les solutions basées sur l'ordonnancement : les concepts et quelques algorithmes classiques d'ordonnancement TR : les algorithmes à priorités fixes, à priorités dynamiques, à échéances...
Les problèmes posés par les contraintes de synchronisation : les contraintes de précédence, les ressources partagées
- l'algorithme d'héritage des priorités
Quelques algorithmes de gestion des ressources mémoires, des ressources de communication

Quelques rappels sur les systèmes d'exploitation temps réel

Les extensions POSIX : la gestion du parallélisme, l'ordonnancement, la gestion mémoire , les I/O (synchrones et asynchrones), les horloges de précision

Quelques rappels sur java non TR

Vrais et faux problèmes de java relativement au TR : les performances + le non déterminisme (compilation JIT, GC)
Le modèle du parallèlisme : Runnable, Callable, Thread, ExecutorService
L'ordonnancement et la synchronisation
La gestion des mémoire : le modèle mémoire et GC
Les I/O
TPs n°1 et n°2 : réalisation d'une application multithreadée qui servira de base aux Tps suivants

La spécification d'une extension Temps Réel à java : RTSJ (Real Time Specification for Java)

L'ordonnancement et la synchronisation (la prise en compte des ressources partagées )
La gestion mémoire (en particulier la mémoire physique)
La réaction aux événements asynchrones (les traitements + le transfert de contrôle)

La mise en oeuvre des concepts du RTSJ

L'extension du modèle de parallèlisme : les objets Schedulable + les threads (Realtime,
NoHeapRealtime, Periodic, Aperiodic) + le traitement en cas de non satisfaction de la contrainte temporelle
L'ordonnancement et la synchronisation : le modèle d'ordonnanceurs + le problème des ressources partagées (l'héritage des priorités)
La gestion mémoire : les différentes mémoires (HeapMemory, PhysicalMemory, ImmortalMemory,
ImmortalPhysicalMemory) + le GC Temps Réel
La communication entre Thread TR
Les horloges à haute précision
La prise en compte des événements asynchrones (les handlers d'événements asynchrones)
Les différents timers (OneshotTimer, PeriodicTimer)
Les transferts de contrôle asynchrones et la terminaison des threads
Tps n°3, 4, 5 : adaptation de l'application des Tps n°1 et n°2 aux contraintes TR (introduction d'un ordonnanceur TR + utilisation des différentes mémoires + prise en compte d'événements asynchrones.

Quelques outils d'aide au développement d'applications java TR

TSV (Thread Schedule Visualizer), jrts (java RTS), ....
Utilisation d'outils pour valider l'application

Les applications java embarquées

Le modèle d'applications des applications embarquées : applications réactives dont le cycle de vie est en partie controlée par l'infrastructure
J2ME : les configurations CDC et CLDC, le profil MIDP, les principales API de J2ME
Google Android : vue générale du modèle et les principales APIs
Java Card : vue générale du modèle et les principales APIs
Démo : une application simple développée sur Java Card