next up previous contents index
Next: Fehlerbehandlung Up: L3 Referenzhandbuch Previous: Kommunikation mit Terminals

Systeminfo/Systemsteuerung

Einführung

Unter dem Stichwort »Systeminfo« sind Abfragen und Einstellung von systemglobalen Werten, Informationen über alle Tasks und dergleichen beschrieben.

Dazu gehören die Zeitmessung im L3 System, Informationen über das gesamte Tasksystem, Versionsangaben und (privilegierte) Operationen für die Systemsteuerung.

tabular8761

tabular8772

tabular8777

tabular8782

tabular8787

tabular8793

Zeitmessung in L3

Da die Zeitmessung in einem Multitasking/Multiuser System für mehrere, teilweise widersprüchliche Zwecke verwendet wird, führt L3 drei unabhängige Uhren.

CPU Zeit:
Diese Uhr wird separat für jede Task geführt. Sie liefert die CPU Zeit (echte Rechenzeit), die die Task seit ihrer Erschaffung bis zum Zeitpunkt der Abfrage konsumiert hat. Die Uhr kann nicht verstellt werden. Ihr Stand wird durch cputime geliefert.

Echtzeit:
Diese Uhr wird systemglobal geführt. Sie liefert die normale Uhrzeit. Nullpunkt dieser Uhr ist der erste Januar des Jahres 1. Die Uhr kann selbstverständlich eingestellt werden. Die Echtzeit kann also Sprünge vorwärts und rückwärts vollführen. Sie ist somit zur Regelung von Wartezeiten und dergleichen ungeeignet. Ihr Stand wird durch datetime geliefert. Um in einzelnen Tasks beliebige Uhren »mitführen« zu können gibt es die local datetime.

Systemzeit:
Diese Uhr läuft mit derselben Geschwindigkeit wie die Echtzeituhr, wenn der Rechner unter Kontrolle von L3 läuft. Der Nullpunkt dieser Uhr liegt beim Zeitpunkt der Systemerzeugung. Danach läuft diese Uhr unveränderlich zur Betriebszeit weiter. Sie kann, da keine Sprünge möglich sind, zur Festsetzung von Pausen und timeout Angaben benutzt werden. Ihr Stand wird durch systemtime geliefert.

Intern werden die Resultate von Zeitabfragen als doppelt lange Integer (DINT) vom L3 Systemkern geliefert. Für die Behandlung der Echtzeit wird der Datentyp DATETIME zur Verfügung gestellt. Die darauf definierten Operationen bieten das nötige Werkzeug zur Behandlung von Datum und Uhrzeit oder Zeitmessungen. Im Anhang an die Beschreibung der Prozeduren sind ist ein Beispiel gegeben, wie Operationen auf diesem Datentyp eingesetzt werden können.

DATETIME

TYPE DATETIME

Wirkung: Datentyp für Werte der Echtzeituhr.

:=

OP := (DATETIME VAR left, DATETIME CONST right)

Wirkung: Zuweisungsoperator für DATETIME.

nildatetime

DATETIME CONST nil datetime

Wirkung: Liefert den undefinierten Datetime Wert. nildatetime kann zur Initialisierung (:=), zum Vergleich (=, <>) und in Botschaften (put msg, get msg) verwendet werden.

Bei Verwendung von nil datetime in anderen Operationen werden folgende Resultate geliefert:

DATETIME                           :  nil datetime 
BOOL                               :  FALSE 
DINT                               :  dint0 
Jahr, Monate, Tag                  :  0 
Stunde, Minute, Sekunde, Millisek  :  -1
cputime

DINT PROC cputime

Wirkung: Liefert den aktuellen Wert der tasklokal verbrauchten Rechenzeit.

datetime

DATETIME PROC datetime

Wirkung: Liefert den aktuellen Wert der Echtzeituhr.

local datetime

PROC local datetime (DATETIME CONST dt)

Wirkung: Stellt tasklokal eine Uhrzeit ein. Auf diese Weise ist es möglich in der Task eine Zeit, die von der Uhr des Rechners verschieden ist, zu führen. Die Voreinstellung ist die für den Rechner gültige Echtzeit. Um eine veränderte Einstellung von local datetime wieder auf den Wert der Echtzeit zu bringen kann man local datetime (nil datetime) angeben. Danach sind beide Zeiten (wieder) gleich.

