Zum Inhalt springen

Real-Time Java

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. Mai 2012 um 17:48 Uhr durch Michael-O (Diskussion | Beiträge) (Deppenapostroph entfernt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Real-Time Java ist eine Sammlung von Programmierschnittstellen, welche die Java Technologie um Echtzeit Fähigkeiten erweitert. Diese Real-Time Specification for Java (RTSJ) wurde als Java Specification Request 1 im Rahmen des Java Community Process entwickelt und als Standard im November 2001 verabschiedet. Aktuell wird an einer erweiterten Version der RTSJ im Rahmen des JSR 282 gearbeitet.

Hintergründe

Einige der üblicherweise als Stärken von Java angesehenen Eigenschaften wie die untrennbar mit der Sprache verbundene Garbage Collection, sowie die native Unterstützung von Threads und Nebenläufigkeit machen eine direkte Verwendung von Java in Echtzeitsystemen unmöglich:

  • Java unterstützt wie die meisten der Betriebssysteme, für die Java angeboten wird, kein striktes auf Prioritäten basierendes Threading Modell. Damit unterstützen die Lock Mechanismen von Java keine Mechanismen zur Vermeidung der Prioritätsinversion wie beispielsweise Prioritätsgrenzen oder Prioritätsvererbung.
  • Das Verhalten der Java Garbage Collection kann unbegrenzte Pausen bei Berechnungen verursachen und untergräbt somit alle Echtzeit Garantien von Java Programmen.

Um diese Schwierigkeiten zu meistern wurde die Real-Time Specification for Java (RTSJ) als Java Specification Request entwickelt. Sie ermöglicht es in Java die obengenannten Hindernisse zu umgehen in dem sie ein entsprechendes Threading Modell einführt und es ermöglicht die Java Virtual Machine durch weitere Threading Modelle zu erweitern. Darüber hinaus definiert sie spezielle Speicherbereiche, welche nicht durch die herkömmliche Garbage Collection bereinigt werden, sondern durch realtimefähige Threads, welche nicht durch die Garbage Collection pausiert werden können.

Aktuelle Umsetzungen der RTSJ ermöglichen es in Java harte und weiche Echtzeitanwendungen zu entwickeln. Zu den bekanntesten Implementierungen gehört die Referenzimplementierung von Timesys, IBMs WebSphere Real Time, Sun Microsystemss Java SE Real-Time Systems, Aonix PERC und JamaicaVM von aicas.

Literatur

  • Eric J. Bruno, Greg Bollella: Real-Time Java Programming with Java RTS. Prentice Hall, 2009, ISBN 978-0-13-714298-9 (bvdep.com [abgerufen am 6. Dezember 2011]).
  • Peter C. Dibble: Real-Time Java Platform Programming. Prentice Hall, 2002, ISBN 978-0-13-028261-3.
  • Andrew Wellings: Concurrent and Real-Time Programming in Java. John Wiley & Sons, 2004, ISBN 978-0-470-84437-3.
  • Benjamin Brosgol, James Gosling, Peter Dibble, Steve Furr, David Hardin, Mark Turnbull: The Real-Time Specification for Java. Addison Wesley Longman, 2000, ISBN 0-201-70323-8.