JVM : Obstacles au Temps réel :
1-Gestion des threads
• Pas de politique d’ordonnancement temps réel,
• Spécification imprécise de la gestion des priorités :
- plusieurs priorités Java peuvent être associées à la même priorité
système,
• Le GC, qui est le thread le plus prioritaire, a un comportement non
déterministe,
• Inversion de priorité possible avec le mécanisme wait/notify , par
exemple :
- Soit les threads T1, T2 et T3 tels que : Priorité T1 > Priorité T2 >
Priorité T3 et une méthode M, synchronized, de l’objet O
- T3 fait O.M(), et rentre dans le code de la méthode M, prenant le
verrou associé à O,
- T1 démarre, donc préempte T3, puis fait O.M() et passe bloqué sur
le verrou associé à O,
- T3 reprend alors la main,
- T2 démarre, interrompt T3, et prend la main,