DATETIME PROC local datetime

Wirkung: Liefert den aktuellen Wert der tasklokalen Uhrzeit.

systemtime

DINT PROC systemtime

Wirkung: Liefert den aktuellen Wert der unverstellbaren Systemuhr.

Verknüpfungen

DATETIME OP + (DATETIME CONST dt val, DINT CONST period)

DATETIME OP - (DATETIME CONST dt val, DINT CONST period)

DINT OP - (DATETIME CONST first dt, second dt)

DINT OP MOD (DATETIME CONST dt val, DINT CONST period)

DINT OP * (INT CONST fak, DINT CONST period)

Vergleiche

BOOL OP = (DATETIME CONST left dt, right dt)

BOOL OP <> (DATETIME CONST left dt, right dt)

BOOL OP < (DATETIME CONST left dt, right dt)

BOOL OP > (DATETIME CONST left dt, right dt)

BOOL OP <= (DATETIME CONST left dt, right dt)

BOOL OP >= (DATETIME CONST left dt, right dt)

Konstanten

DINT PROC millisecond

DINT PROC second

DINT PROC minute

DINT PROC hour

DINT PROC day

DINT PROC week

millisecond

INT PROC millisecond (DATETIME CONST dt value)

Wirkung: Liefert die Millisekunden des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 0 und 999.

second

INT PROC second (DATETIME CONST dt value)

Wirkung: Liefert die Sekunden des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 0 und 59.

minute

INT PROC minute (DATETIME CONST dt value)

Wirkung: Liefert die Minuten des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 0 und 59.

hour

INT PROC hour (DATETIME CONST dt value)

Wirkung: Liefert die Stunden des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 0 und 23.

day

INT PROC day (DATETIME CONST dt value)

Wirkung: Liefert den Tag des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 1 und 31.

weekday

INT PROC weekday (DATETIME CONST dt value)

Wirkung: Liefert den Wochentag des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 1 (Montag) und 7 (Sonntag).

month

INT PROC month (DATETIME CONST dt value)

Wirkung: Liefert den Monat des Echtzeitwertes 'dt value'. Der Wertebereich des Resultats liegt zwischen 1 und 12.

year

INT PROC year (DATETIME CONST dt value)

Wirkung: Liefert das Jahr des Echtzeitwertes 'dt value'. Das Resultat kann alle INT Werte (auch negative) annehmen, jedoch nicht den Wert 0.

is leapyear

BOOL PROC is leapyear (DATETIME CONST dt value)

Wirkung: Liefert 'TRUE', falls der Datumswert 'dt value' in einem Schaltjahr liegt.

BOOL PROC is leapyear (INT CONST year)

Wirkung: Liefert 'TRUE', falls das Jahr 'year' ein Schaltjahr ist.

Beispiel

Für das Verständnis des Typs Datetime und der darauf definierten Operationen sollte man sich kurz auf den feinen Unterschied zwischen den 'dt value' und den 'period' Werten besinnen. Der erste Wert bezeichnet ein (hochgeradig, bis zur Millisekunde) genaues Datum, der zweite eine Zeitspanne. Man kann also die Zeitspanne zwischen zwei Datumswerten berechen, die gewünschte Größenangabe wird in Einheiten einer Zeitspanne angegeben. Um z.B. zu berechnen, wieviele Stunden die guten Vorsätze im neuen Jahr gehalten haben, gehe man wie folgt vor:

Beispiel:
DATETIME VAR nie wieder    := date("01.01.91") + time("15:37"), 
             egal ey       := date("04.01.91") + time("20:16"); 
 
put ((egal ey - nie wieder) DIV hour)

Konversion von Daten

date

TEXT PROC date (DATETIME CONST dt value)

Wirkung: Liefert einen Text mit dem Datumsanteil von 'dt value' in der Gestalt dd.mm.yy., oder falls das Datum außerhalb dieses Jahrhunderts liegt dd.mm.yyyy. Ein ungültiges Datum (nildatetime) wird als -.-.- dargestellt.

TEXT PROC date

Wirkung: Kurzform von date (datetime)

DATETIME PROC date (TEXT CONST date string)

Wirkung: Der Text 'date string' wird in einen DATETIME Wert konvertiert.
Beispiel:
date (" 89 ")       ->      1.1.1989 
date ("1989 ")      ->      1.1.1989 
date (" 089 ")      ->      1.1.0089 
date ("3. 6. 89")   ->      3.6.1989 
date (" -- ")       ->      nil datetime 
date ("..89 ")      ->      Fehler
time

