Bei der Ausführung eines UTM-Anwendungsprogramms, das auf einem Unix- oder Linux-System abläuft, arbeiten unterschiedliche Prozesse mit jeweils spezifischen Aufgaben zusammen. Diese Prozesstypen werden in den folgenden Absätzen beschrieben. Eine Übersicht gibt Bild 44.
Mainprozess und Workprozesse
Gestartet wird eine UTM-Anwendung durch das Programm utmmain. Dieses Programm wird im Allgemeinen als Hintergrundprozess - Mainprozess genannt - gestartet. Über den Mainprozess werden so viele Workprozesse gestartet, wie in den Startparametern angegeben ist. In allen diesen Workprozessen wird das vom Anwender erzeugte Anwendungsprogramm geladen und gestartet.
Die Workprozesse leisten die eigentliche Arbeit: sie erledigen die Service-Anforderungen, die an die UTM-Anwendung gerichtet werden. Der Mainprozess überwacht diese produktiv arbeitenden Prozesse. Er erzeugt während des Anwendungslaufs automatisch dann weitere Workprozesse, wenn sich ein Workprozess wegen eines Fehlers beendet oder per Administration der Anwendung explizit weitere Workprozesse zugeteilt werden.
Nach Anwendungsstart warten alle Workprozesse der UTM-Anwendung in einer gemeinsamen Prozesswarteschlange auf Aufträge. Trifft ein Auftrag ein, so wird er einem wartenden Workprozess in der Prozesswarteschlange zugeordnet. Dieser Prozess bearbeitet den Auftrag und reiht sich anschließend wieder in die Prozesswarteschlange ein.
Sind zur gleichen Zeit mehr Aufträge als Workprozesse vorhanden, dann wird eine Auftragswarteschlange aufgebaut. Sowohl Auftrags- als auch Prozesswarteschlangen sind Anwendungs-bezogen; das bedeutet, dass unterschiedliche Anwendungen jeweils eine eigene Prozess- und Auftragswarteschlange haben. Die Warteschlangen für Prozesse werden über Semaphore und die Warteschlangen für Aufträge über ein Shared Memory realisiert.
Timerprozess
Der Mainprozess richtet außer den Workprozessen einen der Anwendung zugeordneten Timerprozess (Zeitgeberprozess) ein. Der Timerprozess nimmt zur Zeitüberwachung von Wartezuständen Aufträge von den Workprozessen entgegen und ordnet sie in ein Auftragsbuch ein. Nach Ablauf einer der im Auftragsbuch vermerkten Zeiten wird dies den Workprozessen zur Bearbeitung mitgeteilt.
Netzprozesse
Bei verteilter Verarbeitung werden UTM-Anwendungen über Netzprozesse ans Netz angebunden. Diese Prozesse haben die Aufgabe, Verbindungsanforderungen zu bearbeiten und den Datentransfer auf dieser Verbindung zu verwalten.
Die Netzanbindung kann über PCMX oder direkt über die Socket-Schnittstelle laufen. Die Anzahl der Netzprozesse ist generierungsabhängig.
Weitere Informationen über Netzprozesse sowie über Details der Generierung erhalten Sie im openUTM-Handbuch „Anwendungen generieren“. |
Dialogterminalprozesse (DTPs)
Für jedes Terminal, das mit der UTM-Anwendung arbeitet, existiert ein eigener Dialogprozess, genannt Dialogterminalprozess. Er wird weder vom Main- noch von einem Workprozess erzeugt, sondern entweder aus der Shell durch Starten des Programms utmdtp etabliert oder nach erfolgreichem Anmelden des Benutzers an das Unix- oder Linux-System automatisch gestartet.
Der Terminal-Benutzer wählt die UTM-Anwendung aus. Dadurch wird eine Verbindung zwischen dem Dialogterminalprozess und der UTM-Anwendung etabliert. Anschließend kann der Dialogterminalprozess Aufträge an diese UTM-Anwendung senden bzw. Nachrichten von dieser UTM-Anwendung empfangen.
Lokale Client-Prozesse
Für jeden UTM-Client mit Trägersystem UPIC, der mit der UTM-Anwendung arbeitet, existiert ein eigener lokaler Client-Prozess. Er wird weder vom Main- noch von einem Workprozess erzeugt, sondern aus der Shell gestartet.
Der lokale Client-Prozess baut die Verbindung zur UTM-Anwendung auf. Anschließend kann der lokale Client-Prozess Aufträge an diese UTM-Anwendung senden bzw.
Nachrichten von dieser UTM-Anwendung empfangen.
Druckerprozesse
Asynchrone Nachrichten an Drucker werden von der UTM-Anwendung über eigene Prozesse, Druckerprozesse genannt, ausgegeben. Für jeden angeschlossenen Drucker wird vom Mainprozess der UTM-Anwendung ein Druckerprozess eingerichtet. Der Druckerprozess für einen Drucker existiert solange, wie dieser an die UTM-Anwendung angeschlossen ist.
Logging-Prozess
openUTM kann bei laufender Anwendung bestimmte Daten protokollieren wie z.B. Abrechnugssätze oder Messdaten. Diese Protokollierung wird über den Logging-Prozess gesteuert (utmlog).
Falls generiert, stellt openUTM während des Anwendungslaufes Accounting-Informationen bereit. Diese Information wird in sogenannten Abrechnungssätzen von
openUTM erfasst und an den Logging-Prozess weitergeleitet. Der Logging-Prozess schreibt diese Sätze in eine Datei im Unterverzeichnis ACCNT.Zur Leistungskontrolle einer UTM-Anwendung steht die in openUTM integrierte Funktion des UTM-Messmonitors KDCMON zur Verfügung. Nach Starten der
KDCMON-Messung erfassen die Workprozesse Messdaten und übermitteln diese an den Logging-Prozess, der die Datensätze in eine Datei im Unterverzeichnis KDCMON schreibt. Dadurch wird die Verwaltung dieser Daten von den Workprozessen auf eine einzige Instanz, den Logging-Prozess, verlagert.
Übersicht: Prozesse einer UTM-Anwendung auf Unix- und Linux-Systemen
Bild 44: Prozessinteraktion in einer UTM-Anwendung auf Unix- und Linux-Systemen