Next: Fehlerbehandlung
Up: L3 Referenzhandbuch
Previous: Kommunikation mit Terminals
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.
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)
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.
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;
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.
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.
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'.
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: Fehlerbehandlung
Up: L3 Referenzhandbuch
Previous: Kommunikation mit Terminals
Michael Hohmuth
Sun Mar 31 04:49:53 MET DST 1996