TEXT PROC time (DATETIME CONST dt value, INT CONST stringlength, mmssxxx)

Wirkung: Liefert einen Text mit dem Uhrzeitanteil von 'dt value'. 'stringlength' gibt vor, wie lang das Resultat höchstens sein darf, 'mmssxxx'legt die Genauigkeit fest. Falls das Resultat kürzer als 'stringlength' ist, werden führende Leerzeichen ergänzt, falls die Darstellung nicht möglich ist, wird stringlength mal "*" ausgegeben.

'mmssxxx' bezeichnet die Genauigkeit:

Beispiel:
time (datetime, 2, 0)      ->   12 
time (datetime, 5, 2)      ->   12:34 
time (datetime, 8, 3)      ->   12:34:56 
time (datetime,10, 5)      ->   12:34:56.7 
time (datetime,11, 6)      ->   12:34:56.78 
time (datetime,12, 7)      ->   12:34:56.789

TEXT PROC time

Wirkung: Liefert Stunde, Minute der aktuellen Uhrzeit, entspricht also time (datetime, 5, 2)

TEXT PROC time (DATETIME CONST dt value)

Wirkung: Entspricht time (dt value, 5, 2)

TEXT PROC time (DINT CONST period, INT CONST stringlength, mmssxxx)

Wirkung: Der als Zeit interpretierte Wert 'period' wird in der Länge 'stringlength' und der Genauigkeit 'mmssxxx' geliefert. Die Stundenangabe kann dabei mehr als zwei Stellen annehmen.
Beispiel:
DINT VAR start; 
start := cputime ; 
 
(* getestetes Programm *) 
 
put (time (cputime - start, 15, 7));

TEXT PROC time (DINT CONST period, INT CONST stringlength)

Wirkung: Wie : time (period, stringlength, 4)

TEXT PROC time (DINT CONST period)

Wirkung: Wie : time (period, 8, 4)

dos datetime

INT PROC dos datetime (DATETIME CONST dt value)

Wirkung: Konvertiert einen DATETIME Wert in DOS Datum/Uhrzeitformat. Bei der Konversion wird beachtet, daß DOS nur Datum und Uhrzeit zwischen dem 1.1.1980 00:00:00 und dem 31.12.2099 23:59:58 kennt. Der geringeren Präzision der DOS Uhr, die nur gerade Werte für Sekunden kennt, wird Rechnung getragen, indem stets abgerundet wird.

Initialisierungen in Tasks

Initflag und Session sind für die Handhabung größerer Programmsysteme nützlich. Initflag erlaubt die Initialisierung von Paketen beim Neueinrichten einer Task. Die Initialisierung wird beim Neueinrichten von Sohntasks automatisch auf FALSE gesetzt, so daß eine Initialisierung genau beim ersten Aufruf einer Prozedur in einer Task erfolgen kann.

Session liefert eine »Sitzungsnummer«, die nach jedem Systemstart verändert wird, unabhängig davon, ob das System vor dem Neustart korrekt abgeschaltet wurde (shutup) oder durch zurückgesetzt wurde (RESET).

INITFLAG

TYPE INITFLAG

Wirkung: Deklaration einer Variable des Typs INITFLAG. Variablen dieses Typs werden bei Anlage einer neuen Task systemseitig auf FALSE gesetzt. Somit können in Prozeduren, die von der Vatertask »ererbt« wurden, nötige Initialisierungen durchgeführt werden.

:=

OP := (INITFLAG VAR flag, BOOL CONST flagtrue)

Wirkung: Zuweisungsoperator für die Initialisierung von INITFLAGs

initialized

BOOL PROC initialized (INITFLAG VAR flag)

Wirkung: Liefert den Wert des INITFLAGs flag in der aktuellen Task.

Bemerkung: Wenn INITFLAG in der Task A auf TRUE oder FALSE gesetzt wurde, dann liefert sie beim ersten Aufruf den entsprechenden Wert, danach immer TRUE (in der Task A!). Beim Einrichten von Söhnen wird die Flagge in den Sohntasks automatisch auf FALSE gesetzt. So wird erreicht, daß diese Prozedur in den neu eingerichteten Sohn- und Enkeltasks genau beim ersten Aufruf FALSE liefert.

