Java für Embedded Systems

Werbung
Java für Embedded Systems
Marc Balmer, [email protected]
Marc Balmer, micro systems
[email protected]
25. April 2001
Java für Embedded Systems
Java für Embedded Systems
• ...
• Cyberflex Smart Card
• iButton
• Java-Ring
• TINI Board
• Palm PDA
Marc Balmer, [email protected]
Java-fähige Embedded Systems
Java für Embedded Systems
• PDA
• Handy
Marc Balmer, [email protected]
Consumer Produkte, z.B.:
• Einspritzsteuerung für Benzinmotoren
• Billetautomat
• Datenerfassung
Steuer- und Kontrollrechner, z.B.:
Embedded Systems
Java für Embedded Systems
Flash-ROM
Marc Balmer, [email protected]
Keine externen Speicher wie Festplatten
Wenige Bytes bis einige Megabytes (typ. 4- 8 MB)
Speicher
Java für Embedded Systems
Marc Balmer, [email protected]
Prozessor wird oft in einen stromsparenden Sleepmode versetzt
Langsame Prozessoren, 20 MHz Taktfrequenz ist bereits komfortabel
Rechnerleistung
Java für Embedded Systems
Marc Balmer, [email protected]
Vernünftige Antwortzeiten (der Fokus eines Benutzers ist u.U. ganz auf das Gerät
gerichtet)
Absolute Zuverlässigkeit
Anforderungen
Limitiertes oder gar kein User Interface
User Interface
Java für Embedded Systems
Marc Balmer, [email protected]
Java aus Embedded Systems Sicht
Java für Embedded Systems
Marc Balmer, [email protected]
• Instruktionen und implizite Instruktionen sind von Bedeutung
• Programme werden grösser und langsamer
• Einfach zu implementieren
Die virtuelle Maschine: Ein stack-basierter
Rechner ohne Register
Java für Embedded Systems
• Gut komprimierbar
• Big-Endian
Marc Balmer, [email protected]
• Enthät Bytecodes uns symbolische Information
• Portables Binärformat
Java Classfiles
Java für Embedded Systems
• Langsame Array-Initialisierung
• Symbolische Namensauflösung
• Synchronisation
Marc Balmer, [email protected]
• Sicherheitsüberprüfung des Bytecode
• Viele Laufzeitüberprüfungen
• Keine Pointer
Nicht weil Java interpretiert ist, sondern wegen Eigenschaften der Java Umgebung an
und für sich:
Warum ist Java langsam?
Java für Embedded Systems
Marc Balmer, [email protected]
Objekte werden evt. gar nie freigegeben, es keine Regeln für die Garbage Collection
Keine Kontrolle über die Speicherallokation (nur ein Heap)
Garbage Collection benötigt Rechenzeit
Nachteile
Objekte werden automatisch dealloziert
Objekte werden nie zu früh dealloziert
Vorteile
Garbage Collection
Java für Embedded Systems
Marc Balmer, [email protected]
• Das Modell separieren (Model/View/Controller-Paradigma)
• Auf Performanz hin programmieren
• Weniger Speicher verwenden
• Kleinere Anwendungen schreiben
• Anwendungen vereinfachen
• Rechenintensive Aufgaben auf den Server verlegen
Programmierstrategien
Java für Embedded Systems
Marc Balmer, [email protected]
• Die Kuaui VM (KVM) für 16- und 32-Bit Rechner mit wenig Speicher
• Die Classic VM für 32-Bit Rechner mit viel Speicher
J2ME
• Die HotSpot VM
• Die Classic VM
J2SE
Eine neue virtuelle Maschine
Die Java 2 Micro Edition
Java für Embedded Systems
Marc Balmer, [email protected]
Neue Klassen für Embedded Systems
Reengineering bestehender Klassen
Neue und veränderte Klassen
Java für Embedded Systems
Marc Balmer, [email protected]
Vollständiger Java Support plus alle CLDC Klassen
Die Connected Device Configuration
Vollständige JVM mit Ausnahmen
Volle Sprachumfang mit Ausnahmen
Die Connected Limited Device Configuration
Konfigurationen
Java für Embedded Systems
Support für HTTP etc.
Mobile Information Device
MID Profile
Marc Balmer, [email protected]
Anwendungspezifische Klassen innerhalb einer Konfiguration
Profile
Java für Embedded Systems
Marc Balmer, [email protected]
Keine Benutzerdefinierten Klassenlader
Multidimensionale Arrays sind optional
Bytecode pre-verification ausserhalb der VM
Kein JNI
Keine Object Finalization
Long Integer und Floating Point Unterstützung ist optional
Die KVM
Java für Embedded Systems
Marc Balmer, [email protected]
“Using Java for embedded systems means to live on the bleeding
edge. And it’s not called the bleeding edge for nothing.”
Java ist für Embedded Systems der falsche Ansatz
Die Java Technologie für Embedded Systems ist unausgereift, zu langsam, zu Speicherintensiv
Java kann für Embedded Systems zum jetzigen Zeitpunkt (2001) nicht sinnvoll eingesetzt werden
Schlussfolgerung
Herunterladen