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