Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Klothilda Moris Geändert vor über 10 Jahren
1
Matthias Peters20.02.2003Seminar: Real-Time Java Seminar Real-Time Java High-Resolution Time Real-Time Threads Matthias Peters Wintersemester 2002/2003
2
Matthias Peters20.02.2003Seminar: Real-Time Java Übersicht High-Resolution Time Motivation Genauigkeit Haupt- und Unterklassen Real-Time Threads Motivation Features Erzeugung Handler
3
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time Motivation Zeit bedeutendes Merkmal vieler Realzeit-Systeme RZ-Systeme benötigen Zeit-Darstellung als –Intervalle –Zeitpunkte –Frequenz und mit –hoher Genauigkeit –grosser Reichweite Gewöhnliche Java-Zeit nicht ausreichend
4
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time Darstellung durch 84 Bit –64 Bit für Millisekunden-Wert –32 Bit für Nanosekunden ( d.h. höchste 12 Bit sind Millisekunden) Reichweite 292 Millionen Jahre Genauigkeit Nanosekunden
5
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time Abstrakte Basis-Klasse –Felder für Milli- und Nanosekunden –Gemeinsame Methoden der Unterklassen Unterklassen: –AbsoluteTime –RelativeTime –RationalTime (extends RelativeTime)
6
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time Klassendiagramm
7
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time AbsoluteTime Absolute Zeit relativ zu 00:00:00.000 GMT am 1.Januar 1970 Methoden –Rechnen mit relativen Zeiten –Konvertieren von und zu java.util.Date
8
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time RelativeTime Zeitspanne, positiv, negativ oder null Arithmetische Operationen auf den Zeitspannen Zusätzliche Methoden für Unterklasse RationalTime
9
Matthias Peters20.02.2003Seminar: Real-Time Java High-Resolution Time RationalTime extends RelativeTime Fügt Frequenz hinzu Bestimmte Anzahl Ausführungen in einer Zeitspanne Keine zu enge Einschränkung: Betrachtung aufeinanderfolgender Intervalle
10
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Motivation gewöhnliche Threads nicht geeignet für RZ- Systeme –zu wenig Prioritäten möglich –unterliegen dem Garbage-Collecting –unzureichende Behandlung asynchroner Events –unzureichende periodische Benutzbarkeit
11
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads javax.realtime.RealtimeThread extends java.lang.Thread
12
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Real-Time Threads haben zusätzliche Features: –Erweiterte Prioritäten –Scoped Memory –Dienste für asynchr. unterbrochene Exception –Periodisches Scheduling –Jedes nicht-periodische Scheduling, das von der Plattform angeboten wird
13
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Weitere Features (auch bei gewöhnlichen Threads): –Striktes Prioritäten Scheduling –Priority inheritance protocol für wechselseitige Blockierungen
14
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Erzeugung von Threads import javax.realtime.*; public class Hello1 { public static void main(String [] args){ RealtimeThread rt= new RealtimeThread(){ public void run() { System.out.println("Hello RT world"); } }; rt.start(); } }
15
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Erzeugter Thread –Erbt Parameter-Werte der Eltern oder –Bekommt default-Werte durch zuständigen Scheduler –Unterschied, ob Erzeuger gewöhnlicher oder Real-Time Thread
16
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Parameter des Konstruktors Scheduling Parameter Release Parameter –periodisch –aperiodisch –sporadisch
17
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Parameter des Konstruktors Memory Parameter Memory area Prozess-Gruppe Logic
18
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Scheduling RTSJ verlangt : –fixed-priority preemtive Scheduler –mindestens 28 versch. Prioritäten 10 non-real-time < 28 real-timePrioritäten
19
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Optionale Features für periodisches Scheduling: feasibility analysis deadline aware miss handler overrun-Handler ImportanceParameters
20
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Periodischer Thread Release Parameter: start period cost deadline missHandler overrunHandler
21
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Periodischer Thread Reaktionen bei Overrun oder Miss ohne Handler: –good citizen –desperate outlaw (ignoriert waitForNextPeriod)
22
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Periodischer Thread Ausnutzen der Feasibility-Analyse –addIfFeasible –setIfFeasible –setMemoryParametersIfFeasible –... zusätzlich der gleiche Satz ohne Admission Control
23
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Periodischer Thread mit Handler –Scheduler erkennt Overrun frühzeitig und reagiert –deschedulePeriodic stoppt Thread –OverrunHandler wird aufgerufen und versucht Fehler zu beheben –Thread wird mit schedulePeriodic fortgesetzt
24
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads OverrunHandler extends AsyncEventHandler –sucht den Grund des Problems –kann Kosten des Threads erhöhen –benutzt die Feasibility-Analyse –terminiert fehlerhafte Threads mittels AIE (asynchronously interrupted exception)
25
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads MissHandler –ähnlicher Mechanismus, wie der OverrunHandler –reagiert je nach Härte der Realzeit der Thread wird sofort wieder aktiviert und darf mit seiner Berechnung fortfahren bekommt AIE und darf in nächster Periode neue Berechnung starten darf mit aktueller Berechnung in der nächsten Periode fortfahren
26
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads MissHandler passiv: keine Anstrengungen, weitere Misses zu verhindern aggressiv: versucht, Problem zu beheben feuert AIE auf Thread unterschiedliche Auswirkungen auf die Ausführung anderer Threads
27
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Interaktion mit normalen Threads gewöhnliche Threads können ohne Modifikation in der RT-Umgebung laufen Performance-Probleme bei Interaktion Priority-Boosting nicht JLS-gerecht
28
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Übernahme von herkömmlichen Java-Code in RTSJ-Plattform Realzeit-Möglichkeiten ignorieren und auf RT- Umgebung vertrauen alle langsamen Threads finden und boosten alle langsamen Threads finden und ein RT- Untersystem schaffen mit identischen RT-Threads alle gewöhnlichen Threads in RT-Threads konvertieren
29
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Erschaffen und Benutzen eines anderen Schedulers default : fixed-priority preemptive scheduler Thread kann beliebigen Scheduler wählen RTSJ enthält APIs zum Anpassen –dynamischer Prioritäten-Scheduler –beliebiger Scheduler von Betriebssystem oder JVM- Entwicklern Erschaffen komplett neuer Scheduler nicht in RTSJ
30
Matthias Peters20.02.2003Seminar: Real-Time Java Real-Time Threads Fazit Jeder gewöhnliche Thread kann durch einen Real-Time Thread ersetzt werden RT Threads bieten –funktionierende Prioritäten –periodisches Scheduling –priority boosting
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.