Table Of ContentSPRINGER COMPASS
Herausgegeben von
G. R. Kofer P. Schnupp H. Strunz
Jiirgen Nehmer
Softwaretechnik
fur
verteilte Systeme
Mit 66 Abbildungen
Springer-Verlag
Berlin Heidelberg New York Tokyo
Prof. Dr. Jiirgen Nehmer
U niversitat Kaiserslau terniinformatik
Postfach 3049,6750 Kaiserslautern
ISBN-13: 978-3-642-95467-2 e-ISBN-13: 978-3-642-95466-5
DOT: 10.1007/978-3-642-95466-5
CIP-Kurztitelaufnahme der Deutschen Bibliothek
Nehmer,liirgen:
Softwaretechnik fUr verteilte Systeme / ]Urgen Nehmer.
- Berlin; Heidelberg; New York; Tokyo: Springer, 1985.
(Springer Compass)
Das Werk ist urheberrechtlich geschUtzt. Die dadurch begriindeten Rechte, insbesondere die
der Ubersetzung, des N achdruckes, der Entnahme von Abbildungen, def Funksendung, der
Wiedergabe auf photomechanischem oder ahnlichem Wege und der Speicherung in Datenver
arbeitungsanlagen bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Die VergU
tungsanspriiche des § 54, Abs. 2 Abs. 2 UrhG werden durch die "Verwertungsgesellschaft
Wort", MUnchen, wahrgenommen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem
Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daB soIehe Na
men im Sinne der W,\renzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten wa
ren und daher von jedermann benutzt werden durften.
© Springer-Verlag Berlin Heidelberg 1985
Softcover reprint of the hardcover 1st edition 1985
GEWIDMET
meiner Frau Inge
meinen Kindem
Nadja und Nikolas
Vorwort des Herausgebers
Der Gegenstand dieses Buchs ist schwierig. Aber leider auch wichtig.
Noch vor wenigen Jahren waren die Architektur und die Implementierungs
technik von Betriebssystemen ftir den einzelnen, alleinstehenden Rechner keines
wegs allgemein bekannter Stand der Kunst, sondern eher Thema der Forschung.
Auch mancher groBe Hersteller "bastelte" hier; und die Folgen hatten Anwen
dungsprogrammierer und Endbenutzer zu tragen: inkonsistente, kaum zu verste
hende Schnittstellen, geringe Zuverlassigkeit, schlechte Wartbarkeit, enorme Ko
sten bei der Portierung von Software zwischen verschiedenen Rechnersystemen
selbst beim gleichen Hersteller. Noch weit schlimmer sah es auf dem Gebiet aus,
von dem hier berichtet wird: bei der Basissoftware ftir verteilte Systeme, also den
Netzen aus Rechnern, die jeweils unter ihrem eigenen Betriebssystem laufen,
aber trotzdem einer raumlich verteilten Benutzergemeinde eine Reihe von Dien
sten bereitstellen sollen.
Viel schneller als die angewandte Softwaretechnologie der theoretischen For
schung folgen konnte, innerhalb vielleicht eines halben J ahrzehnts, wurde in der
praktischen Datenverarbeitung der Rechnerverbund von der Ausnahme zur Re
gel. Fast jedes groBe Rechenzentrum ist heute tiber offentliche Datennetze oder
private Mietleitungen mit anderen Installationen verbunden. Und in den meisten
Organisationen beginnt auf der Basis lokaler Netze die Integration der Textver
arbeitung, der kleinen und mittleren Arbeitsplatz- und Abteilungsrechner sowie
der verschiedensten ProzeBrechneranwendungen mit den zentralen GroBrech
nern.
Der Softwareentwickler, der gerade erst gelernt hat, die Basissoftware eines
einzelnen Rechners professionell und ingenieurmaBig zu planen, zu realisieren,
zu nutzen und zu warten, steht so tiberraschend vor dem Problem, die Strukturen
inhomogener, verteilter Systeme verstehen und beherrschen zu mtissen. Versucht
er, sich in dieses neue Gebiet einzuarbeiten, muB er feststellen, daB auch die von
ihm benotigten Informationen ein "verteiltes System" darstellen: selbst im inter
nationalen Schrifttum finden sich kaum zusammenfassende, wertende und in die
Praxis umsetzbare Darstellungen des derzeit vorhandenen theoretischen und em
pirischen Wissens. Fast alles muB mtihsam aus Tagungsberichten, Fachzeitschrif
ten und Kursunterlagen zusammengetragen werden.
Urn so wertvoller ist es, daB sich nun ein anerkannter Fachmann eben dieser
Milhe unterzogen hat. Das Ergebnis halten Sie in Handen - eine grundliche und
fundierte Einfilhrung in all das softwaretechnische Wissen, das Ihnen helfen
wird, Software filr verteilte Systeme ebenso sicher zu implementieren, wie Sie es
heute filr ein Einzelsystem konnen.
VIII Vorwort des Herausgebers
DaB "nichts praktischer ist, als eine gute Theorie", weiB niemand besser als der
Entwickler und Warter komplexer Systemsoftware. Die Herausgeber freuen sich,
mit diesem Buch den Softwarepraktikern diese Theorie in einer Form an die
Hand geben zu konnen, die leicht und sicher in die tagliche Arbeit an und mit
verteilten Softwaresystemen umsetzbar ist.
Miinchen, im November 1984 Peter Schnupp
Vorwort
Die Konstruktion verteilter Systeme erfordert gut aufeinander abgestimmte
Konzepte und Techniken in den Bereichen der lokalen Netze, der Netzwerkbe
triebssysteme und der Programmier- und Laufzeitumgebungen fUr verteilte An
wenderprogrammsysteme.
In diesem Buch wird der Versuch unternommen, aufbauend auf derTechnolo
gie heutiger lokaler Netze, erprobte Softwaretechniken zu vermitteln, die sich
breit und durchgangig fUr die stufenweise Realisierung verteilter Systeme eignen.
Diese Techniken werden anhand der exemplarischen Implementierung eines
N etzwerkbetriebssystems demonstriert.
Viele interessierende Problemkreise konnen aus PlatzgrUnden nicht diskutiert
oder lediglich gestreift werden. Dazu gehoren z. B. die Protokollverifikation, das
Testen in verteilten Systemen und die Realisierung von Fehlertoleranz mittels
verteilter Systeme. Viele dieser nicht behandelten Themenbereiche sind heute
noch Gegenstand intensiver Forschung.
Ich hoffe, daB dieses Buch gleichwohl seinen Hauptzweck erfUllt: Praktiker in
die Welt der verteilten Systeme und lokalen Netze einzufuhren und ihnen mit
wenigen, aber allgemein verwendbaren Konzepten und Techniken die Mitarbeit
auf diesem interessanten, sich schnell entwickelnden Gebiet zu ermoglichen.
Kaiserslautern, im November 1984 JUrgen Nehmer
Inhaltsverzeichnis
1. Einfiihrung 1
Literatur 5
2. Beschreibungsmethodik . . . . . . . . 7
2.1 Elemente der Softwarestrukturierung . 7
2.1.1 Datentypen . 8
2.1.2 Operationen . . . . . . . . 9
2.1.3 Formationen . . . . . . . . 11
2.1.4 Das Rechnen mit Pointern . 14
2.2 Beispiel einer verzeigerten Liste 14
Literatur ........... . 16
3. Grundlagen der nichtsequentiellen Programmverarbeitung 17
3.1 Operatione n 17
3.2 Berechnungen 21
3.3 Der ProzeB .. 24
3.4 Koexistierende Prozesse 26
3.4.1 Entkoppelte Prozesse 26
3.4.2 Gekoppelte Prozesse . . 27
3.4.3 Kooperierende Prozesse 27
3.5 Koordinierung kooperierender Prozesse 34
3.6 Zeitabhangige Fehler. . . . . . . . . . . 41
3.6.1 Beispiele filr zeitabhangige Fehler . . . . 41
3.6.2 Formales Modell zur Beschreibung von Verklemmungen 43
Literatur ......................... . 47
4. Strukturmodelle fur konkurrente Programme 49
4.1 Daten-gekoppelte ProzeBsysteme .. 50
4.2 Monitor-gekoppelte ProzeBsysteme 51
4.2.1 Spezifikation des Monitorkonzepts 54
XII Inhaltsverzeichnis
4.2.2 Beispiele fur das Monitorkonzept . . . . . . . . . . . 59
4.3 Botschaften-gekoppelte Proze£systerne . . . . . . . . 63
4.3.1 Ein Basisrnodell fur Botschaften-gekoppelte Proze£systeme . 64
4.3.2 Speicherlose Transportsysterne . 66
4.3.2.1 Das Kanalkonzept . . . . . . . . 66
4.3.2.2 Multiplexer und Konzentratoren 70
4.3.3 Speich ern de Transportsysteme . 73
4.3.4 Das Remote-Invocation-Konzept . 81
Literatur .............. 83
5. Ein allgemeines Realisierungskonzept flir verteilte Systeme - das
OSI-Referenzmodell von ISO 85
Literatur .......... . 92
6. Protokolle ................ . 93
6.1 Ein Verfahren zur Protokollspezifikation . 94
6.2 Spezifikation eines HD LC-Protokolls 98
6.2.1 Die HDLC-Klasse 99
6.2.2 Ereignistypen . . . 99
6.2.3 Zustandsvariablen · 102
6.2.4 Systernzustande . · 102
6.2.5 Zustandsubergange · 104
6.2.6 Induktionsmatrizen · 108
Literatur ..... . · 109
7. Netztopologien und Ubertragungssteuerungsverfahren flir lokale
Netze . . . . 111
7.1 Ringnetze. · 111
7.1.1 DerToken-Ring · 114
7.1.2 Der Contention-Ring · 117
7.1.3 Der Slotted Ring · 119
7.2 Busnetze ...... . · 120
7.2.1 Selektion ...... . · 122
7.2.2 Wahlfreier Buszugang · 123
7.2.3 Reservierung · 126
Literatur ...... . · 127
Inhaltsverzeichnis XIII
8. Der ETHERNET-Bus. · 129
8.1 Netztopologie und technische Daten · 129
8.2 Ein Funktionsmodell der ETHERNET- Architektur .132
8.2.1 Die Leitungsebene . . . . . . . . . . .133
8.2.2 Die Ubertragungsebene . . . . . . . .134
8.3 Die Betriebsweise des ETHERNET . · 135
8.3.1 Senden ohne Kollision . . . . .135
8.3.2 Empfangen ohne Kollision. . .136
8.3.3 Behandlung von Kollisionen . .136
8.4 Schnittstellen . . . . . . . . . .137
8.4.1 Schnittstelle Anwenderebene-Leitungsebene .137
8.4.2 Schnittstelle Lei tungsebene-Dbertragungsebene .139
Literatur .................... . · 140
9. Knotenbetriebssysteme . . . . . . . . . . . . . . . . · 141
9.1 Konstruktionsprinzipien fiir Knotenbetriebssysteme · 141
9.2 Der Betriebssystemkern . . · 143
9.2.1 Die abstrakte Maschine Mo · 143
9.2.2 ProzeBimplementierung . . · 147
9.2.3 Semaphorimplementierung · 153
9.2.4 Monitorimplementierung · 155
9.2.5 Sonstige Kernfunktionen · 158
Literatur ........ . · 159
10. Protokollimplementierung . . . . . . . . . . . . . . . . . . · 161
10.1 Ein systematisches Implementierungsschema fiir Protokolle · 162
10.2 Implementierung eines HDLC-Protokolls ..... · 165
10.2.1 Timeout-Mechanismen und Ein-/A usgabeprozesse · 166
10.2.2 Der HDLC-Monitorfiir die Primary ....... . · 168
11. Kaufliche Netzwerkbetriebssysteme ... .177
11.1 Kooperierende U niversalbetriebssysteme · 177
11.2 Verteilte Betriebssysteme . · 179
Literatur ................ . · 181
12. Sachverzeichnis ............................ 183