Beispiel:
PACKET stack DEFINES push, pop: 
 
INITFLAG VAR in this task := FALSE ; 
INT VAR stack pointer ; 
ROW 1000 INT VAR stack ; 
 
PROC push (INT CONST value) : 
 
   initialize stack if necessary ; 
   .... 
 
ENDPROC push ; 
 
PROC pop (INT VAR value) : 
 
  initialize stack if necessary ; 
  .... 
 
ENDPROC pop . 
 
initialize stack if necessary : 
  IF NOT initialized (in this task) 
     THEN stack pointer := 1 
  FI . 
 
ENDPACKET stack
session

INT PROC session

Wirkung: Liefert eine »Sitzungsnummer«. Diese wird automatisch bei jedem Systemstart verändert. Das Bit 24 von session zeigt an, ob das System mit Treibern gestartet wurde.

Bemerkung: Es spielt keine Rolle, ob das System korrekt abgeschaltet worden war, oder ob es zurückgesetzt wurde.

Beispiel:
REP 
  INT VAR old session := session ; 
  WHILE session = old session REP pause (100) PER ; 
  putline ("Neuer Systemstart") 
PER; 
 
IF on (session, 24) THEN putline ("..mit Treibern..")FI;

Systemversion

Angaben zur Version des Gesamtsystems und der Module des L3 Systemkerns werden durch version bzw. kernel info ausgegeben.

kernel info

PROC kernel info

Wirkung: In einer temporären Datei werden Name, Erzeugungsdatum und Versionsnummer aller Module des L3 Systemkerns angezeigt.

PROC rts info

Wirkung: Analog für ELAN Laufzeitsystem (RTS).

PROC hardware info

Wirkung: Analog für Rechnerdaten.

version

TEXT PROC version

Wirkung: Liefert die Versionsnummer des L3 Systems.

installation report

PROC installation report

Wirkung: In eine Datei installation report werden Informationen zur verwendeten Hardware, Versionen der einzelnen L3 Komponenten etc geschrieben.

Globale Informationen

storage

PROC storage (INT VAR size, critical, used)

Wirkung: Liefert in den drei Variablen die Größe der L3 Partition ('size'), die Füllgrenze des Systems ('critical') und den aktuell vom System belegten Speicherplatz ('used') auf der Festplatte. Die Angabe erfolgt in Bytes.

Wenn das System größer als 'critical' Bytes wird, wird von der Speicherverwaltung kein Fixpunkt mehr geschrieben. Im Monitordialog erscheint dann die Meldung Speicherengpass - Dateien löschen!. Das System führt eine Notmüllabfuhr durch.

Falls vom Archiv eine Datei gelesen werden soll, die das System über die 'critical' Grenze wachsen ließe, so wird die Leseoperation mit der Meldung Speicherengpaß abgebrochen.

Bemerkung: Da ein Erreichen oder Überschreiten der 'critical' Grenze tunlichst vermieden werden sollte, kann für Tasks mitttels der Prozedur limit eingestellt werden, bei wieviel Prozent »Füllung« des Systems sie zeitweilig suspendiert werden sollen.

storage info

PROC storage info

Wirkung: Gibt im Monitordialog aktuelle Belegung und Größe der L3 Partition aus. Falls die Task nicht an ein Terminal gekoppelt ist, wartet die Ausgabe, bis wieder ein Terminal zugeordnet ist.

task info

PROC task info (INT CONST detailed)

Wirkung: Schreibt Informationen über alle Tasks in eine temporäre Datei und zeigt diese Datei. Durch den Parameter 'detailed' wird eingestellt, welche Angaben geliefert werden.

task info(1) gibt die Namen aller Tasks aus. Durch Einrückung wird die Vater/Sohn Beziehung dargestellt.

task info(2) gibt die Namen aller Tasks aus und für jede Task die bislang verbrauchte CPU Zeit, die Priorität, den Status und das zugeordnete Terminal.

task info(3) liefert Angaben wie task info (2), zusätzlich aber für jede Task noch den belegten Speicherplatz. Da systemweit »faul kopiert« wird, ist die Summe der hier angezeigten Speicherplatzangaben üblicherweise weitaus höher als der tatsächlich belegte Platz auf der Festplatte.

