6 Détails de l’implémentation 10
6.1 Lestimers................................ 10
6.1.1 LEPIT8254 .......................... 10
6.1.2 Interruption “timer” dans un système à temps-partagé . . . . . 10
6.1.3 Les Timers dans JXOS . . . . . . . . . . . . . . . . . . . . . 10
6.1.4 Principe des timers “temps-réels” . . . . . . . . . . . . . . . 11
6.1.5 Le Time Stamp Counter . . . . . . . . . . . . . . . . . . . . 11
6.1.6 Les handlers .......................... 11
6.2 Les événements asynchrones . . . . . . . . . . . . . . . . . . . . . . 11
6.2.1 AsyncEvent........................... 11
6.2.2 AsyncEventHandler . . . . . . . . . . . . . . . . . . . . . . 11
6.2.3 BoundAsyncEventHandler . . . . . . . . . . . . . . . . . . . 12
6.3 Les listes d’attente sans verrou . . . . . . . . . . . . . . . . . . . . . 12
6.4 La mémoire à portée (Scoped Memory) . . . . . . . . . . . . . . . . 12
6.4.1 Allocation classique dans le Tas . . . . . . . . . . . . . . . . 12
6.4.2 Temps d’allocation . . . . . . . . . . . . . . . . . . . . . . . 12
6.4.3 Architecture de l’implémentation . . . . . . . . . . . . . . . 13
6.4.3.1 Allocation de la ScopedMemory ........... 13
6.4.3.2 Utilisation de la ScopedMemory ........... 13
6.4.3.3 Désallocation d’une ScopedMemory ........ 13
6.4.4 Notes sur le Garbage Collector ................ 13
6.5 L’ordonnancement ........................... 14
6.5.1 Choix d’un thread . . . . . . . . . . . . . . . . . . . . . . . 14
6.5.2 Ordonnancement dans JXOS . . . . . . . . . . . . . . . . . . 14
6.5.3 Ordonnancement Temps Réel . . . . . . . . . . . . . . . . . 14
7 Mise en route (Getting Started) 15
7.1 Introduction............................... 15
7.2 Installation ............................... 15
7.3 Compilation des programmes d’exemples . . . . . . . . . . . . . . . 16
7.4 Exécution................................ 16
7.4.1 Utilisation directe d’un PC . . . . . . . . . . . . . . . . . . . 16
7.4.2 Utilisation de QEMU . . . . . . . . . . . . . . . . . . . . . . 17
7.4.2.1 Avec minicom .................... 17
7.4.2.2 Avec redirection dans un fichier . . . . . . . . . . . 17
7.5 Liste des programmes d’exemples . . . . . . . . . . . . . . . . . . . 17
7.5.1 Plusieurs threads Temps Réel . . . . . . . . . . . . . . . . . 17
7.5.2 Evénements asynchrones et timers . . . . . . . . . . . . . . . 18
7.5.3 Manipulation des dates . . . . . . . . . . . . . . . . . . . . . 19
7.5.4 File de messages sans attente . . . . . . . . . . . . . . . . . . 19
7.5.5 Dépassement d’échéance . . . . . . . . . . . . . . . . . . . . 20
7.5.6 Mémoire à portée (ScopedMemory) .............. 20
7.5.7 Ordonnancement Temps Réel . . . . . . . . . . . . . . . . . 22
8 Performances 22
8.1 Rapidité................................. 22
8.2 Stabilité temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9 Conclusion 24
2