1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
EUMEL-Benutzerhandbuch
TEIL 12: SPOOLER / OPERATOR
1. Spooler-Übersicht
Ein "Spooler" ist eine Warteschlange von Datenräumen#ie# (Dateien) vor einem
"Worker":
+------------+ +------------+
-----> | | | |
-----> | spooler | ------------> | worker |
-----> | | | |
+------------+ +------------+
Der Spooler puffert Dateien, die von beliebigen Tasks geschickt werden kön-
nen, in seiner Warteschlange und gibt sie der Reihe nach dem Worker zur
eigentlichen Verarbeitung. Ein typischer Einsatzfall (aber nicht der einzige)
für ein solches System ist der EUMEL-Drucker in Multi-User-Systemen. Unab-
hängig davon, ob der Drucker gerade aktiv ist und wieviele Dateien noch auf
den Ausdruck warten, kann man seine Datei dem Druckspooler schicken und
sofort danach weiterarbeiten.
Da jeder Spooler und auch jeder Worker eine eigene Task ist, können Spooler
nur im Multi-User-Systemen eingesetzt werden.
Im folgenden wird nur die anwenderseitige Schnittstelle eines Spoolers be-
schrieben.
Merke: Ein Spooler puffert Dateien für einen Worker.
2. Die Benutzung eines Spoolers
Jeder Spooler im System ist eine eigene Task und hat dementsprechend einen
Tasknamen, über den er angesprochen werden kann. So heißt der Druckspooler
beispielsweise " PRINTER".
Jede Task kann jedem Spooler durch Aufruf von 'save' eine Datei schicken.
Beispiel:
save ("datei name", task ("spooler name"))
(Vergl. auch TEIL 7). In der Regel ist ein SPOOLER für (mindestens) einen
Drucker in einem EUMEL-System vorhanden. Dieser kann über den internen
Task-Bezeichner 'print' angesprochen werden. Beispiel:
save ("datei name", printer)
Eine so übergebene Datei kann man durch
erase ("datei name", printer)
aus der Warteschlange löschen. (Natürlich nur solange sie sich noch in dieser
Warteschlange befindet). Dabei kann man nur auf solche Dateien zugreifen, die
aus der eigenen Task stammen. Durch Aufruf von
list (printer)
wird die aktuelle Warteschlange des angegebenen Spoolers auf dem Terminal
angezeigt, so daß man sich über die Anzahl der Dateien und die Position der
eigenen Dateien im Spooler informieren kann.
Aufbauend auf diesen allgemeinen Kommandos können weitere für spezielle
Spooler programmiert werden. So gibt es für den Spooler 'printer' die Proze-
duren
print und print ("datei name")
die im wesentlichen auf
save ("datei name", printer)
zurückgeführt werden.
Merke: Einem SPOOLER kann man eine (oder mehrere) Dateien mit 'save'
schicken. Mit 'list' kann man sich über die Dateien im SPOOLER informieren.
Einem Drucker-SPOOLER übergibt man mit 'print' eine Datei.
3. Privilegierte Spooler-Kommandos
Gewisse Kommandos können einer #ib#Spooler-Task#ie# direkt im Dialog (ähn-
lich wie im 'maintenance'-Zustand eines globalen Datei-Managers) gegeben
werden. Dazu muß der Spooler mit 'continue' an ein Terminal geholt werden.
Ist der SPOOLER durch ein Paßwort, so sind diese privilegierten Kommandos
nicht für jeden Benutzer zugänglich.
break
PROC break
Zweck: Beendet den Dialogzustand des Spoolers. Der Spooler koppelt sich
vom Terminal ab und geht in seinen normalen Verarbeitungsmodus
über.
first
PROC first
Zweck: Vorziehen einer Datei in der Warteschlange auf den ersten Platz.
Alle Dateien von der zweiten an werden im Dialog zum Vorziehen
angeboten.
start
PROC start
Zweck: Die (vorher gestoppte) Worker-Task wird neu kreiert und ge-
startet.
stop
PROC stop
Zweck: Die Worker-Task wird abgebrochen und gelöscht. Damit wird auch
ein von ihr belegetes Terminal wieder frei.
Hinweis: Die Kommandos 'start/stop' sind gut dazu geeignet, die Verarbeitung
einer Datei durch einen Worker (z.B. Druckoutput) abzubrechen, bei
Hardwareeingriffen zu stoppen oder Worker (wie z.B. Drucker) nur
zeitweise zu betreiben.
Hinweis: Wenn der Worker mit Verzögerung abgebrochen werden soll, kann man
den Spooler an ein Terminal holen und dann so lange mit der Eingabe
von 'stop' warten, bis der Worker mit der gerade bearbeiteten Datei
fertig ist. Der Spooler kann in dieser Zeit nicht von anderen Tasks
oder dem Worker angesprochen werden.
4. Der OPERATOR
Im folgenden Abschnitt wird die standardmäßig implementierte Task OPERATOR
erläutert. Erweiterungsmöglichkeiten sind im Systemhandbuch beschrieben. Dem
OPERATOR stehen gewisse privilegierte Kommandos zur Verfügung. Diese Kom-
mandos (System abschalten, fremde Tasks löschen u.a) werden vom "normalen"
Benutzer des Multi-User-Systems nicht benötigt. Sie sind nur für den
"Operateur" interessant. Es empfiehlt sich, OPERATOR mit einem Paßwort zu
versehen, damit die priviligierten Kommandos nicht jedem Benutzer zur Ver-
fügung stehen.
Einschalten des EUMEL-Systems
Wie ein EUMEL-System eingeschaltet wird, kann hier nicht beschrieben werden,
weil dies abhängig von speziellen Rechnern ist (Lage des Ein/Aus-Schalters
u.a.m.). Üblicherweise liefern die Hersteller für diesen Zweck bei der Aus-
lieferung Anweisungen mit.
Nach Einschalten des Rechnersystems befindet man sich in der Task OPERATOR.
Diese Task dient zum kontrollierten Ein- und Ausschalten des EUMEL-Systems.
Nach dem Einschalten wird man automatisch von der Task OPERATOR nach dem
aktuellen Datum und der Uhrzeit gefragt. Nach Eingabe dieser Werte erfolgt
gib kommando :
Der Benutzer befindet sich also in der Monitor-Ebene (vergl. dazu auch
TEIL 2). Um die Task OPERATOR vom Terminal abzukoppeln, gibt man
break
Nach Betätigen der SV-Taste erscheint dann
gib supervisor kommando :
Nun kann man mit 'begin' oder 'continue' eine neue Task einrichten oder mit
einer alten Task in der Arbeit fortfahren.
Merke: Nach dem Einschalten gibt man das Datum und die Uhrzeit an.
Dann koppelt man die Task OPERATOR mit 'break' ab.
EUMEL-System ausschalten
Nachdem die Arbeiten in der Benutzer-Task beendet wurden, koppelt man die
Task mit
break
vom Terminal ab oder beendet die Task mit
end
Achtung: Bei 'end' werden alle Dateien der Task gelöscht.
Nach Betätigen der SV-Taste kann nun ein Supervisor-Kommando gegeben
werden. Um das EUMEL-System kontrolliert auszuschalten, muß man die Task
OPERATOR wieder an das Terminal holen. Das erfolgt mit
continue ("OPERATOR")
Die OPERATOR-Task meldet sich mit
gib kommando :
Nun kann man das Kommando
shutup
geben, welches das System kontrolliert abschließt. 'shutup' garantiert, daß
alle Dateien auf dem Hintergrund des EUMEL-Systems gesichert werden. Wird
das EUMEL-System ohne 'shutup' ausgeschaltet (z.B. indem der Rechner einfach
ausgeschaltet wird), können die Informationen, die seit dem letzten Fixpunkt
(üblicherweise 15 Minuten) aufgelaufen sind, verloren sein.
Merke: In der Task OPERATOR wird mit dem Kommando 'shutup' das EUMEL-System
kontrolliert abgeschaltet.
Übersicht über die #ib#OPERATOR-Kommandos
end
PROC end (TASK CONST task)
Zweck: Löschen der Task 'task'. Hierbei findet keine Paßwortüberprüfung
statt. Darum sollte die Task OPERATOR auch mit einem Paßwort
versehen sein, weil man vom OPERATOR jede Task löschen kann.
Beispiel:
end (task ("hugo")) (* oder: *)
end (/"hugo")
set date
PROC set date
Zweck: Einstellen des Datums und der Uhrzeit. Das Erfragen der Werte
erfolgt interaktiv.
shutup
PROC shutup
Zweck: Kontrolliertes Herunterfahren des gesamten Systems. Alle Tasks
bleiben mit ihren Daten erhalten. Beim Start des Systems meldet
sich die OPERATOR-Task wieder auf dem gleichen Terminal. Das
Kommando sollte deshalb möglichst nur am Terminal 0 gegeben
werden. Nach dem Start sollte der OPERATOR mit 'break' vom
Terminal abgekoppelt werden.
|