| 27.10.98 | 1. Einführung 1.1 Grundmodell eines Echtzeitsystems / DIN 44300 / Grundmodell eines Echtzeitsystems / Charakteristische Echtzeitbedingung / Determiniertheit und Vorhersagbarkeit / 1.2 Prozesse / Prozesse als Abstraktionsobjekt / Grundmodell mit Prozessen / Bsp.: Maus- und Cursorbewegung
|
| 3.11.98 | 1.3 Zeiten / physikalische Zeit, logische Zeit und Echtzeit / Definition von Echtzeit
/ Erzeugung von Zeitwerten für Rechner / Fehlerquellen: Drift und Rasterung
/ Quantifizierung der Fehler auf der Basis der Bezugszeitspanne / Anomalie der Echtzeit
2. Echtzeitplanung 2.1 Grundlagen der Echtzeitplanung / Prozessmodell
/ unterbrechbare und nicht unterbrechbare Prozesse / Kategorisierung des Prozessbegriffs in Prozesstyp,
Prozessobjekt und Prozessausführung / Prozessbeschreibende Größen: Bereitzeit,
Ausführungszeit, Frist, Startzeit und Abschlusszeit
|
| 6.11.98 | Vertretung durch Herrn Dipl.-Inform D. Polock: Betrachtungen zur Zeit / relative Genauigkeit und absolute Genauigkeit
|
| 10.11.98 | periodische, aperiodische und sporadische Prozesse / Fristen bei periodischen Prozessen / Prozesse mit Altersanforderungen / Plan als Abbildung der (diskreten) Zeit auf eine Menge von Prozessen / Phasen der Planung / statisches und dynamisches Planen / Brauchbarkeit von Plänen / optimale Planungsverfahren / 2.2 Planen durch Suchen / Verfahren zur Suche der frühestmöglichen Lücke bei nicht unterbrechbaren Prozessen
|
| 13.11.98 |
Nachweis der NP-Vollständigkeit der Entscheidung, ob eine Menge nicht unterbrechbarer Prozesse brauchbar verplanbar ist, durch Reduktion auf das 3-PARTITION Problem / 2.3 Planen nach Fristen / Strategie EDF (earliest deadline first)
|
| 17.11.98 |
Verfahren zum Planen nach Fristen bei nicht unterbrechbaren Prozessen / Beispiel für die Nicht-Optimalität des Verfahrens zum Planen nach Fristen bei nicht unterbrechbaren Prozessen / Nachweis der Optimalität des Verfahrens zum Planen nach Fristen bei unterbrechbaren Prozessen mit gleichen Bereitzeiten / Verfahren zum Planen nach Fristen bei unterbrechbaren Prozessen
|
| 20.11.98 |
Einweihungsfeier "Campus Metternich"
|
| 24.11.98 |
Beweis der Optimalität des Verfahrens zum Planen nach Fristen bei unterbrechbaren Prozessen
/ Beispiel für das Planen nach Fristen bei unterbrechbaren Prozessen
/ Planen nach Fristen bei unterbrechbaren, periodischen Prozessen / Definition der Auslastung U
/ Beispiel für das Planen nach Fristen bei unterbrechbaren, periodischen Prozessen
/ Beweis, dass es beim Planen nach Fristen bei unterbrechbaren, periodischen Prozessen nur dann Fristüberschreitungen geben kann, wenn vorher keine Planungslücken existieren
|
| 27.11.98 |
Beweis, dass periodische unterbrechbare Prozesse immer dann brauchbar verplant werden können, wenn die Auslastung kleiner oder gleich 1 ist / 2.4. Planen nach Spielräumen / Definition von Spielräumen bei nicht unterbrechbaren Prozessen und unterbrechbaren Prozessen / Beispiele zum Planen nach Spielräumen / 2.5. Planen nach monotonen Raten
|
| 1.12.98 |
Prioritätszuordnung bei monotonen Raten / Definition des kritischen Zeitpunktes bzw. des kritischen Intervalls
/ Beweis, dass immer dann ein kritisches Intervall beginnt, wenn alle Bereitzeiten zusammenfallen
/ Beweis der Optimalität des Planens nach monotonen Raten unter allen festen Prioritätszuordnungen
/ Beispiel für eine nicht brauchbar einplanbare zweielementige Prozessmenge mit einer Auslastung deutlich unter 1
|
| 4.12.98 |
Beweis, dass ein Prozess beim Planen nach monotonen Raten brauchbar einplanbar ist,
wenn es gelingt, ihn zum kritischen Zeitpunkt einmal einzuplanen / Beweis der kleinsten oberen Schranke für die Brauchbarkeit von zwei Prozessen beim Planen nach monotonen Raten
|
| 8.12.98 | kleinste obere Schranke für die Brauchbarkeit von n Prozessen beim Planen nach monotonen Raten / Grenzwert für die kleinste obere Schranke bei n gegen unendlich / Nutzen der Sätze von Liu und Layland / 2.? Bewertung der Scheduling / Einordnung des Scheduling unterbrechbarer Prozesse nach statischen und dynamischen Prioritäten / ereignisgetriebene und zeitgetriebene Prozessausführung / Probleme bei der Bestimmung von Ausführungszeiten
|
| 11.12.98 |
3. Synchronisierung priorisierter Prozesse / 3.1 Notwendigkeit zur Synchronisierung / explizite und implizite Synchronisierung / Einschub: zyklische Einplanung mit impliziter Synchronisierung / äußerer und innerer Zyklus / Beispiel einer zyklischen Einplanung und Generierung eines entsprechenden Ada-Programms / Gegenüberstellung der zyklischen Einplanung und der Planung nach monotonen Raten / explizite Synchronisierung von kritischen Gebieten mit den Operationen E(cs) und L(cs) für das Betreten und Verlassen eines kritischen Gebietes cs / Prozesszustände bereit (rechenbereit, rechnend), blockiert wegen cs, schlafend
|
| 15.12.98 |
3.2 Das Phänomen der Prioritätsumkehr / Schema der Prioritätsumkehr basierend auf drei
unterschiedlich priorisierten Prozessen l,m,h / Konflikt zwischen der Synchronisierung und der Priorität von
Prozessen / Vorrangregel: die Synchronisierungsbeziehungen dominieren die Prioritätsbeziehungen
/ Suche nach einer Form von Echtzeitbedingungen, mit denen der Enwickler von Echtzeitsystemen rechnen möchte / Beispiel für die Prioritätsumkehr, die diese Echtzeitbedingungen verletzt / Idee der Vererbung von Prioritäten, um die gefundene Form von Echtzeitbedingungen zu retten
|
| 5.1.99 |
Einschub: StateCharts zur Verhaltensmodellierung / Hierarchische Graphen / Orthogonale Komponenten / Zustandsübergänge / interne und externe Ereignisse / Beispiele zur Zusammenfassung von Zuständen und zur Nebenläufigkeit / Schaltregel bei Ereignissen / Vergleich von StateCharts und UML State Diagrams
|
| 8.1.99 |
Übungsstunde zum Thema StateCharts von David Polock: Modellierung der Funktionsweise eines CD-Spielers / Modellierung der Prozesszustände mit einem Zustandsdiagramm und mit verschiedenen StateCharts / Beweis, dass es immer nur einen rechnenden Prozess geben kann
|
| 12.1.99 |
3.3 Prioritätsvererbung /
Architekturmodell für die Ausführung paralleler Prozesse mit kritischen Gebieten
/ das Gesamtsystem bestehend aus einer Menge paralleler Prozesse und einem Scheduler als StateChart
aufgebaut aus orthogonalen Komponenten / die Ereignisse, die bei Prozessen auftreten können
/ die StateChart für Prozesse / die Relationen OWNER und BLOCK / die StateChart für den Scheduler
|
| 15.1.99 |
Schema der Prioritätsvererbung im Zeitdiagramm / Fehler im ursprünglichen Protokoll zur Prioritätsvererbung
/ Berechnung der Prozessmenge bb(p), die durch einen Prozess p blockiert wird.
/ Berechnung der aktuellen Priorität actprio(i) / Beweis, dass durch das Protokoll zur
Prioritätsvererbung nur maximal ein Prozess Besitzer eines kritischen Gebietes sein kann
/ Beweis, dass durch das Protokoll zur Prioritätsvererbung nur genau ein Prozess im Zustand rechnend sein kann
/ Beweis, dass durch das Protokoll zur Prioritätsvererbung die Relation BLOCK einen Wald bildet
|
| 22.1.99 |
Invariante für die Echtzeitbedingung / Beweis der Invarianten
/ Beispiel für die Gültigkeit der Invarianten
/ Beweis der Erhaltung der Invarianten unter Anwendung der Operationen aus der StateChart
/ Beispiel für eine verbleibende Unschärfe im Protokoll der Prioritätsvererbung
|
| 25.1.99 |
Grundideen des Protokolls zur Prioritätsvererbung (PIP) im Vergleich zum Protokoll der Prioritätsobergrenze (PCP)
/ Kategorisierung von Echtzeitbetriebssystemen und Laufzeitsystemen für Echtzeitprogrammiersprachen bzgl. PIP und PCP
/ Fallbeispiel Solaris, Prioritäten der Threads, Ablaufschema, Mehrprozessorscheduling /
3.4 Prioritätsobergrenzen / Idee und Formalisierung der Prioritätsobergrenze actceil(i)
/ Regeln zum Protokoll der Prioritätsobergrenzen
|
| 29.1.99 |
Beispiel zum Protokoll der Prioritätsobergrenzen / Definition der Relationen OWNER und BLOCK
/ Definition von bb(p) der durch p blockierten Prozesse / Beweis, dass es keine transitiven Blockaden geben kann
/ Echtzeitbedingung beim Protokoll der Prioritätsobergrenzen / Zustandsdiagramm für den Scheduler
|
| 1.2.99 |
6. Programmierung 6.1 Die Evolution der Programmiersprachen
/ Abstrakionskonzepte von imperativen Programmiersprachen / 6.2 Echtzeitprogrammiersprachen
/ Genealogie der wichtigsten Programmiersprachen / Eignung von Java für die Entwicklung von Echtzeitsystemen / PERC's Java Virtual Machine / Konzepte der Echtzeitprogrammiersprache PEARL / Zustandsmodell für Tasks in PEARL
|
| 5.2.99 |
zeitgesteuerte und ereignisgesteuerte Einplanung von Tasks in PEARL / die Datentypen CLOCK und DURATION / Beispiele für die zeitgesteuerte Einplanung in PEARL / Unterbrechungsbehandlung und deren Einbettung in PEARL / Beispiel eines Nothalt-Mechanismus in RTSA und in PEARL / StateChart für die Zustandsübergänge einer Task in PEARL
|
| 8.2.99 |
Projektspezifische Entscheidung für ein Echtzeitbetriebssystem / Fallbeispiel: Das Echtzeitbetriebssystem QNX / Komponenten von QNX: Interprozesskommunikation, Scheduler, Unterbrechungsbehandlung, Netzwerk-Schnittstelle / Kommunikationsprimitive in QNX / StateChart zu den Operationen Send(), Receive() und Reply()
|
| 12.2.99 |
Bedeutung von "proxy"-Prozessen / Simulation asynchroner Nachrichtenübertragung mit synchroner
Nachrichtenübertragung / Prozesse un Objekte: eine Gegenüberstellung der Prozesserzeugung bei
leichtgewichtigen und schwergewichtigen Prozessen / Fallbeispiel: Rückwärtsfahren eines Fahrzeugs
/ RTSA-Kontextdiagramm
|
| 19.2.99 | Verfeinerung des Kontextdiagramms /
unterschiedliche Denkansätze der ereignisgesteuerten
Programmierung und der zeitgesteuerten Programmierung /
periodische Aktivierung eines Prozesses unter QNX /
Schließen der Lücke zwischen Anforderungsanalyse und
Programmierung / Bedeutung der Entwurfsphase, insbesondere
für Echtzeitsysteme / Beispiele für den Übergang
von der Anforderungsanalyse in die Programmierung / kanonischer
Übergang von RTSA-Fragmenten in periodische priorisierte
Prozesse unter QNX / Prioritätsvererbung unter QNX
|