Bemerkung:
CPU Zeit:
liefert die reine Rechenzeit der Task. Bei Löschung einer Task wird die von ihr verbrauchte CPU Zeit der Vatertask zugeschlagen.

Priorität:
ist ein Wert zwischen 0 und 5. Diese Angabe besagt, jede wievielte prinzipiell zustehende Zeitscheibe an Rechenzeit die Task tatsächlich erhält. Intern wird eine Strategie verfolgt, die Ein-/Ausgabe - intensive Tasks vor rechenintensiven Tasks bevorzugt. Siehe dazu auch Kap. 4.10 Tasks.

Status:
der Zustand einer Task kann sein:

- busy -:
Task ist aktiv
wait:
Task wartet auf Botschaft
dead:
Keine Instruktion mehr ausführbar, die Task kann nur noch (von außen) gelöscht werden.
limt:
Systemgröße hat limit der Task überschritten.

Terminal:
Falls eine Task an ein Terminal gekoppelt ist, wird dessen Name angezeigt.

PROC task info

Wirkung: wie task info(1)

PROC task info (INT CONST detailed, TASK CONST root, BOOL CONST bros)

Wirkung: wie oben, jedoch wird das Taskinfo nicht für alle Tasks sondern nur für die Task 'root' und alle Nachkommen dieser Task angezeigt. 'bros' gibt an, ob das Taskinfo auch für die Geschwistertasks von 'root' und deren Nachkommen gezeigt werden soll.

PROC task info (INT CONST detailed, TASK CONST root)

Wirkung: wie taskinfo (detailed, root, TRUE), die Geschwister werden also mit angezeigt.

PROC task info (FILE VAR infofile)

Wirkung: wie oben, taskinfo (1) wird aber nicht in einer temporären Datei direkt angezeigt, sondern in die Datei 'infofile' geschrieben.

PROC task info (INT CONST detailed, FILE VAR infofile)

Wirkung: wie oben, taskinfo (detailed) wird aber nicht in einer temporären Datei direkt angezeigt, sondern in die Datei 'infofile' geschrieben.

PROC task info (INT CONST detailed, FILE VAR infofile)

Wirkung: wie oben, taskinfo (detailed) wird aber nicht in einer temporären Datei direkt angezeigt, sondern in die Datei 'infofile' geschrieben.

PROC task info (INT CONST detailed, TASK CONST root, BOOL CONST bros, FILE VAR infofile)

Wirkung: wie oben, taskinfo (detailed, root, bros) wird aber nicht in einer temporären Datei direkt angezeigt, sondern in die Datei 'infofile' geschrieben.

inf

PROC inf

Wirkung: Schreibt, ähnlich taskinfo(2), den Taskbaum mit zusätzlichen Informationen in eine temporäre Datei und zeigt diese an. inf zeigt für jede Task die vollständige TaskID, bestehend aus Taskindex und Versionsnummer an und zeigt den Kommunikationspartner der Task an. Die Tasknummern werden in hexadezimaler Darstellung angegeben.
Beispiel:
                  0071 0087  PRINTER   0:01:50  2 wait   -     -
                  0076 00b0    -       0:01:01  0 wait  0071   -
Die (unbenannte) Sohntask von PRINTER (Index 0076, Version 00b0) wartet auf einen Auftrag der Vatertask (Index 0071). PRINTER selbst steht im offenen Warten, nimmt also Aufträge beliebiger Tasks an.

PROC inf (TASK CONST root)

Wirkung: inf wird für den Teil des Taskbaums unterhalb der Task 'root' ausgegeben.

PROC inf (FILE VAR file, TASK CONST root)

Wirkung: inf wird für den Teil des Taskbaums unterhalb der Task 'root' in das sequential file 'file' ausgegeben.

Systemsteuerung

Die folgenden Operationen haben Wirkung auf das Gesamtsystem, da sie Aktionen des L3 Systemkerns zur Folge haben. Die Prozeduren sind nur im Systemzweig (SYSUR und Nachkommen), also in Task mit system privilege verfügbar.

collect garbage blocks

PROC collect garbage blocks

Wirkung: Löst eine außerplanmäßige Gesamtmüllabfuhr aus und wartet deren vollständige Durchführung ab. Die Wirkung der Müllabfuhr tritt erst nach Gültigwerden des darauffolgenden Fixpunkts zutage. Um also Platz im System freizuräumen, ist z.B. in der Task OPERATOR einzugeben:
Beispiel: collect garbage blocks; fixpoint; unlink

