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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
|
#type ("trium8")##limit (11.0)#
#start(2.5,1.5)##pagelength (17.4)#
#block#
#headeven#
% EUMEL-Netzbeschreibung
#end#
#headodd#
#center#Inhalt#right#%
#end#
#type ("triumb12")#
1. Einleitung
Teil 1: Netz einrichten und benutzen
#type ("trium8")#
1. Benutzung des Netzes
2. Hardwarevoraussetzungen
3. Einrichten des Netzes
4. Informationsmglichkeiten
5. Eingriffsmglichkeiten
6. Fehlerbehebung im Netz
#type ("triumb12")#
Teil 2: Arbeitsweise der Netzsoftware
#type ("trium8")#
1. Die Netztask
2. Protokollebenen
3. Stand der Netzsoftware
#page#
#headodd#
#center#Einleitung#right#%
#end#
#type("triumb12")#
1. Einleitung #type("trium8")#
Das EUMEL-Netz dient dazu mehrere EUMEL-Rechner (sog. Stationen) mit-
einander zu koppeln. Diese Kopplung wird von Betriebsystem dazu benutzt, das
Sendungskonzept (siehe Systemhandbuch 1.7, Intertaskkommunikation) so auszu-
dehnen, da Tasks verschiedener Stationen einander Datenrume zusenden
knnen. Auf dem Sendungskonzept aufbauende Konzepte nutzen daher automa-
tisch das Netz aus: So ist es z.B. mglich
- von einer Station aus auf einer anderen zu Drucken,
- in PUBLIC einer anderen Station Dateien zu sichern (save), vorausgesetzt, da
PUBLIC dort ein free global manager ist,
- auf einer anderen Station zu archivieren (z.B. wenn das eigene Archivlaufwerk
defekt ist oder ein anderes Format hat).
Das Netz kann ab EUMEL-Version 1.7.3 eingesetzt werden.
#type("triumb12")#
Teil 1: Netz einrichten und benutzen
1. Benutzung des Netzes #type("trium8")#
#headodd#
#center#Teil 1: Netz einrichten und benutzen#right#%
#end#
Zur Benutzung des Netzes stehen folgende Operatoren und Prozeduren zur
Verfgung:
1.1
TASK OP / (INT CONST station, TEXT CONST taskname)
liefert die Task #on("bold")#taskname#off("bold")# von der Station #on("bold")#station#off("bold")#.
Wenn die Station #on("bold")#station#off("bold")# nicht am Netz ist oder nicht eingeschaltet ist, wird
solange gewartet, bis das der Fall ist.
Fehlerflle:
- task "..." gibt es nicht
Die angeforderte Task gibt es in der Zielstation nicht.
- Collectortask fehlt
Das Kommando #on("bold")#define collector#off("bold")# wurde nicht gegeben (siehe 4.2).
- Station x antwortet nicht
Eine nicht vorhandene oder abgeschaltete Station wurde angesprochen.
Hinweis: Dieser Fehler wird angenommen, wenn eine berwachungszeit
von ca. 30 Sekunden verschrichen ist, ohne da Station x die
Taskidentifikation angeliefert hat.
Beispiel:
list (5/"PUBLIC")
Dateiliste von PUBLIC auf Station 5 wird angefordert.
1.2
TASK OP / (INT CONST station, TASK CONST task)
liefert
station / name (task) .
Beispiel:
list (4/archive)
1.3
INT PROC station (TASK CONST task)
liefert die Stationsnummer der Task #on("bold")#task#off("bold")#.
Beispiel:
put (station (myself))
gibt die eigene Stationsnummer aus.
1.4
PROC archive (TEXT CONST archivename, INT CONST station)
dient dazu das Archiv auf der Station #on("bold")#station#off("bold")# anzumelden.
Beispiel:
archive ("std", 4); list (4/archive)
gibt das Inhaltsverzeichnis der Archivfloppy im Laufwerk der Station 4 aus.
Hinweis: Vergessen Sie bei solchen Querarchivierungen nicht die Stations-
angabe bei jedem einzelnen Archivkommando (z.B fetch ("xxx", #on("bold")#4/#off("bold")#
archive).
Hinweis: Querarchivieren ist langsam. Verwenden Sie es nur, wenn Sie Flop-
pyformate umsetzen wollen.
1.5
PROC free global manager
dient dazu, die eigene Task ber das Netz ansprechbar zu machen. Jede
andere Task im Netz kann dann die blichen Manageraufrufe ('save', 'fetch',
u.s.w.) an die eigene Task machen, sofern diese nicht an ein Terminal gekop-
pelt ist.
Die Task wird (wie bei 'break') abgekoppelt und meldet sich in Zukunft mit
'maintenance' statt mit 'gib kommando'.
Beispiel:
An Station 4 ruft man in der Task 'hugo' das Kommando #on("bold")#free global manager#off("bold")#
auf. Anschlieend kann man von jeder Station aus z.B. 'list (4/"hugo")' u.s.w.
machen.
1.6
TEXT PROC name (TASK CONST t)
Diese (schon immer vorhandene) Prozedur wurde dahingehend erweitert, da der
Name einer Task einer anderen Station ber Netz angefordert wird.
Fehlerfall:
Station x antwortet nicht
#type("triumb12")#2. Hardwarevoraussetzungen#type("trium8")#
2.1 Zwei Stationen
Sie knnen zwei Stationen miteinander Vernetzen, wenn Sie dafr an jeder
Station eine V24-Schnittstelle zur Verfgung stellen.
Diese beiden Schnittstellen verbinden Sie mit einem Kabel zur Rechner-
kopplung (siehe Systemhandbuch 1.7 Teil 2).
2.2 Mehrere Stationen
Wenn Sie mehr als zwei Stationen vernetzen wollen, brauchen neben je
einer V24 an jeder Station noch je eine Netzanschlubox.
Jede Box besitzt eine V24-Schnittstelle zum Anschlu an die V24-
Schnittstelle der zugeorneten Station und eine weitere Schnittstelle zur
Verbindung der Boxen untereinander.
#type("triumb12")#3. Einrichten des Netzes #type("trium8")#
Hinweis: Dieses Kapitel ist nur fr Systembetreuer wichtig.
3.1 Legen Sie Stationsnummern fr die am Netz beteiligten Rechner fest (von 1 an
aufsteigend).
Die Boxen haben ebenfalls Stationsnummern. Die Stationsnummern der Box
und des zugeordneten Rechners mssen bereinstimmen.
3.2 Holen Sie an jeder Station die Task #on("bold")#configurator#off("bold")# an ein Terminal und geben Sie
das Kommando #on("bold")#define collector ("net port")#off("bold")#. Geben Sie auerdem das
Kommando #on("bold")#define station (x)#off("bold")#, wobei #on("bold")#x#off("bold")# die gewhlte Stationsnummer ist.
Hinweis: Taskkommunikationen, die zu dem Zeitpunkt laufen, fhren zu feh-
lerhaften Verhalten. Dies liegt daran, da durch #on("bold")#define station#off("bold")# alle
Task-Id's gendert werden mssen, weil eine Task-Id u.a. die
Stationsnummer der eigenen Station enthlt (siehe 2.3). TASK-
Variable, die noch Task-Id's mit keiner oder falscher Stationsnum-
mer enthalten, knnen nicht mehr zum Ansprechen einer Task
verwendet werden.
Beispiel: Der Spoolmanager (siehe Benutzerhandbuch 1.7 Teil 12) richtet
beim Kommando #on("bold")#start#off("bold")# einen Worker ein und merkt sich dessen
Task-Id in einer TASK-Variablen, um sicherzustellen, da nur der
Worker Dateien zum Drucken abholt. Wird jetzt das Kommando #on("bold")#
define station#off("bold")# gegeben, kann der Spoolmanager seinen Worker
nicht mehr identifizieren, weil der Worker eine neue Task-Id er-
halten hat. Man mu daher den Worker lschen und mit dem
Kommando #on("bold")#start#off("bold")# im Spoolmanager wieder neu einrichten.
Sinnvollerweise gibt man #on("bold")#define station#off("bold")# sofort nach den Laden eines
frischen Systems von Archiv.
Konfigurieren Sie mit dem Kommando #on("bold")#configurate#off("bold")# den fr das Netz vorgese-
henen Kanal auf
- transparent
- 9600 Baud (Standardeinstellung der Boxen)
- RTS/CTS-Protokoll
- groen Puffer
- 8 bit
- even parity
- 1 stopbit.
Falls diese Einstellungen nicht alle angeboten werden, klren Sie mit Ihrem
Rechnerlieferanten, ob und wie diese Einstellungen erreicht werden knnen.
Hinweis: Notfalls kann auf das RTS/CTS-Protokoll verzichtet werden, wenn
der Eingabepuffer der Station gro genug ist. Die Anzahl simultan
laufender Netzkommunikationen ist dann auf
puffergre DIV 150
begrenzt (bei Z80, 8086: 3; bei M20: 10).
Hinweis: Es knnen auch andere Baudraten (2400, 4800, 19200) an der Box
eingestellt werden.
3.3 Achten Sie bei der Verbindung von der Station zur Netzbox (bzw. zur Gegen-
station bei einem Zweistationennetz ohne Boxen) darauf, da neben den
Empfangs- und Sendeleitungen auch die Leitungen RTS und CTS verdrahtet
werden, also ein 5 poliges Kabel verwendet wird (siehe Systemhandbuch 1.7
Teil 2). Die Pin-Belegung der Boxen entspricht den dortigen Angaben.
Beispiel:
Verbindung eines CSK-Systems mit der Box:
Stecker Stecker
Pin Pin
2 <---------> 3
3 <---------> 2
4 <---------> 5
5 <---------> 4
7 <---------> 7
3.4 Richten Sie eine Task #on("bold")#net#off("bold")# unter #on("bold")#SYSUR#off("bold")# ein und insertieren Sie dort die Datei-
en
net report/M
basic net
net manager/M.
Beantworten Sie die Frage nach dem Kanal fr das Netz und nach der Flu-
kontrolle (RTS/CTS).
#type("triumb12")#4. Informationsmglichkeiten #type("trium8")#
In der Task #on("bold")#net#off("bold")# wird eine Datei #on("bold")#report#off("bold")# gefhrt in der Fehlersituationen des
Netzes verzeichnet werden. Diese Datei kann in jeder anderen Task mit #on("bold")#list
(/"net")#off("bold")# angezeigt werden.
In jeder Task kann durch das Kommando #on("bold")#list (/"net port")#off("bold")# eine bersicht ber
die momentan laufenden Netzbertragungen der eigenen Station erhalten
werden.
#type("triumb12")#5. Eingriffsmglichkeiten #type("trium8")#
#headodd#
#center#Eingriffsmglichkeiten#right#%
#end#
5.1 Jede Task kann Sende- und Empfangsstrme, die bei #on("bold")#list (/"net port")#off("bold")# gemel-
det worden sind und die eigene Task betreffen, abbrechen. Hierzu ist das
Kommando #on("bold")#erase ("x",/"net port")#off ("bold")# zu geben, wobei x die Stromnummer (aus
dem 'list') ist.
Unberechtigte Lschversuche werden abgewiesen.
Von der Task 'net' aus knnen jedoch damit beliebige Strme abgebrochen
werden.
5.2 Durch das Kommando #on("bold")#start#off("bold")# kann von der Task 'net' aus das Netz neu gestartet
werden. Dabei werden alle augenblicklichen Netzkommunikationen gelscht.
Die Tasks 'net port' und 'net timer' werden dabei gelscht und neu eingerich-
tet.
#on("bold")#start (kanal, quit)#off("bold")# wirkt wie #on("bold")#start#off("bold")#. Zustzlich wird als Netzkanal 'kanal' eingestellt
und maximal 'quit' Empfangsstrme zugelassen. 'quit' ist auf 3 zu setzen,
wenn der Kanal ohne RTS/CTS angeschlossen ist (siehe 3.2).
#type("triumb12")#6. Fehlersuche im Netz #type("trium8")#
Fehler im Netz knnen sich verschiedenartig auswirken. Im Folgenden wird auf
einige Beispiele eingegangen:
Beispiel:
Auf #on("bold")#list (4/public)#off("bold")# erfolgt die Meldung 'Station 4 antwortet nicht'.
Fehlermglichkeiten:
- Station 4 gibt es nicht am Netz.
Abhilfe: Richtige Station angeben.
- Station 4 ist nicht eingeschaltet.
Abhilfe: Station 4 einschalten. Kommando erneut geben.
- Netztask an Station 4 ist nicht arbeitsfhig.
Abhilfe: Kommando 'start' in der Task 'net'.
- Stationsnummern und Boxnummern stimmen nicht berein.
Abhilfe: Mit 'define station' Stationsnummern korrigieren (siehe 3.2).
- Verbindung Rechner/Box am eigenen Rechner oder an Station 4 fehlt.
Abhilfe: Verbindungen berprfen. Durch Ansprechen einer dritten Station
kann oft schnell geklrt werden, welche Rechner/Box-Verbindung
defekt sein mu.
- Verbindung der Boxen untereinander defekt.
Abhilfe: Fehlende Verbindung, Masseschlu und Dreher (keine 1:1 Ver-
bindung) berprfen und beheben.
Hinweis: Liegt z.B. ein Masseschlu vor, so kann es durchaus sein, da
Boxen, die nicht in der Nhe des Masseschlu stehen noch mitei-
nander arbeiten knnen. Man kann aus der Tatsache, da zwei
Boxen miteinander arbeiten knnen, also nicht schlieen, da man
nicht nach diesem Fehler suchen mu.
Beispiel:
Auf #on("bold")#list (4/public)#off("bold")# erfolgt keine Reaktion.
- Station 4 ist whrend dieser Sendung zusammengebrochen.
Abhilfe: Station 4 wieder starten. Die Bearbeitung des 'list'-Kommandos
wird automatisch wieder aufgenommen.
- PUBLIC auf Station 4 ist nicht im Managerzustand.
Abhilfe: PUBLIC in den Managerzustand versetzen.
Hinweis: Das Netz hat nocht nicht die volle Sendungslogik des EUMEL. So
wird nur ca. 10 Minuten lang versucht, eine Sendung zuzustellen.
Danach wird die Sendung gelscht. Ist dies eingetreten, so mu
das list-Kommando erneut gegeben werden.
- Fehler in der Netzhardware.
berprfen Sie, ob
- die Boxen eingeschaltet sind,
- die Bereitlampe blinkt (wenn nicht: RESET an der Box)
- die V24-Kabel richtig stecken,
- die Boxen untereinander verbunden sind (1 zu 1 Verbindungen der 5
poligen Diodenbuchsen).
- Die Netzsoftware ist auf einen nicht vorhergesehenen Fehler gelaufen.
Dieser wird im Report vermerkt.
Abhilfe: Geben Sie in der Task #on("bold")#net#off("bold")# das Kommando #on("bold")#start#off("bold")#. Dadurch wird die
Netzsoftware neu gestartet. Alle Netzkommunikationen dieser
Station gehen verloren.
Beispiel:
Auf #on("bold")#list (4/public)#off("bold")# erfolgt die Meldung 'Collectortask fehlt'.
- In der Task 'configurator' wurde das Kommando 'define collector' (siehe 3.2)
nicht gegeben.
- Die Task 'net port' existiert nicht mehr.
Abhilfe: Kommando 'start' in der Task 'net'.
Beispiel:
Nach #on("bold")#fetch ("hugo",4/public)#off("bold")# sind Teile von der Datei "hugo" verflscht.
- Die V24-Verbindung zur Box ist nicht in Ordnung.
Abhilfe: Abstand zwischen Rechner und Box verkrzen; Baudrate ernie-
drigen; Durch Wechseln der V24-Schnittstelle feststellen, ob
diese defekt ist.
Hinweis: Die Verbindung zwischen den Boxen ist durch Prfsummen abge-
sichert (Hardware).
#headodd#
#center#Teil 2: Arbeitsweise der Netzsoftware#right#%
#end#
#page#
#type("triumb12")#
Teil 2: Arbeitsweise der Netzsoftware
1. Die Netztask #type ("trium8")#
In diesem Kapitel wird beschrieben, wie eine Netztask in das System
eingebettet ist und welche Aufgaben sie hat. Unter Einhaltung dieser
Konzepte kann die ausgelieferte Netztask so gendert werden, da sie
beliebige andere Netzhardware untersttzt. Z.Zt. ist die Netzsoftware noch
nicht so gegliedert, da nur eine hardwareabhngige Komponente ausgetauscht
werden mu.
Die Kommunikation zwischen Tasks im EUMEL-Betriebssystem basiert auf einem
Rendevouskonzept: Die Zieltask einer Sendung mu empfangsbereit sein, wenn die
Quelltask sendet.
Die Kommunikationsprozeduren auf der niedrigsten Ebene sind 'send' (Senden)
und 'wait' (Warten auf Empfang). Bei der Kommunikation werden eine Integer
'code' und ein Datenraum 'dr' bergeben. 'code' mu >= 0 sein, da negative
Codes systemintern verwandt werden. Ist die empfangende Task an einen Kanal
gekoppelt ('continue'), so fhrt eine Zeicheneingabe auf diesem Kanal dazu,
da eine
Sendung mit dem Code -4 ankommt. Die Eingabedaten mssen mit den blichen
Eingabeprozeduren ('inchar' u.s.w.) abgeholt werden. Der bermittelte Datenraum
und die Absendertask sind dabei ohne Bedeutung und drfen nicht interpretiert
werden.
Die Prozedur 'send' hat einen Rckmeldeparameter, der besagt, ob die Sendung
bermittelt wurde. Gibt es die Zieltask nicht oder steht sie nicht im 'wait', so kann
die Sendung nicht bermittelt werden.
Ein Entwicklungskriterium fr das EUMEL-Netz war es, mglichst wenig Unter-
sttzung von der virtuellen EUMEL-Maschine (EUMEL0) zu fordern, damit weit-
gehend in ELAN programmiert werden kann. Dadurch ist es mglich eine (privili-
gierte) Task mit der Netzabwicklung zu betrauen.
Zunchst wird auf die EUMEL0-Untersttzung eingegangen:
1.1. Es gibt die Prozedur 'define collector', mit der die fr das Netz verantwort-
liche Task der EUMEL0-Maschine bekannt gemacht wird. Diese Task wird im
folgenden Collector genannt.
1.2. Es gibt die Prozedur 'define station', die fr den Rechner eine Stationsnum-
mer einstellt. Anhand dieser Nummer werden die Rechner eines Netzes un-
terschieden. Das Einstellen bewirkt, da fr alle Tasks die Stationsnummer in
ihre Task-Id eingetragen wird (Task-Id's sind die Werte, die der Typ TASK
annehmen kann).
1.3. Der Befehl 'station (task)' liefert die Stationsnummer der 'task'. So liefert z.B.
'station (myself)' die Stationsnummer des eigenen Rechners.
1.4. Eine Sendung, deren Zieltask in einem anderen Rechner liegt (also station
(ziel) <> station (myself)), wird auf die Collectortask geleitet.
1.5. Es gibt eine Prozedur 'collected destination', die es dem Collector erlaubt, die
eigentliche Zieltask einer auf ihn geleiteten Sendung zu erfahren.
1.6. Es gibt eine Variante der Prozedur 'send', die es dem Collector gestattet, der
Zieltask eine beliebige andere Task als Absender vorzumachen.
1.7. Es gibt eine spezielle Task-Id 'collector', durch die der augenblicklich ein-
gestellte Collector erreicht wird. Diese wird als Zieltask beim Aufruf der Ver-
mittlungsdienste angegeben (siehe 2.5). Eine Sendung an 'collector' wird von
EUMEL0 an den derzeitigen Collector geschickt.
Ein Collector kann also auf drei Wegen von den brigen Tasks desselben Rechners
Sendungen erhalten:
1. ber ein normales Send (z.B. bei 'list (/"net port")', wenn "net port" der der-
zeitige Collector ist),
2. ber ein Send an die Task 'collector' (s.u.) und
3. als umgeleitete Sendung (z.B. bei 'list' an eine Task auf einem anderen
Rechner).
Der Collector kann diese Flle anhand von 'collected destination' unterscheiden.
Die Punkte 1.4...1.6 dienen dazu, den Collector fr ber Netz kommunizierende
Task unsichtbar zu machen: Der Collector taucht nicht als Ziel oder Quelle von
Sendungen auf. Das ist notwendig, damit normale Tasks sich nicht darum kmmern
mssen, ob eine Sendung bers Netz geht oder im eigenen Rechner bleibt.
Wenn ein Datenraum an einen anderen Rechner geschickt wird, mu der gesamte
Inhalt (z. Zt. max. 1 MB) bertragen werden. Dies macht bei der blichen Netz-
hardware eine Zerlegung in Packete ntig (siehe Systemhandbuch 173, Teil 4,
Punkt 5). Fr Netze ber V24-Kanle stehen spezielle Blockbefehle zur verf-
gung:
1.8. blockin / blockout (dr,seite,512+abstand,anzahl,rest)
Es werden maximal 'anzahl' Bytes transferiert. In 'rest' wird zurckgemeldet,
wieviel Bytes nicht bearbeitet wurden (z.B. weil der Kanal nichts anliefert).
Bearbeitet werden die Bytes
'seite' * 512 + 'abstand'
bis maximal
'seite' * 512 + 'abstand' + 'anzahl' - 1
Der Kanal, an den die Task gekoppelt ist, wird dabei ber Stream-IO (d.h.
'incharety' bei 'blockin' bzw. 'out' bei 'blockout') angesprochen.
Hinweis: Die Anforderung darf nicht ber Seitengrenze gehen, d.h.
'abstand' + 'anzahl' <= 512
mu erfllt sein.
Eine Netzsendung luft wie folgt ab:
Die Task q auf Rechner rq mache ein 'send' an die Task z auf Rechner rz.
1. Die Prozedur send ist ein EUMEL0-Befehl. Die EUMEL0-Ebene erkennt, da
die Sendung an die Station rz geht, da die Stationsnummer in der Task-Id
enthalten ist. Daher wird die Sendung zum Collector, den EUMEL0 wegen 'de-
fine collector' kennt, umgeleitet.
2. Die Task Collector empfngt ber 'wait' den Datenraum, den Sendecode und
die Absendertask q. Die Zieltask z erfhrt sie durch 'collected destination'.
3. Der Collector nimmt Kontakt mit dem Collector des Rechner rz, dessen Sta-
tionsnummer ja 'station(z)' ist, auf und bermittelt diesem Sendecode, Quelltask
(q), eigentliche Zieltask (z) und den Datenraum. Da die Collectoren in ELAN
geschrieben sind, knnen sie an beliebige Netzhardware und Protokolle ange-
pat werden.
4. Der Collector auf Rechner rz verwendet das spezielle 'send', um der Zieltask die
Sendung zuzustellen. Dadurch erscheint nicht der Collector sondern die Task q
als Absender der Sendung.
Zur Abwicklung der Vermittlungsebene (Teil 1: 2.4) mu der Collector noch
spezielle Funktionen beherrschen. Diese sind
der /-Operator (Taskname in Task-Id wandeln) und
die name-Prozedur (Task-Id in Namen wandeln).
Der /-Operator macht eine Sendung an den 'collector', wobei im Datenraum der
Name der Task steht und der Sendecode gleich der Stationsnummer ist (siehe
Quellcode 173, Packet tasks). Der Collector setzt sich mit dem Collector dieser Sta-
tion in Verbindung, damit dieser die Task-Id ermittelt und zurckschickt. Der
eigene Collector schickt dann dem /-Operator als Antwort einen Datenraum, der
die Task-Id enthlt.
Umgekehrt luft 'name' ab: Wenn die Task-Id von einer fremden Station ist,
schickt 'name' eine Sendung an den 'collector', wobei im Datenraum die Task-Id
steht und Sendecode = 256 ist. Der Collector entnimmt die Stationnummer der
Task aus der Task-Id und lt sich vom entsprechenden Collector den Tasknamen
geben. Dieser wird der 'name'-Prozedur im Antwortdatenraum bergeben.
#type ("triumb12")#2. Ebenen #type("trium8")#
In diesem Kapitel werden die Protokollebenen fr das Netz beschrieben, wie
sie die ausgelieferte Netzsoftware benutzt und erwartet. Bei anderer
Netzhardware mssen die Ebenen 1 bis 3 ausgetauscht werden. Unter Einhaltung
der im vorigen Kapitel beschriebenen Randbedingungen knnen auch die hheren
Ebenen gendert werden.
2.1 Physikalische Ebene
2.1.1 Station <--> Box
V24-Schnittstelle mit RTS/CTS-Handshake. Vollduplex.
2.1.2 Box <--> Box
RS422 ber 2 verdrillte Leitungspaare (Takt und Daten).
2.2 Verbindungsebene
2.2.1 Station <--> Box
Asynchron
8 Bit
Even Parity
2400/4800/9600/19200 Baud (einstellbar ber Ltbrcken)
2.2.2 Box <--> Box
SDLC
400 KBaud
2.3 Netzebene
2.3.1 Station <--> Box
Telegrammformat: STX, <n>, <ziel>, <quelle>, <(n-4) byte>
<n> ist Lngenangabe ( 8 <= n <= 160)
<ziel>, <quelle> sind Stationsnummern. Diese mssen an den je-
weiligen Boxen ber Ltbrcken eingestellt sein.
Box --> Station:
Ein Telegramm kommt nur bei der Station an, bei deren Box die
Nummer <ziel> eingestellt ist. Dadurch ist ein Mithren fremder
bertragungen nicht mglich (Datenschutz).
Zwischen Telegrammen knnen Fehlermeldungen der Box (Klartext)
bermittelt werden (z.B. 'skipped x', wenn ein STX von der Box er-
wartet wurde, aber 'x' von der Station ankommt).
Station --> Box:
Ein Telegramm wird nur abgeschickt, wenn <quelle> mit der einge-
stellten Nummer bereinstimmt (Datenschutz: Man kann nicht eine
beliebige Station zu sein vorschwindeln, es sei denn man hat physi-
schen Zugriff zur Box und stellt dort die Stationsnummer um).
2.3.2 Box <--> Box
Telegrammformat: FRAME, <ziel>, <quelle>, <daten> ,
<CRC-Code>
Eine Lngenangabe ist nicht ntig, da SDLC eine Rekonstruktion der
Lnge erlaubt.
Telegramme mit falschen CRC-Code werden vernichtet. Auf hheren
Ebenen mu dies durch Zeitberwachung erkannt und behandelt
werden.
2.4 Transportebene
Diese Ebene wickelt das Rendevous zwischen einer Task, die 'send' macht,
und einer Task, die im 'wait' steht, ab (siehe: EUMEL-Systemhandbuch).
Der im 'send' angegebene Datenraum wird als Folge von Seiten (im
EUMEL-Sinne: Pagingeinheit und Allokiereinheit) bermittelt, wobei jede Seite
noch in 64 Byte groe Stcke zerlegt wird. Es werden nur echt allokierte Seiten
bermittelt. Um nicht jedes Telegramm voll qualifizieren zu mssen, wird
zunchst eine Art virtuelle Verbindung durch ein OPEN-Telegramm erffnet.
Danach folgen variable viele DATA-Telegramme. Beide Sorten werden durch
QUIT-Telegramme quittiert, um folgende Funktionen zu ermglichen:
Flukontrolle (z.B. Zielrechner langsam)
Wiederaufsetzen (verlorene Telegramme)
Abbruch (z.B. weil Zieltask inzwischen beendet).
Ein CLOSE-Telegramm ist nicht ntig, da das letzte DATA-Telegramm als
solches erkannt werden kann (siehe unten).
2.4.1 OPEN-Telegramm
STX, 20, <ziel>, <quelle>, <strom>, <sequenz>, <seite>,
<quelltask>, <zieltask>, <code>
<ziel>, <quelle> siehe 2.3.1
<strom> Die Stromnummer identifiziert die virtuelle Verbindung.
Sie mu in den QUIT-Telegrammen angegeben wer-
den.
<sequenz> -1 (Kennzeichen fr OPEN)
<seite> Nummer der ersten echt allokierten Seite des Datenra-
ums (=-1, falls Nilspace)
<quelltask> Taskid der sendenden Task
<zieltask> Taskid der empfangenden Task
<code> Wert des im 'send' angegebenen Codes.
2.4.2 DATA-Telegramm
STX, 74, <ziel>, <quelle>, <sequenz>, <seite>, <64 byte>
<sequenz> wird von Telegramm zu Telegramm hochgezhlt. Dient
der berwachung gegen verlorengegangene Telegramme
bzw. durch Zeitberwachung verdoppelter Telegramme.
<seite> Nummer der x.ten echt allokierten Seite des Datenra-
ums. (x = (<sequenz>+16) DIV 8).
<64 byte> Nutzinformation. Diese gehrt zur Adresse a des Daten-
raums.
a = N (<sequenz> DIV 8 + 1) * 512
+ (<sequenz> MOD 8) * 64
wobei N (x) die Nummer der x.ten Seite ist.
Aus den Formeln ergibt sich, da diese Nummer schon in
einem vorhergehenden DATA/OPEN-Telegramm ber-
mittelt wurde (im Feld <seite>).
2.4.3 QUIT-Telegramm
STX, 8, <ziel>, <quelle>, <strom>, <quit>
<strom> mu die Stromnummer sein, die in dem OPEN/DATA-
Telegramm stand, das quittiert wird.
<quit> 0 : ok. Nchstes Telegramm schicken.
-1: bertragung neu starten (mit OPEN), weil die
Empfangsstation das OPEN nicht erhalten hat.
-2: bertragung ca. 20 Telegramme zurcksetzen.
-3: bertragung abbrechen.
2.5 Vermittlungsebene
Diese Ebene ist dafr zustndig, Tasknamen von Task auf anderen Stationen
in Taskids (Werte des Typs TASK) zu wandeln und umgekehrt. Hierzu wird im
entsprechenden OPEN-Telegramm der Code -6 (bzw. -7) als <code>
eingetragen. Die Netzempfangstask erkennt diese Codes und wickelt die
Aufgaben selbst ab, soda es dabei nicht ntig ist, irgendeine Taskid der
Zielstation zu kennen.
Dieses Verfahren ist mglich, weil im 'send' nur positive Codes erlaubt sind.
2.6 Hhere Ebenen
Hhere Ebenen sind nicht mehr netzspezifisch. Sie basieren alle auf dem
Send/Wait-Konzept des EUMEL. So gibt es z.B. den 'global manager', der
Aufbewahrung und Zugriff von Dateien in einer Task regelt. Dabei darf diese
Task (bei der Variante 'free global manager') auf einer beliebigen Station im
Netz liegen. Wegen des Rendevous-Konzepts knnen beliebige Sicherheit-
strategien benutzt werden (z.B.: Keine Dateien an Station 11 ausliefern). Von
groen Wert ist z.B., da man ohne weiteres das Archiv (Floppylaufwerk) einen
anderen Station anmelden und benuzten kann, wodurch eine einfache Kon-
vertierung von Floppyformaten mglich ist. Dies ist mglich, weil auch die Ar-
chiv-Task der Stationen sich an das Globalmanagerprotokoll halten.
#type("triumb12")#
Bemerkungen#type("trium8")#
Fehlerbehandlung besteht bis Ebene 3 darin, fehlerhafte Telegramme einfach zu
entfernen. Die Ebene 4 berwacht den Netzverkehr sowieso ber Timeouts, die
eine Wiederhohlung eines Telegrammes bewirken, wenn die Quittung ausbleibt.
Da bei der sendenden Station der ganze Datenraum zur Verfgung steht, ist eine
Fenstertechnik (wie bei HDLC) nicht ntig. Es kann zu jedem Zeitpunkt um beliebig
viele Telegramme zurckgesetzt werden.
Da im EUMEL eine Textdatei ein Datenraum mit sehr komplexer Struktur ist (wegen
der Insert/Delete-Mglichkeiten, ohne den Rest der Datei zu schieben), ist es ein
hoher Aufwand, von einem fremden Betriebssytem her Textdateien ins EUMEL-
Netz zu senden. Fr solche Zwecke mu noch eine einfachere Dateistruktur defi-
niert werden und entsprechende Dateikonverter erstellt werden.
#type("triumb12")#3. Stand der Netzsoftware #type("trium8")#
Das EUMEL-System wickelt die Prozedur #on("bold")#send#off("bold")# ber das Netz ab, wenn die
Stationsnummer der Zieltask ungleich der eigenen Stationsnummer ist. Umge-
kehrt kann man der von der Prozedur #on("bold")#wait#off("bold")# gelieferten Absendertask die Absen-
derstation entnehmen (siehe Prozedur #on("bold")#station#off("bold")# in Abschnitt 3).
Nicht untersttzt wird z.Zt. die Logik der Prozeduren #on("bold")#call#off("bold")# und #on("bold")#pingpong#off("bold")#. Diese
funktionieren nur in der gewohnten Weise, wenn die Zieltask in #on("bold")#wait#off("bold")# steht. Ist
die Zieltask lnger als ca. 10 Minuten #on("bold")#busy#off("bold")# oder nicht mehr vorhanden, geht die
Sendung einfach verloren (Gefordert ist: bei #on("bold")#call#off("bold")#: immer wieder versuchen; bei #on("bold")#
pingpong#off("bold")#: Rckmeldung -2).
Wegen dieser Einschrnkung kann man z.B. ein sicheres Drucken von Station a
auf einen Drucker der Station b nur durch einen eigenen Spoolmanager auf
Station a verwirklichen. Die Einrichtung eines solchen Managers ist allerdings
sowieso sinnvoll, damit man
- das normale 'print'-Kommando verwenden kann (statt z.B. save ("xxx",
4/printer);) und
- nicht zu warten braucht, bis die Datei bers Netz gesendet ist.
|