–ajout de composants Java (packages ja-
vax.realtime et jx.realtime)
L’idée principale de ce projet est de ne modifer
que le minimum dans le noyau et ainsi d’avoir
le maximum de code dans la partie Java.
4.3 Gestion du temps
Sur PC, le circuit qui gère les interruptions
temporelles et le PIT 8254. Afin d’avoir une
très grande granularité et une grande souplesse,
celui-ci est programmé en mode oneshot : à
chaque interruption de l’IRQ 0 (Timer), la pro-
chaine échéance est calculée et le PIT est re-
programmée avec la valeur estimée. L’unité de
stockage des échéances et des périodes des ti-
mers est le celle du TSC (Time Stamp Coun-
ter) et correspond à l’horloge du système. En
prenant cette horloge système comme référence
temporelle on obtient très peu de déviation dans
le temps; chaque déviation est corrigée à l’ité-
ration suivante.
4.4 Les événements asynchrones
Les événements asynchrones (AsyncEvent) et
les handlers (AsyncEventHandler,BoundAsyn-
cEventHandler) sont implémentées exclusive-
ment en Java, ainsi que les temporisateurs (One-
ShotTimer et PeriodicTimer).
4.5 La mémoire à portée (Scoped Memory)
La mémoire à portée (Scoped Memory) a été
implémentée dans la partie C (noyau). Divers al-
gorithmes sont potentiellement utilisables. Ac-
tuellement seul le type LTMemory (Linear Time
Memory) est implémenté.
4.6 L’ordonnancement
Les algorithmes d’ordonnancement (à priori-
tés fixe, Rate Monotonic, etc.) sont écrits en
Java et sont appelés depuis le noyau via un mé-
canisme de callback. Différents ordonnanceurs
peuvent être configurés et utilisés de manière
hierarchique. Ceci offre une grande souplesse
dans la configuration du système.
5 Résultats
Même si le projet n’en est encore qu’au stade
de prototype, il est néanmoins utilisable et offre
déjà de bons résultats :
–réveil d’un thread et commutation de
contexte en 4 microsecondes
–200 ns de déviation moyenne pour un sys-
tème périodique
6 Liens
Real-Time Java Platform Programming (Peter
C. Dibble), Prentice Hall
http://jxos.free.fr : le site de l’auteur de
ce document où une version de l’implémenta-
tion de RTSJ sur JXOS est disponible
http://www.jxos.org : le site original de
JXOS
http://www.rtsj.org et http://www.
rtj.com : les sites officiels de RTSJ
http://www.timesys.com : l’implémenta-
tion de référence (RI)
http://www.aicas.com : implémentation
JamaicaVM
http://www.cs.wustl.edu/~corsaro/
jRate : implémentation GPL
3