Wenn OPERATOR sich abkoppelt, wird die Wirkung der Müllabfuhr sichtbar.

fixpoint

PROC fixpoint

Wirkung: Löst einen außerplanmäßigen Fixpunkt aus und wartet dessen vollständige Durchführung ab.

block

PROC block (TASK CONST task)

Wirkung: Die Task wird solange von der Verarbeitung ausgeschlossen, bis die Blockade mit unblock aufgehoben wird oder der Task eine Botschaft zugestellt wird. block dient dazu, einer Task, die -busy- ist, die Rechenzeit zu entziehen. Wenn die Task Ein-/Ausgaben macht, wird die Blockade sofort wieder aufgehoben, wenn die Quittung einer Botschaft empfangen wird oder dergleichen.

unblock

PROC unblock (TASK CONST task)

Wirkung: Die Blockade der Task wird aufgehoben.

end

PROC end (TASK CONST victim)

Wirkung: Nach Kontrollfrage (mit Prozedur yes) wird an die Task SUPERVISOR der Auftrag geschickt, die Task 'victim' zu löschen. Der Auftrag wird nur akzeptiert, wenn die auftraggebende Task eine höhere Privilegstufe als 'victim' hat oder 'victim' ein Nachkomme des Auftraggebers ist. Aus dem Systemzweig können also Task des Benutzerzweiges (son(public)) gelöscht werden. Falls der Auftrag akzeptiert wird, beendet SUPERVISOR 'victim' und damit implizit auch alle Nachkommen von 'victim'.

PROC end (TASK CONST victim, QUIET CONST quiet)

Wirkung: Löschen ohne Kontrollfrage.

PROC end

Wirkung: Wie: end (myself)

halt

PROC halt (TASK CONST victim)

Wirkung: An die Task SUPERVISOR wird der Auftrag geschickt, der Task 'victim' einen Fehler zu senden. Die Wirkung in 'victim' entspricht dem Auftreten eines Laufzeitfehler im gerade laufenden Programm. Näheres siehe Kapitel 11.

Der Auftrag wird nur akzeptiert, wenn die auftraggebende Task eine höhere Privilegstufe als 'victim' hat oder 'victim' ein Nachkomme des Auftraggebers ist.

limit

PROC limit (TASK CONST task, INT CONST limit)

Wirkung: 'task' wird von der Speicherverwaltung blockiert, wenn 'limit' Prozent des Speicherplatzes des Systems belegt sind. Diese Einstellung kann nur von Tasks mit Systemprivileg vorgenommen werden!
Fehler: 'limit'-Angabe muß zwischen 1 und 100 liegen

INT PROC limit (TASK CONST task)

Wirkung: Liefert den eingestellten Wert für 'task'.

prio

PROC prio (TASK CONST task, INT CONST prio)

Wirkung: Die Priorität von 'task' wird auf 'prio' gesetzt. Diese Einstellung kann nur von Tasks mit Systemprivileg vorgenommen werden!

INT PROC prio (TASK CONST task)

Wirkung: Liefert die Priorität von 'task'.

Wiederherstellung von Systemtasks

Ein »frisches« L3 System besteht aus einer Reihe von Tasks, die die Grundfunktionalität des Systems bereitstellen. Es kann durch Fehler (übrigens fast immer Benutzerfehler, aber Schwamm drüber..), dazu kommen daß solche Systemtasks verlorengehen. Die Tasks lassen sich jedoch meistenteils problemlos wieder einrichten. Für alle Tasks des Standard-Taskbaums ist in diesem Abschnitt angegeben, wie Sie notfalls neu gestartet werden können.

Die folgende Hinweise sind als Hilfe in der Not zu betrachten, denn munteres Löschen von Systemtasks und Experimente in diesen Tasks sind ein wohlfeiler Weg zum Totalschaden.

Standard-Taskbaum

