3.1 Ereignissteuerung



next up previous contents
Next: 3.2 Callback-Konzept Up: 3 VISTA-TCAD-Shell Previous: 3 VISTA-TCAD-Shell

3.1 Ereignissteuerung

 

Bei einem konventionellen Interpreter besteht die grundsätzliche Programmabfolge aus einer Endlosschleife wie in Abb. 3.1 dargestellt: Es wird ein Ausdruck eingelesen, interpretiert, das Ergebnis dieser Auswertung ausgegeben und sodann die nächste Eingabe bearbeitet. Ist der Interpreter im Zustand Auswertung (eval) oder Ausgabe (print), werden währenddessen getätigte Eingaben gepuffert, aber nicht bearbeitet. Eingaben können nur aus einer Quelle stammen, z.B. vom Benutzer mittels Tastatur.

  
Abbildung: Auswertungsschleife im konventionellen Interpreter: Abfolge von Einlesen, Auswerten und Ausgeben; vereinfachte Darstellung als Petri-Netz [Pet62].

  
Abbildung: Auswertungsschleife der VISTA-TCAD-Shell: Eingaben können zeitlich unkoordiniert aus mehreren Quellen stammen: Von der Tastatur, der graphischer Benutzeroberfläche, der Subprozeßverwaltung oder einer geplanten Netzwerksanbindung; vereinfachte Darstellung als Petri-Netz, nach [Hal92].

Der TCAD-Shell-Interpreter in VISTA hingegen muß Eingaben aus mehreren Quellen entgegennehmen (vgl. Abb. 3.2). Wie beim konventionellen Interpreter können Ausdrücke vom Benutzer mittels Tastatur zur Auswertung anstehen (,,read-eval-print-loop``). Zugleich muß auf Ereignisse der graphischen Benutzeroberfläche reagiert werden, die zumeist, aber nicht notwendigerweise vom Benutzer ausgelöst worden sind (siehe ,,XtAppMainLoop`` in [McC91]). Zum dritten werden Ereignisse der Subprozeßverwaltung, etwa die Beendigung eines Simulatorlaufs, signalisiert. Als Reaktion auf diese Signale sollen vordefinierte Ausdrücke ausgewertet werden. Die Eingaben aus den verschiedenen Quellen werden in verschiedenen Warteschlangen (,,Queues``) eingereiht. Ist der Shell-Interpreter frei zur nächsten Auswertung, werden die Queues in festgelegter Reihenfolge nacheinander abgearbeitet. Die graphische Benutzeroberfläche hat dabei die höchste Priorität, da erfahrungsgemäß mögliche, kleine Verzögerungen hier störend wirken.



Martin Stiftinger
Mon Oct 17 21:16:53 MET 1994