#start(5.0,1.5)##pagenr("%",1)##setcount(1)##block##pageblock##count per page# #headeven# #lpos(0.0)##cpos(5.5)##rpos(11.0)# #table# EUMEL-Benutzerhandbuch #fillchar(" ")# #on("u")# #off("u")# #table end##clear pos# #end# #headodd# #lpos(0.0)##cpos(5.5)##rpos(11.0)##fillchar(" ")# #table# Teil 2: Der Supervisor #fillchar(" ")# #on("u")# #off("u")# #table end##clear pos# #end# #bottomeven# #lpos(0.0)##cpos(5.5)##rpos(11.0)# #table# #fillchar(" ")# #on("u")# #off("u")# #fillchar(" ")# 2 - % GMD #tableend##clearpos# #end# #bottomodd# #lpos(0.0)##cpos(5.5)##rpos(11.0)# #table# #fillchar(" ")# #on("u")# #off("u")# #fillchar(" ")# GMD 2 - % #tableend##clearpos# #end# TEIL 2: Der Supervisor #free(1.0)# #ib(9)#2.1. Steuerkommandos#ie(9)# #free(1.0)# Jegliche Aktivität im EUMEL-System beginnt mit dem Aufruf des SUPERVISOR durch Drücken der Taste Dieser Tastendruck koppelt Ihr Terminal an den Rechner an. Dieser Vorgang ist auch dann nötig, wenn diese Geräte praktisch eine Einheit bilden. ____________________________________________________________________________ Terminal 2 EUMEL Version 1.8/M gib supervisor kommando: ESC ? --> help ESC b --> begin("") ESC h --> halt ESC c --> continue("") ESC s --> storage info ESC q --> break ESC t --> task info ____________________________________________________________________________ Die auf den unteren Informationszeilen angezeigten Kommandos stehen nun zur Auswahl. Für alle diese Kommandos gilt, daß sie entweder durch zwei aufeinander­ folgende Tastendrücke und Kennzeichen oder auch durch vollständiges Eintip­ pen eingegeben werden können und mit ausgelöst werden. Die Eingabe eines falschen Zeichens nach oder eines falschen Kommandos wird abgewiesen. Die Eingabe ist dann zu wiederholen. Bedeutung der Kommandos: #on("b")# 1) Steuerkommandos #off("b")# #ib#ESC b#ie# #ib#begin#ie# ("taskname") Task einrichten. #ib#ESC c#ie# #ib#continue#ie# ("taskname") Task wieder ankoppeln. #ib#ESC q#ie# #ib#break#ie# Terminal abkoppeln. #ib#ESC h#ie# #ib#halt#ie# Programmlauf abbrechen. #on("b")# 2) Informationskommandos#off("b")# (nur Supervisor) #ib#ESC ?#ie# #ib#help#ie# Information. #ib#ESC s#ie# #ib#storage info#ie# Belegten Speicherplatz anzeigen. #ib#ESC t#ie# #ib#task info#ie# Im System befindliche Tasks anzeigen. #page# 2.2. Eine Task einrichten #free(1.0)# Mit dem Kommando 'begin' wird eine neue Task eingerichtet. #free(1.0)# Zunächst koppeln Sie Terminal und Rechner, dann legen Sie eine neue Task an. Terminal ankoppeln: Die Tastenkombination 'ESC b' schaltet den Einfügemodus ein und positioniert den Cursor passend für die Eingabe des Tasknamens. ____________________________________________________________________________ gib supervisor kommando : begin ("") ____________________________________________________________________________ Dateinamen eintippen: ____________________________________________________________________________ gib supervisor kommando: begin ("taskname") ____________________________________________________________________________ Nachdem Sie den Namen eingegeben haben, betätigen Sie die Taste. Daraufhin meldet sich der Monitor der neuen Task und Sie können beliebige Monitor- Kommandos (siehe Teil 3) eingeben. Wird eine Task in dieser geschilderten Weise neu eingerichtet, so wird sie automa­ tisch (von der Task SUPERVISOR) als Sohn der Task PUBLIC angelegt. Soll eine Task nicht als Sohn von PUBLIC, sondern als Sohn einer anderen Task angelegt werden, so ist das Kommando 'begin' mit zwei Parametern zu geben. Die neue Task wird dann als Sohn einer anderen Manager-Task angelegt (siehe Teil 3). ____________________________________________________________________________ gib supervisor kommando: begin ("taskname","name der vatertask") ____________________________________________________________________________ ACHTUNG: Die Task, die als Vater-Task angegeben wird, muß eine Manager-Task sein, sonst passiert überhaupt nichts! (s. Kap. 3.1.2.) #page# Task wiederankoppeln #free(1.0)# Mit dem Kommando 'continue' wird eine existierende Task an das Terminal angekoppelt. #free(1.0)# Wenn Sie die Arbeit in einer Task wiederaufnehmen wollen, holen Sie die Task mit dem Kommando 'continue' an das Terminal. Dieser Vorgang ähnelt dem Einrichten einer neuen Task: Terminal ankoppeln: Die Tastenkombination 'ESC c' schaltet den den Einfügemodus ein und positioniert den Cursor passend für die Eingabe des Tasknamens. ____________________________________________________________________________ gib supervisor kommando: continue ("taskname") ____________________________________________________________________________ Nach dieser Eingabe finden Sie die wiederaufgenommene Task so vor, wie Sie sie verlassen haben. #page# Terminal abkoppeln #free(1.0)# Mit dem Kommando 'break' wird das Terminal vom Rechner abgekoppelt. #free(1.0)# Wenn Sie beispielsweise nach einem Informationskommando (siehe Teil 2.3.ff) das Terminal sofort vom Rechner abkoppeln möchten, geben Sie das 'break'-Kommando. Nach 'storage info' geht es jedoch nur mit weiter. ____________________________________________________________________________ gib supervisor kommando: break ____________________________________________________________________________ Nach dieser Eingabe ist das Terminal abgekoppelt. Jede neue Aktivität ist wiederum mit einzuleiten. #page# Laufendes Programm stoppen #free(1.0)# Mit dem Kommando 'halt' wird ein Programm gestoppt, das am betreffenden Termi­ nal läuft. #free(1.0)# Dieses Kommando ist in besonderen Fehlersituationen von Wichtigkeit. Falls Sie ein Programm abbrechen wollen, aber keine regulären Eingaben am Bildschirm mehr möglich sind, so geben Sie zunächst ein. Sobald der Supervisor-Bildschirm erscheint, drücken Sie die Tasten #center# (oder tippen 'halt' und drücken 'CR'). ____________________________________________________________________________ gib supervisor kommando: halt ____________________________________________________________________________ Nach dieser Eingabe wird das an diesem Terminal laufende Programm unterbrochen. Nach dem Abbruch kommen Sie wieder auf die Monitor-Ebene (s. Teil 3). #page# 2.3. Informationskommandos #free(1.0)# Mit den Informationskommandos können Informationen zum System abgerufen werden. #free(1.0)# Die folgenden Informationskommandos können direkt an den SUPERVISOR gegeben werden. Terminal ankoppeln: beziehungsweise ____________________________________________________________________________ gib supervisor kommando : storage info ____________________________________________________________________________ gibt Auskunft über den belegten Speicherplatz auf dem EUMEL-Hintergrundspeicher. Das Kommando: ____________________________________________________________________________ gib supervisor kommando : task info ____________________________________________________________________________ gibt Auskunft über die Namen der im EUMEL-System befindlichen Tasks und die Struktur des Taskbaums. Verzweigungen im Taskbaum sind durch Einrückungen in den Ebenen des Taskbaums dargestellt. Alle in dem Schema der Task-Organisation (siehe Teil 1) fettgedruckten Tasks sind auch auf jedem Multi-User-Sysrtem zu finden, da sie zum Betrieb nötig sind. Die unterhalb von PUBLIC gelegenen Tasks werden, falls überhaupt schon vorhan­ den, häufig nach ihrem 'Besitzer' oder der in ihnen erledigten Arbeit benannt sein. #page# 2.4. Übersicht über Supervisor-Kommandos #free(1.0)# In diesem Abschnitt werden alle Supervisor- und Task-Kommandos in der ELAN-Notation dargestellt. #free(1.0)# Die Supervisor-Kommandos entsprechen - wie alle anderen Kommandos im EUMEL-System - der ELAN-Syntax (Kommando-Namen werden klein geschrie­ ben, Parameter in Klammern, mehrere Parameter durch Kommata getrennt, TEXT- Parameter in Anführungsstrichen usw.). #free(1.0)# Die ELAN-Notation #free(1.0)# Diese Notation dient der präzisen Beschreibung von Konstrukten der Programmier­ sprache ELAN. Im Anschluß an die teilweise eher informelle Formulierung innerhalb des Kapitels folgt jedem Teil eine Kurzbeschreibung der zu diesem Themenkreis gehörigen Konstrukte. Eine solche Beschreibung hat z.B. die Form: PROC edit (TEXT CONST dateiname) Die klein geschriebenen Benennungen von Prozeduren, Parametern etc. sind hoffent­ lich selbsterklärend, die groß geschriebenen Begriffe sind sogenannte Schlüsselworte und haben folgende Bedeutung: OP Operator Ein Operator bewirkt eine elementare Operation. Operatoren werden stets durch Großbuchstaben oder Sonderzeichen dargestellt. Beispiel: + ( Addition zweier Zahlen) PROC Prozedur Programm, welches unter seinem Namen aufrufbar ist, ggf. unter Anfügung von Parametern. beendet die Eingabe und läßt das Programm ablaufen. Beispiel: 'edit ("dateiname")' CONST Konstante Unveränderbarer Wert. VAR Variable Veränderbarer Wert. BOOL Wahrheitswert Typ, der nur die Werte TRUE oder FALSE annnehmen kann. TEXT Text Typ, der alle Buchstaben, Sonderzeichen, aber auch Ziffern umfaßt. Eine TEXT CONST ist somit eine sogenannte Zeichenkette: "meine datei" "$abc123(XYZ)" "abrechnung vom 30.09.86" Eine im Editor erstellte Datei besteht ausschließlich aus TEXTen. Ein Text wird in Anführungszeichen " " eingeschlossen. INT Integer Ganze Zahl. Ein INT CONST ist also irgendeine ganze Zahl. Falls beschrie­ ben ist: 'INT CONST zeilennr', so ist gemeint, daß an dieser Stelle die Zeilen­ nummer der gewünschten Zeile der Datei anzugeben ist, also '25' oder '999'. REAL Real Reelle Zahl. Eine REAL CONST bezeichnet eine Zahl mit Dezimalpunkt. PROC sin (REAL CONST x) => sin (0.5) TASK Task Eine TASK CONST bezeichnet eine existierende Task durch einen internen Task-Bezeichner. THESAURUS Ein THESAURUS ist eine Liste von Namen, z.B. eine Liste von Dateinamen. #page# Folgende Supervisor-Kommandos stehen zur Verfügung: #sy("begin PROC begin (TEXT CONST task name) Richtet eine neue Task als Sohn von PUBLIC ein. PROC begin (TEXT CONST task name, father task name) Richtet eine neue Task als Sohn der 'fathertaskname'-Task ein. break PROC break Das Terminal wird vom Rechner abgekoppelt. continue PROC continue (TEXT CONST task name) Eine existierende Task wird an das Terminal des Benutzers angekoppelt. halt PROC halt Das laufende Programm der dem Terminal aktuell zugeordneten Task wird abgebrochen. Natürlich wird die Task nicht gelöscht. Genauer: Es wird der Fehler 'halt from terminal' induziert. Normalerweise wird das Programm dadurch wie durch jeden anderen Fehler abgebrochen. Genaueres findet man im Systemhandbuch unter Fehlerbehandlung. storage info PROC storage info Informationsprozedur über den Hintergrund-Speicher. task info PROC task info Informiert über alle Tasknamen im System unter gleichzeitiger Angabe der Vater/Sohn-Beziehungen durch Einrückungen.