SUPERVISOR 
    UR 
        PUBLIC 
    SYSUR 
        OPERATOR 
            gendos 
            kopieren 
            fixpoint 
                -
            shutup 
        UTILITIES 
            PRINTER 
                -
            SCREEN PRINTER 
                -
            configurator 
            STREAMER 
            POST 
            EUMEL 
            DOSB 
            DOSA 
            ARCHIVE B 
            ARCHIVE A 
        DRIVERS 
            SYSHW 
                COM8250 
                    COM1.out 
                    COM1.in 
                DIGI 
                    DIGI8.out 
                    .... 
                    DIGI1.in 
                S0 
                hardware configurator 
        SYSIO 
            meinterminal 
                meinterminal.term 
                meinterminal.kbd 
                meinterminal.dsp 
            CONSOLE 
                CONSOLE.term 
                CONSOLE.kbd 
                CONSOLE.dsp

SUPERVISOR

Renovierung: Wenn der SUPERVISOR weg ist, haben Sie kein L3 System mehr.

UR

Renovierung: Ebenfalls keine Abhilfe.

PUBLIC

Renovierung: Als Sohntask von UR einrichten, dann: free manager.

SYSUR

Renovierung: Siehe UR.

OPERATOR

Renovierung: Als Sohntask von SYSUR einrichten. Anschließend "gendos" etc.

gendos

Renovierung: In Operator: generate gendos

kopieren

Renovierung: In Operator: generate kopieren

fixpoint

Renovierung: In Operator: generate fixpoint

- (Unbenannte Sohntask von fixpoint)

Renovierung: In fixpoint Fixpunktintervall neu einstellen.

shutup

Renovierung: In Operator: generate shutup

UTILITIES

Renovierung: nein

PRINTER

Renovierung: Als Sohntask von UTILITIES einrichten. Von Diskette mit Druckeranpassungen passenden Druckertreiber insertieren.

- (Unbenannte Sohntask von PRINTER)

Renovierung: In PRINTER: start spool

SCREEN PRINTER

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando : start screen printer.

- (Unbenannte Sohntask von SCREEN PRINTER)

Renovierung: Wird bei obigem Kommando erzeugt.

configurator

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando: configuration manager. Anschließend müssen Konfigurationstabellen von Diskette geladen werden.

STREAMER

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando: streamer manager.

POST

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando: mail manager.

EUMEL

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando: eumel archive manager (/"ARCHIVE A"). Falls Sie eine zweite Task dieser Funktionalität einrichten wollen, um z.B. auch 3,5" EUMEL Disketten zu lesen, müssen Sie in dieser Task entsprechend das Kommando eumel archive manager (/"ARCHIVE B") geben.

DOSA / DOSB

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task l3dos starten. Anschließend:
net share archive c:\ 
        l3 cache manager (/"ARCHIVE A")
DOSB ist dementsprechend als »cache manager« von ARCHIVE B einzurichten.

ARCHIVE A / ARCHIVE B

Renovierung: Als Sohntask von UTILITIES einrichten. In der neuen Task Kommando: archive a manager bzw. archive b manager.

DRIVERS

Renovierung: Als Sohntask von SYSUR einrichten. In der neuen Task Kommando: free manager.

SYSHW

Renovierung: Als Sohntask von DRIVERS einrichten. In der neuen Task Kommando: syshw manager.

COM8250 COM1.out COM1.in

Renovierung: Diese und alle anderen Treiber (S0, DIGI) werden neu gestartet, wenn das System neu gestartet wird oder wenn der Task SYSHW ein HALT zugestellt wird. Natürlich werden die Treiber nur dann neu gestartet, wenn sie in hardware configurator aktiviert sind.

hardware configurator

Renovierung: Wird neu gestartet, wenn ein neuer syshw manager erzeugt wird.

SYSIO

Renovierung: Ohne SYSIO ist das System prinzipiell lebendig und faktisch tot.

meinterminal meinterminal.term meinterminal.kbd meinterminal.dsp

Renovierung: Wird durch entsprechende Auswahl in der Task configurator neu gestartet.

CONSOLE

Renovierung: Wird neu gestartet, wenn im configurator der Punkt »Tastatur an der CONSOLE einstellen« gewählt wird. Auch wenn der Systemkern von Diskette gestartet wird und der Punkt »Systemstart ohne Treiber« gewählt wird, wird die CONSOLE neu erzeugt. Das klappt (natürlich) nur, wenn es die Task configurator gibt und dort die benötigten Umsetztabellen sind.


next up previous contents index
Next: Fehlerbehandlung Up: L3 Referenzhandbuch Previous: Kommunikation mit Terminals

Michael Hohmuth
Sun Mar 31 04:49:53 MET DST 1996