241 94 36MB
German Pages 538 [540] Year 1977
de Gruyter Lehrbuch Dworatscheck Grundlagen der Datenverarbeitung
Sebastian Dworatschek
Grundlagen der Datenverarbeitung 6., völlig neu bearbeitete und erweiterte Auflage
W Walter de Gruyter G Berlin • New York 1977 DE
Dr. rer. pol. Sebastian Dworatschek Dipl.-Wirtsch.-Ing., Dipl.-Ing. Professor für Leitung, Organisation, Datenverarbeitung an der Universität Bremen Die 1. bis 5. Auflage des Buches ist unter dem Titel „Einführung in die Datenverarbeitung" erschienen. Das Buch enthält über 200 Abbildungen, 212 Übungsaufgaben und einen Anhang mit 59 Fotos.
CIP-Kurztitelaufnahme der Deutschen Bibliothek Dworatschek, Sebastian Grundlagen der Datenverarbeitung. - 6., völlig neu bearb. u. erw. A u f l Berlin, New York: de Gruyter, 1977. (de-Gruyter-Lehrbuch) 1.-5. Aufl. u. d. T.: Dworatschek, Sebastian: Einführung in die Datenverarbeitung. ISBN 3-11-007190-8
© Copyright 1977 by Walter de Gruyter & Co., vormals G. J. Göschen'sche Verlagshandlung, J. Guttentag, Verlagsbuchhandlung, Georg Reimer, Karl J. Trübner, Veit & Comp., Berlin 30. Alle Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung sowie der Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (durch Photokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Printed in Germany. Typographische Beratung: Hans Peter Willberg, Vockenhausen. Einbandgestaltung: Rudolf Hübler, Berlin. Satz: Hermann Hagedorn, Berlin. Druck: Karl Gerike, Berlin. Bindung: Lüderitz & Bauer Buchgewerbe GmbH, Berlin.
Inhalt
Einführung
13
Teil I: Funktionale Grundlagen 1. Entwicklung der Datenverarbeitung 1.1 Geschichtliche Entwicklung 1.2 Rechnermarkt Aufgaben zu I 1
21 21 29 32
2. Analog- und Digital-Rechentechnik Aufgaben zu I 2
33 39
3. Aufbau einer Datenverarbeitungsanlage 3.1 Vergleich mit einem menschlichen Rechner 3.2 Informationsdarstellung 3.2.1 Zeichen und Daten Aufgaben zu I 3.2.1 3.2.2 Binärzeichen als elektrisches Signal 3.2.3 Codes zur Zeichendarstellung 3.2.3.1 Tetradendarstellung 3.2.3.2 6 - u n d 7-ßit-Code 3.2.3.3 EBCDI-Code (Byte-Code) Aufgaben zu I 3.2.2/3.2.3 3.3 Befehlsdarstellung 3.3.1 Operationstypen und Befehlsarten 3.3.2 Operationsteil 3.3.3 Einadreß- und Zweiadreß-Maschinen 3.3.4 Wort- und Stellenmaschinen 3.3.5 Relative und indizierte Adressierung 3.3.6 Zweiadreß-Befehle Aufgaben zu I 3.3 3.4 Grundeinheiten: Eingabe und Ausgabe Aufgaben zu I 3.4
40 40 43 43 46 47 50 51 52 53 55 56 56 60 61 62 63 64 65 66 71
6
Inhalt 3.5 Grundeinheit: Speicher 3.5.1 Speicherfunktionen 3.5.2 Speicherkenngrößen 3.5.3 Speicherhierarchie Aufgaben zu I 3.5 3.6 Grundeinheit: Leitwerk 3.6.1 Steuerungsmechanismen 3.6.2 Synchronisation der Rechenarbeit 3.6.3 Programmablauf bei einer Einadreß-Maschine Aufgaben zu I 3.6 3.7 Grundeinheit: Rechenwerk
72 72 74, 79 81 83 83 85 90 93 93
Teil II: Mathematische Grundlagen 1. Mathematische Begriffe 1.1 Potenz 1.2 Logarithmus 1.3 Fakultät 1.4Binomialkoeffizient Aufgaben zu II 1
99 99 103 106 107 108
2. Zahlensysteme 2.1 Definition von Zahlensystemen 2.1.1 Dezimalsystem 2.1.1.1 Ganze Dezimalzahlen 2.1.1.2 Echte Dezimalbrüche 2.1.1.3 Allgemeine Dezimalzahl 2.1.2 Polyadisches Zahlensystem 2.1.3 Dualsystem Aufgaben zu II 2.1 2.2 Festpunktrechnung 2.2.1 Begründung 2.2.2 Festpunkt-Addition 2.2.3 Festpunkt-Multiplikation 2.2.4 Festpunkt-Subtraktion 2.2.5 Festpunkt-Division Aufgaben zu II 2.2 2.3 Umwandlung von Zahlensystemen 2.3.1 Dual/Sedezimal in Dezimal 2.3.2 Dezimal in Dual/Sedezimal 2.3.3 Dual in Sedezimal (und zurück) Aufgaben zu II 2.3
109 109 109 109 110 111 113 115 118 119 119 122 124 127 132 135 136 137 138 139 139
Inhalt
2.4 Gleitpunktrechnung 2.4.1 Gleitpunkt-Struktur 2.4.2 Gleitpunkt-Addition 2.4.3 Gleitpunkt-Subtraktion 2.4.4 Gleitpunkt-Multiplikation 2.4.5 Gleitpunkt-Division Aufgaben zu II 2.4
7
140 140 142 143 144 144 145
Teil III: Informations togische Grundlagen 1. Informationstheorie 1.1 Qualitative Aussagen 1.1.1 Kommunikation, Information, Daten 1.1.2 Kybernetik Aufgaben zu III 1.1 1.2 Quantitative Aussagen 1.2.1 Elementarvorrat 1.2.2 Entscheidungsgehalt 1.2.3 Entscheidungsredundanz 1.2.4 Informationsgehalt 1.2.4.1 Ungleiche Häufigkeiten der Nachrichten 1.2.4.2 Berechnung des Informationsgehaltes 1.2.4.3 Informationsredundanz Aufgaben zu III 1.2
149 149 149 152 154 155 155 157 159 160 160 161 164 164
2. Codierung 2.1 Redundanz und Binärcodes 2.2 Tetraden-Codes 2.2.1 BCD-Code (8-4-2-1-Code) 2.2.2 Aiken-Code (2-4-2-1-Code) 2.2.3 Exzess-3-Code (Stibitz-Code) 2.2.4 Gray-Code 2.3 Binärcodes mit mehr als 4 Bits Aufgaben zu'III 2.1/2.2/2.3 2.4 Codesicherung 2.4.1 Ungesicherte Codes 2.4.2 Fehlererkennende Codes 2.4.3 Fehlerkorrigierende Codes 2.4.4 Prüfbit-Methode 2.4.4.1 Parity Check (Prüfbit) 2.4.4.2 Blocksicherung Aufgaben zu III 2.4
167 167 169 169 172 174 176 178 180 181 181 183 186 189 189 190 191
8
Inhalt
3. Schaltalgebra 3.1 Boole'sche Algebra 3.2 Grundfunktionen 3.2.1 Identität und Negation 3.2.2 AND-Funktion 3.2.3 OR-Funktion 3.3 Darstellungsarten 3.3.1 Kurzzeichen 3.3.2 Wertetafel (Funktionstabelle) 3.3.3 Kontaktskizze 3.3.4 Symboldarstellung 3.3.5 Mengendiagramme 3.4 Funktionen bei 2 Eingangsvariablen Aufgaben zu III 3.1/3.2/3.3/3.4 3.5 Rechenregeln 3.5.1 Postulate und Theoreme 3.5.2 Assoziatives Gesetz 3.5.3 Distributives Gesetz 3.5.4 Morgan'sches Theorem 3.5.5 Entwicklungstheorem 3.6 Normalformen der Schaltfunktionen 3.7 Anwendungsbeispiele 3.7.1 Papiertransport bei einem Schnelldrucker 3.7.2 Dualaddierer 3.7.2.1 Halbaddierer 3.7.2.2 Volladdierer 3.7.3 Erkennen von Pseudotetraden Aufgaben zu III 3.5/3.6/3.7
193 193 196 196 197 198 199 200 200 201 201 202 203 204 206 206 208 210 211 212 214 217 217 220 220 223 225 227
Teil IV: Technologische Grundlagen 1. Bauelemente 1.1 Relais 1.2 Halbleiterbauelemente 1.2.1 Diode 1.2.2 Transistor 1.3 Schaltungstechniken Aufgaben zu IV 1
231 231 234 235 237 240 243
2. Speicherarten 2.1 Kippschaltungen 2.2 Magnetkernspeicher
243 243 247
Inhalt
2.2.1 Physikalisches Prinzip 2.2.2 Speicherorganisation 2.2.3 Kenngrößen Aufgaben zu IV 2.1/2.2 2.3 Magnetbandspeicher 2.3.1 Technische Struktur 2.3.2 Informationsaufzeichnung 2.3.3 Magnetbandbefehle 2.3.4 Kenngrößen 2.3.5 Kassettenspeicher 2.4 Magnetplattenspeicher 2.4.1 Technische Struktur 2.4.2 Kenngrößen 2.4.3 Diskettenspeicher 2.5 Magnettrommelspeicher 2.5.1 Technische Struktur 2.5.2 Kenngrößen 2.6 Magnetkarten-/Magnetsreifenspeicher 2.6.1 Technische Struktur 2.6.2 Kenngrößen 2.7 Speichertechnologische Entwicklungen Aufgaben zu IV 2.3/2.4/2.5/2.6/2.7 3. Endgeräte 3.1 Problematik der Geschwindigkeiten 3.2 Eingabegeräte 3.2.1 Tastaturen 3.2.2 Lochstreifen-Eingabe 3.2.2.1 Lochstreifen 3.2.2.2 Lochstreifenleser 3.2.3 Lochkarten-Eingabe 3.2.3.1 Lochkarten 3.2.3.2 Lochkartenleser 3.2.4 Belegleser 3.2.5 Datenerfassung Aufgaben zu IV 3.1/3.2 3.3 Ausgabegeräte 3.3.1 Lochstreifenstanzer 3.3.2 Lochkartenlocher-/stanzer 3.3.3 Drucker 3.3.4 Zeichengeräte (Plotter) 3.4 Kombinierte Ein-/Ausgabe 3.4.1 Bildschirmgeräte
9
247 249 251 251 251 252 253 256 256 257 258 258 260 261 262 262 263 263 263 265 265 267 268 268 270 270 271 271 272 273 273 276 276 279 282 283 283 283 284 288 290 290
10
Inhalt
3.4.2 Abtastgeräte 3.4.3 Mikrofilm in der Datenverarbeitung 3.4.4 Sprachabfragesystem 3.5 Datenübertragung 3.6 Ein-/Ausgabewerk (Kanalprinzip) Aufgaben zu IV 3.3/3.4/3.5/3.6
292 293 297 298 301 304
Teil V: Betriebsorganistorische Grundlagen 1. Datenorganisation (unter Mitarbeit von Hermann Gehring) 1.1 Dateneinheiten 1.2 Datensatzstrukturen 1.2.1 Logische und physische Sätze 1.2.2 (Nicht-)Lineare Sätze 1.2.3 (Nicht-)Formatierte Daten 1.3 Schlüssel 1.4 Speicherungsverfahren 1.4.1 Sequentielle Speicherung 1.4.2 Index-sequentielle Speicherung 1.4.3 Index-verkettete Speicherung 1.4.4 Gestreute Speicherung 1.5 Such verfahren 1.6 Verarbeitungsverfahren 1.6.1 Sortierte Verarbeitung 1.6.2 Unsortierte Verarbeitung Aufgaben zu V I 2. Programmierung 2.1 Datenflußplan und Programmablaufplan 2.2 Maschinenorientierte Programmiersprachen 2.2.1 Maschinensprache 2.2.2 Mnemotechnischer Operationsteil 2.2.3 Assemblersprachen 2.3 Problemorientierte Universalsprachen 2.3.1 Problemorientierung 2.3.2 RPG 2.3.3 ALGOL 2.3.4 FORTRAN 2.3.5 COBOL 2.3.6 PL/1 2.4 Problemorientierte SpezialSprachen 2.4.1 Entwicklungsformen
..
..
309 310 312 312 314 316 317 318 318 318 319 320 322 324 324 326 328 328 328 334 334 335 337 339 339 341 341 342 343 344 345 346
Inhalt
2.4.2 E X A P T und P E A R L Aufgaben zu V 2.1/2.2/2.3/2.4 2.5 Programmierunterstützung 2.5.1 Unterstützung durch Programmiersprachen 2.5.2 Strukturierte Programmierung Aufgaben zu V 2.5
11
347 348 349 349 351 359
3. Betriebsarten 3.1 Klassifizierungsschema 3.2 Stapelverarbeitung 3.3 Time-Sharing 3.4 Multiprogramming 3.5 Echtzeitverarbeitung 3.6 Teilnehmerbetrieb und Datenfernverarbeitung 3.7 Rechnerstrukturen 3.7.1 Mehrprozessorbetrieb 3.7.2 Rechner-Verbundnetze Aufgaben zu V 3
360 360 361 363 364 366 367 370 370 372 374
4. Betriebssysteme (unter Mitarbeit von Hermann Gehring) 4.1 Hardware und Software 4.1.1 Komponenten eines Rechnersystems 4.1.2 Betriebsmittelzuteilung 4.2 Betriebssysteme der drei Rechnergenerationen 4.2.1 Betriebssysteme der 1. Generation 4.2.2 Betriebssysteme der 2. Generation 4.2.3 Betriebssysteme der 3. Generation 4.3 Steuerprogramme des Betriebssystems 4.3.1 J o b und Task 4.3.2 Auftrags-Management 4.3.2.1 Bedienungssteuerung 4.3.2.2 Auftragssteuerung 4.3.3 Prozeßsteuerung 4.3.4 Datensteuerung 4.4 Arbeitsprogramme des Betriebssystems 4.4.1 Übersetzer, Binder, Lader 4.4.2 Dienstprogramme 4.5 Virtuelle Systeme Aufgaben zu V 4
375 375 375 378 380 380 380 382 383 383 385 386 386 387 389 391 391 395 396 399
12
Inhalt
Teil VI: Anwendungsorganisatorische Grundlagen 1. Datenverarbeitung als Arbeitsprozeß 1.1 Datenverarbeitungs-Organisation 1.1.1 Systemanalyse und Informationssysteme 1.1.2 Hardware-Auswahl 1.1.3 Software-Auswahl 1.1.4 Personelle Organisation 1.2 Datenschutz und Datensicherung 1.2.1 Zielkonflikte beim Datenschutz 1.2.2 Computer-Kriminalität und Datensicherung Aufgaben zu VI 1
403 404 404 406 409 414 418 418 422 427
2. Datenverarbeitungs-Anwendungsbereiche 2.1 Datenverarbeitung in Produktionsbetrieben 2.1.1 Personal-und Rechnungswesen 2.1.2 Betriebliche Planungsmethoden 2.1.3 Vertrieb und Erzeugnisgestaltung 2.1.4 Fertigung und Logistik 2.1.5 Numerisch gesteuerte Maschinen 2.1.6 Prozeßrechner in der Produktion 2.2 Datenverarbeitung in Dienstleistungsbetrieben 2.3 Datenverarbeitung in der Öffentlichen Verwaltung 2.3.1 Öffentliche Versorgungsbetriebe 2.3.2 Staatliche Verbundnetze 2.3.3 Datenverarbeitung in der Medizin 2.4 Datenverarbeitung in Wissenschaft und Bildung 2.4.1 Disziplinen und Hochschule 2.4.2 Computer im Unterricht Aufgaben zu VI 2
428 428 428 432 437 440 447 451 456 461 461 465 469 473 473 477 479
Anhang Lösungen zu den Aufgaben Literaturverzeichnis Fachwörterverzeichnis: englisch/deutsch Stichwörterverzeichnis Abbildungen
481 491 495 501 507
Einführung
Ein Laie auf dem Gebiet der Datenverarbeitung werde nach seiner Deutung des Begriffs Datenverarbeitung' gefragt. Eine schlüssige und voll befriedigende Antwort wird ihm wohl kaum spontan gelingen. Völlig fremd erscheint ihm das Thema allerdings auch nicht. Im ersten Moment versucht er also, sich ein Bild aus Mosaiksteinchen zusammenzusetzen und zu formulieren. Als Mosaiksteinchen verwendet er Wörter und Teilzusammenhänge des weiten Bereichs .Datenverarbeitung', die er früher aus Meldungen des Rundfunks, des Fernsehens und der Zeitungen und aus Gesprächen mit Arbeitskollegen in sein Gedächtnis übernommen hat. Ausdrücke wie : Computer, Elektronengehirn, Programmierer, Lochkarten, phantastische Rechengeschwindigkeiten, Daten, Transistoren und ähnliche kommen ihm bunt durcheinandergewürfelt in den Sinn. Der Befragte sortiert und klassifiziert sie. Er versucht jedenfalls, sich aus den vielen Mosaiksteinchen ein größeres Bild von den Zusammenhängen, Aufgaben und Auswirkungen der Datenverarbeitung zu bilden. Dennoch bleibt oft das Wissen um die .Datenverarbeitung' im allgemeinen und um deren zentrales Instrument, der .Datenverarbeitungsanlage' im besonderen nur eine Ansammlung mehr oder weniger deutlicher Vorstellungen. Zum Teil liegt es daran, daß sich der Laie fast nur mit deren - sicherlich gelegentlich faszinierenden - Ergebnissen befaßt. Eine geheimnisvolle Atmosphäre umgibt oft diese leistungsfähige, aber zweifellos auch komplizierte Maschine. Publizistische Formulierungen wie ,Elektronengehirn' oder ,Intelligenzroboter' verstärken noch diese Atmosphäre. Als Symptom für das entstehende Unwohlgefühl der Datenverarbeitungsanlage gegenüber können die in Nachrichten und Karikaturen ausgiebig kolportierten Meldungen über Rechen- oder Buchungsfehler von solchen Anlagen gelten - Fehler, die täglich zu Tausenden bei manueller Buchhaltung vorkommen, ohne besonders registriert zu werden. Der Computer-Witz soll die Datenverarbeitung entzaubern; dem Computer wird ,Allzumenschliches' angehängt. Wie erklärt es sich aber, daß sich die breite Öffentlichkeit an der Entwicklung und den Erfolgen der Datenverarbeitung nach wie vor so stark interessiert zeigt? Eine der Ursachen könnte die spektakuläre und dynamische Entwicklung der Datenverarbeitung sein. Das nächste Kapitel weist darauf hin, daß der eigentliche Anfang der sprunghaften Entwicklung der Datenverarbeitung nur etwa drei Jahrzehnte zurückliegt. Jeden Tag berichten Rundfunk, Fernsehen
14
Einführung
und Zeitungen über neue Computer-Modelle, neue erfolgreiche Anwendungen und spektakuläre Erfolge. Die Menschen des 20. Jahrhunderts, das durch nie zuvor erreichte Geschwindigkeiten und rasanten technischen Fortschritt geprägt wird, sehen in der Datenverarbeitung einen Inbegriff ihres Zeitalters. Die Quarzuhr mit eingebautem Mikrocomputer gehört voraussichtlich in Kürze schon zum Alltag. Man spricht davon, daß nicht etwa die modernen Erkenntnisse der Atomphysik die zweite technische Revolution bedeuten, sondern der Einsatz der Datenverarbeitungsanlagen auf allen Gebieten des wirtschaftlichen und gesellschaftlichen Lebens. So glaubt beispielsweise N. Wiener, der Begründer der Kybernetik, unser Jahrhundert am besten als das Zeitalter der Nachrichtenund Regelungstechnik beschreiben zu können. Als zentrales und zugleich verbindendes Glied dieser Techniken erweist sich aber immer mehr die Datenverarbeitung. Die naturwissenschaftlich-technische Entwicklung war bis Anfang des 19. Jahrhunderts durch die Begriffe: Materie, Masse, Mechanik gekennzeichnet. Mit der 1. Industriellen Revolution trat die ,Energie' als bestimmender Faktor hinzu. Die heutige angeblich informierte Gesellschaft' erlebt eine 2. Industrielle Revolution, die umschrieben wird mit den Begriffen: Information, Automatisierung, Kybernetik. Im Mittelpunkt dieser Entwicklung steht die Datenverarbeitungsanlage - oder besser: Informationsverarbeitungsanlage. Leicht wird dabei vergessen, daß Mechanik, Energie- und Informationstechnik stets dazu dienten, menschliche Arbeitskraft zu unterstützen, zu ergänzen, zu ersetzen oder auch in ihren Freiheitsgraden einzuengen. Nach wie vor aber bleibt die menschliche Arbeitskraft der originäre ,Produktionsfaktor'. Im Zusammenhang mit der Stufe automatisierter Informationsverarbeitung stellen sich damit wichtige Fragen nicht nur nach der Automationstechnik, sondern auch nach beruflichen, arbeitsorganisatorischen und gesellschaftlichen Auswirkungen. Datenschutz, neue Arbeitsformen in den verwaltenden Tätigkeiten und neue Datenverarbeitungsberufe müssen als Themen die Diskussion um die Datenverarbeitung mit bestimmen. In dem expansiven Bereich Datenverarbeitung entstanden neue Berufe und Tätigkeitsfelder wie: Service-Techniker, Datentypistinnen, Operateure, Programmierer, DV-Organisatoren, DV-Betriebswirte, Systemanalytiker, Informatiker, DV-Ausbilder, DV-Projektleiter, DVKontaktpersonen in den Fachabteilungen, DV-Berater und DV-Lehrer an berufsbildenden Schulen. Sie alle erfordern unterschiedliche Spezialausbildungen. Doch erst ein allen gemeinsames fundiertes Grundwissen läßt diese Spezialausbildungen und -erfahrungen voll wirksam werden. Unabhängig davon, ob Sie in einem dieser Tätigkeitsfelder bereits arbeiten oder es erst anstreben oder ob Sie sich aus anderen Gründen mit der Datenverarbeitung befassen wollen: Sie sollten dieses Buch kurz beiseite legen und zunächst einmal Ihre eigenen Erwartungen an das Buch bedenken. Notieren Sie drei bis fünf Erwartungen an den Rand dieses Kapitels; am Ende des Buches werden Sie darauf zurückkommen.
Einführung
15
Welche Lernziele strebt das Buch an? Es verfolgt den Zweck, das bereits erwähnte notwendige Grundwissen für verschiedene Tätigkeitsfelder der direkten oder indirekten Datenverarbeitung zu vermitteln. Auch soll durch begriffsbildende Absichten die Verständigung und Kommunikation zwischen den verschiedenen DV-Spezialisten und den mit der Datenverarbeitung nur indirekt befaßten Organisationsangehörigen erleichtert werden. Der Vorwurf der Geheimsprache und des ,Datenverarbeitungs-Chinesisch' wird nicht zu unrecht erhoben. So werden in den ,Computern' Daten ,upgedated\ Programmbedingungen ,abgecheckt' und ,job steps' werden beim Supervisor' zu ,tasks'. Die Datenverarbeitung benötigt heute nicht mehr derartige deutsch-amerikanische Bastardausdrücke im Sinne einer elitären Geheimsprache, um sich als eigene Disziplin begründen zu können. Die Datenverarbeiter sollten nicht nur den Linguisten helfen; sie sollten auch umgekehrt offen sein für Sprachberatung durch Germanisten. Wichtige Verständigungshilfen bieten inzwischen die DIN-Normen über Informationsverarbeitung, die hier weitgehend einbezogen worden sind. Dennoch wird auch dieses Buch nicht frei sein von Übertreibungen der Computer-Terminologie. Für formale und inhaltliche Verbesserungen, wie sie in der Vergangenheit von Lesern vorgeschlagen worden sind, wird der Autor auch in Zukunft dankbar sein. Grundlagenwissen und Verständigungshilfen können als Lernziele dazu beitragen, Klischeevorstellungen vom Computer und die erwähnte mystische Distanz abzubauen und die Datenverarbeitungsanlage als gezielt einsetzbares rationales Instrument der Informationsverarbeitung zu begreifen. Bei aller Begrenzung im Sinne einer Grundlagenarbeit soll doch das Lernziel verfolgt werden, den Leser außer für technologische und organisatorische Tendenzen in der Datenverarbeitung auch für berufliche, arbeitsorganisatorische und gesellschaftliche Auswirkungen der Rechnersysteme und ihrer Anwendungen zu sensibilisieren und zu interessieren. Für jedes Thema mußte abgewogen werden, ob eine intensivere Behandlung notwendig oder ein Verweis auf weiterführende Literatur sinnvoller ist. Die umfangreiche Literatur der Datenverarbeitung wurde - sicherlich subjektiv und unvollkommen - ausgewählt und im Anhang den einzelnen Kapiteln des Buches schwerpunktmäßig zugeordnet. Bei der englischen Literatur kann das englisch/deutsche Fachwörterverzeichnis weiterhelfen. Um schon beim Lesen nebenbei mit den entsprechenden englischen Ausdrücken vertraut zu werden, sind sie bei wichtigen Begriffen in Klammern angefügt. Die gängigen Ausdrücke Datenverarbeitungsanlage (DVA), Rechenanlage, Rechensystem, Rechner und Computer werden nebeneinander verwendet. Dem Charakter eines Lehrbuches entsprechen die Begriffsdefinitionen, die straffe thematische Gliederung, die zahlreichen Grafiken und die kapitelweise eingeschalteten Übungsaufgaben, die eine frühzeitige Selbstkontrolle fördern. Erfahrungen aus DV-Lehrgängen für DV-Spezialisten, Angestellte mit und ohne Leitungsaufgaben, Ausbilder und Lehrer an berufsbildenden Schulen fanden darin ihren Niederschlag. Nützliche Hinweise für Ihre Lesetechnik können sein:
16
Einführung
zunächst das Buch nur durchblättern; dann das Inhaltsverzeichnis durchsehen; während des Lesens entsprechend den Querverweisen auch zurückblättern; Übungsaufgaben intensiv bearbeiten; das Buch nicht von einem Filzstift verschonen, mit dem wichtig erscheinende Aussagen markiert werden; viele Aussagen des Buches bezweifeln und hinterfragen; auch weiterführende Fragen durchdenken; möglichst das Buch zusammen mit Kollegen (z.B. in Arbeitsgruppen) bearbeiten und diskutieren. Das ausführliche Inhaltsverzeichnis bietet die Möglichkeit, entsprechend der persönlichen Ausbildung, Erfahrung und Interessenlage auch bausteinartig Lerninhalte und Kapitel auszuwählen und zu kombinieren. Das vorliegende Buch kann aus keinem Leser einen DV-Spezialisten machen. Es bietet ihm aber ein breites Basiswissen der Datenverarbeitung. Bewußt wurde Abstand genommen, ein oberflächliches, kaum nützliches Handbuch zu erstellen. Wie bei der Beschäftigung mit anderen Fachgebieten, so gilt deshalb auch hier: um das Lernziel, einen fundierten Überblick und gezielte Einblicke zu erreichen, müssen gelegentlich auch Detailprobleme und Gedankenketten intensiv und kritisch nachvollzogen werden. Zu diesem Zweck wird der Leser Kapitel für Kapitel mit verschiedenen Fachthemen und mit steigendem Schwierigkeitsgrad vertraut gemacht. Übungsaufgaben und selbständige Wiederholungen festigen das Wissen und die Übertragung auf die spezifische berufliche Situation des Lesers. Im Jahre 1969 erschien die 1. Auflage dieses Buches, das inzwischen in mehrere Sprachen übersetzt worden ist. Die 3. Auflage, 1970, wurde thematisch erweitert. Inzwischen sind viele Entwicklungen in der Datenverarbeitung vorangekommen. Neue Techniken und Anwendungsmöglichkeiten wurden gefunden. Neue Probleme stellen sich, die Schwerpunkte haben sich teilweise verlagert, und die Erwartungen an das Grundlagenwissen sind gestiegen. Es erschien gerechtfertigt, die 6. Auflage völlig zu überarbeiten, neue Themen einzubeziehen und die Lerninhalte neu zu gewichten. Damit verbunden war eine Umbenennung von ,Einführung in die Datenverarbeitung' in ,Grundlagen der Datenverarbeitung'. Diese Umbenennung folgt dem Vorschlag in einer Buchbesprechung. Lernziele, Inhalt und Umfang dieses Lehrbuches weisen darauf hin, daß mehr als eine erste, einführende Behandlung des Themas Datenverarbeitung angestrebt wird. Sechs Teile des Buches versuchen, das vielschichtige Basiswissen der Datenverarbeitung schrittweise verständlich zu machen: Teil Teil Teil Teil Teil Teil
I: II: III: IV: V: VI:
Funktionale Grundlagen Mathematische Grundlagen Informationslogische Grundlagen Technologische Grundlagen Betriebsorganisatorische Grundlagen Anwendungsorganisatorische Grundlagen
Einführung
17
In der folgenden Abbildung weisen jeweils drei Kernfragen auf die wesentlichen Lerninhalte der sechs Buchteile hin. Der Teil I macht mit den Funktionseinheiten vertraut, deren technisch-konstruktive Merkmale in Teil IV behandelt werden. Es erweist sich allerdings als vorteilhaft, zuvor die Zahlensysteme (Teil II) und die informationstheoretischen und logischen Gesetzmäßigkeiten eines Rechnersystems (Teil III) kennenzulernen. Nachdem so die maschinelle Struktur und die Arbeitslogik eines Rechnersystems bekannt sind, stellt sich die Frage, welche organisatorischen Voraussetzungen geschaffen werden müssen, um den störungsfreien Betrieb der Rechenanlage sicherzustellen. Die Programmierung durch die Benutzer und die Selbststeuerung der Anlage ergänzen sich darin (Teil V). Zu diesen stärker nach innen orientierten, betriebsorganisatorischen Fragen kommen anwendungsorganisatorische Fragen hinzu (Teil VI). Der Teil VI behandelt - soweit in einem Grundlagenbuch ein Überblick und exemplarische Einsichten gefunden werden müssen - die Datenverarbeitung als Arbeitsprozeß, an dem verschiedene Personen beteiligt sind. Ferner zeigt der letzte Teil typische DV-Anwendungen aus den Aufgabenbereichen der Produktionsbetriebe, der Dienstleistungsbetriebe, der Öffentlichen Verwaltung und der Wissenschaft und Bildung.
Teil I: Funktionale Grundlagen
1. Entwicklung der Datenverarbeitung Der Einfluß der Datenverarbeitung auf die Forschungstechnologie, die betrieblichen Aufgabenlösungen, die Formen der Arbeitsorganisation, die Berufsfelder und die Denkweise in der heutigen Zeit wird von kaum jemandem geleugnet. Die dynamische, ja hektische Entwicklung des Bereichs Datenverarbeitung' in den letzten zwanzig Jahren versperrt jedoch leicht den Blick dafür, daß sich viele frühere Generationen ebenfalls mit der Aufgabenstellung ,Daten verarbeiten' befassen mußten. Viele so entstandene historische Ansätze erwiesen sich als notwendige Vorarbeit, um den heutigen Stand der Datenverarbeitungsverfahren erreichen zu können. Ein kurzer Überblick über diese .Vorleistungen' erleichtert es vermutlich, die heutigen Ergebnisse einzuordnen.
1.1 Geschichtliche Entwicklung ca. 5000 v. Chr.
ca. 1100 v.Chr.
Die Grundlage des Rechnens ist das Zählen. Der Mensch begann das Zählen mit den ihm von der Natur gegebenen (Rechen-)Hilfsmitteln: den Fingern. Eine Hand erlaubte ihm also bis 5 (QuinärSystem), beide Hände bis 10 (Dezimal-System) zu zählen. Wollte er zu größeren Zahlen (bzw. Mengen) übergehen, so benützte er Steine, Perlen oder Holzstäbe, Bequemer und zuverlässiger schon war das dem 5-Finger-System verwandte Suan-Pan-Verfahren, bei dem die Perlen auf Drähten
t
i
i
H
Abb. 1: Rechengerät Abacus (Suan Pan)
22
Teil I: Funktionale Grundlagen aufgefädelt waren. Bei den Römern wurde es Abacus genannt. Bei uns findet man es noch in Kindergärten und (in vereinfachter Spielform) sogar vor Kinderwagen. In Hinterasien ist Suan Pan noch sehr stark verbreitet. Bei genügender Übung lassen sich (wie sich bei Wettbewerben zeigte) überraschend hohe Rechengeschwindigkeiten damit erreichen.
500 n Chr.
Die Grundlage für die Entwicklung zum Rechnen mit Maschinen bildete zweifelsohne das in Indien (daher: Hindu-) entstandene und über den arabischen Kulturkreis zu uns gelangte Hindu-Arabische Zahlensystem mit den zehn Ziffern: 0 , 1 , . . . 8, 9. Nach der Rückeroberung Spaniens aus arabischer Herrschaft (1150 n. Chr.) setzte es sich im Abendland schnell durch. Sein großer Vorteil im Vergleich zum recht umständlich zu handhabenden Römischen Zahlensystem (z.B. MCMVII) ist: - Einführung der Null: 0 - Einführung der Stellenschreibweise. Im Gegensatz zum Römischen Zahlensystem gestattet also das Hindu-Arabische Zahlensystem einen Rückschluß von der Stellung einer Ziffer innerhalb der Zahl auf ihren Wert. Die 8 bedeutet z.B. 8 Hunderter in der Zahl 6804. Die 0 bedeutet: keine Zehner. Die Gesamtzahl bedeutet also: 41= 4 0- 1 0 = 0 8- 100= 800 6 1000 = 6000 Gesamtzahl = 6804
1614
Der Rechenaufwand zur Aufstellung der von Lord Napier herausgegebenen Logarithmentafeln erfordert einen Zeitaufwand von ca. 30 Jahren (moderne Rechenanlage: ca. 1 min.)
1623
Der Theologe und Mathematiker Schickard konstruiert für seinen Freund, den Mathematiker und Astronomen Kepler eine Rechenuhr, die auf dem Zählradprinzip (ähnlich den heutigen mechanischen Tischrechenmaschinen) aufbaute. Damit waren Addition und Subtraktion durchzuführen, wobei mit 6 Stellen und Übertrag gerechnet wurde.
1641
Blaise Pascal (französischer Mathematiker) baut mit 19 Jahren seinem Vater, der Steuerpächter war, eine Addiermaschine mit 6 Stellen. Partridge: Erfindung des Rechenschiebers. Der große Philosoph und Mathematiker G. W. Leibniz beschäftigt sich mit der Konstruktion von Rechenwerken, die ihm zwar Ausgaben von 24000 Talern brachten, aber keinen wirklichen Erfolg.
1650 1671 bis 1694
1. Entwicklung der Datenverarbeitung
1703 1808
1833
1890 1920
1936
1941
1944
23
G. W. Leibniz beschäftigt sich mit dem Dualsystem (das zur Grundlage der heutigen Rechenanlagen wurde, vgl. II 2.1.3). J. M. Jacquard setzt Kartons, in die das Webmuster eingestanzt war, zur automatischen Steuerung von Webstühlen ein. Derartige Webstühle sind im Deutschen Museum zu sehen. Der Begriff .Jacquard' ist heute noch ein üblicher Ausdruck in der Textilbranche. Ähnliche, gelochte Karten (in gefalteter Form) sind noch heute bei Jahrmarkt-Musikautomaten in Anwendung. Von großer Bedeutung für die weitere Entwicklung war die mechanische Rechenanlage ,Difference Engine' des Mathematik-Professors Charles Babbage aus Cambridge, die noch heute im Science Museum London besichtigt werden kann. Die Konzeption seiner weiterhin geplanten Maschine (Analytical Engine) nahm den Aufbau moderner Rechenanlagen vorweg. Sie sollte bestehen aus: - Speicher (störe) (1000 Worte ä 50 Stellen) - Rechenwerk (mill) - Steuerwerk (control) - Ein-, Ausgabe und vor allem einem (in Lochkarten) - gespeicherten Programm. Die Pläne von Babbage scheiterten an dem Stand der damaligen Technik. Der Deutsch-Amerikaner H. Hollerith führt bei der 11. amerikanischen Volkszählung die Lochkartentechnik ein. Entwicklung leistungsfähiger Büro-Lochkartenmaschinen (z.B. Firma Bull). Moderne Entwicklung der Datenverarbeitung a) Relaisrechner K. Zuse (Bauingenieur) beginnt noch während seines Studiums in Berlin mit dem Bau einer Rechenanlage ZI, welche die stets wiederkehrenden Routine-Berechnungen der Statik automatisieren sollte. Seine theoretischen Ansätze wie ,Plankalkül' und ,funktioneller Befehlscode' sind noch heute aktuell. Z3: Relaisrechner mit Lochstreifeneingabe und -ausgabe. Eigenschaften: Eingabeeinheit Ausgabeeinheit Rechenwerk (600 Relais) Relaisspeicher (64 Zahlen ä 22 Dualstellen) Programm in Lochstreifen (gelochter Kinofilm) abgespeichert. H. H. Aiken entwickelt an der Harvard University den Relaisrechner M A R K I.
24
Teil I : Funktionale Grundlagen
1946
ab 1946
1952 1954
ab 1957
ab 1964
J. v. Neumann (Mathematiker) entwickelt Fundamentalprinzipien einer Rechenanlage: - das Programm wird wie die Daten gespeichert - bedingter Befehl mit (Vorwärts- oder Rückwärts-) Verzweigung - das Programm ist eine Kette logischer Binär-Entscheidungen. b) Datenverarbeitungsanlagen der 1. Generation Eigenschaften: Schaltungsaufbau aus Elektronenröhren; Operationszeiten im Millisekunden (ms)-Bereich (1 ms = 1/1000 s) Beispiele: ENI AC (Electronic Numerical Integrator and Computer) Gewicht : 30 Tonnen Die 17000 Röhren (Stromverbrauch: 174 KW) erforderten eine Klimaanlage, die mehr Strom als die Rechenanlage selbst verbrauchte. Fehlerfreie Arbeitszeit : ca. 45 %. Z22 (von Zuse KG) wurde ab 1955 vor allem an Hochschulen geliefert. Rechenzeiten : Addition : 0,6 ms Multiplikation: 15 ms IBM 650 Magnettrommelrechner (ab 1956 ausgeliefert) Beginn der Auslieferung von Computern an die Privatwirtschaft Deutsche Firmen beginnen (wieder) mit dem Bau von Datenverarbeitungsanlagen: Zuse KG, Siemens, Standard Elektrik Lorenz, Telefunken, VEB Carl Zeiss in Jena. c) Datenverarbeitungsanlagen der 2. Generation Eigenschaften: Schaltungsaufbau aus Transistoren Operationszeiten im 100 Mikrosekunden (Hs)-Bereich (1 ns = 1/1000 ms = 1/1000000 s = 1 0 " 6 s ) Beispiele: IBM 1400-Serie Siemens 2002 : volltransistorisierter Rechner mittlerer Größe Addition : 90 |is Multiplikation: 120 |xs d) Datenverarbeitungsanlagen der 3. Generation Eigenschaften : Schaltungsaufbau aus integrierten Schaltkreisen (vgl. hierzu auch IV 1.3) Operationszeiten im Mikrosekunden-Bereich.
1. Entwicklung der Datenverarbeitung
Vorteile:
25
Mehrere (ca. 30) elektronische Bauteile (Transistoren, Widerstände) werden mit ihren ,Lötverbindungen' in kleinen Kristallblöcken zusammengefaßt (daher integriert'). Durch Ätzverfahren werden in hochgezüchtet homogenen (gleichmäßig aufgebauten) Siliziumkristallen Gebiete mit Transistor- und Widerstandscharakter erzeugt und durch Aufdampfverfahren dazwischen metallische, d.h. leitende Verbindungen hergestellt. Diese Technik nennt man MonolithTechnik. Die gesamte Verfahrensweise nennt man Mikrominiaturisierung. Kompakte Bauweise (nur 1/100 und noch weniger des Raumes in üblicher Technik) Kurze Schaltzeiten (bis zu Bruchteilen von Mikrosekunden) Hohe Betriebssicherheit (keine Lötstellen!).
Die Rechner der 3. Generation lassen sich jedoch nicht allein durch den Stand der Schaltungstechnologie charakterisieren. Weitere Merkmale gewinnen an Bedeutung, vor allem die Betriebsart und die sogenannte Aufwärtskompatibilität. Die technische LeistungsVerbesserung der Rechner der 3. Generation wird noch gefördert durch neuartige, flexible Betriebsarten, wie: Multiprogramming und online-Betrieb (vgl. V 3.). Typisch für die Rechner der 3. Generation ist ferner das Modellangebot in sogenannten Familiensystemen. Das kleinste Modell einer solchen Rechnerfamilie kann baukastenförmig bis zum größten Modell erweitert werden. Erweiterungsteile, z. B. Speicherkomponenten, ermöglichen diesen stufenweisen Ausbau. Diese Gerätekompatibilität wird durch eine Programmkompatibilität unterstützt. Die Programme des Anwenders bleiben auch für die jeweils nächstgrößeren Rechnermodelle einsetzbar - meist jedoch mit gewissen Anpassungen. Der Befehlsvorrat der kleineren Modelle ist eine Untermenge des Vorrats der größeren Modelle innerhalb einer Rechnerfamilie. Beispiele für derartige Rechner-Familien sind: CDC 3000, CII Iris, IBM 360, ICL 1900, NCR-Century, Siemens 4004, UNIVAC 9000. e) Datenverarbeitungsanlagen der 4. Generation Schon die Rechner der 3. Generation können nicht mehr allein durch das Merkmal,Technologie der Schaltelemente' abgegrenzt werden. Erst recht gilt dies für die von Fachleuten ursprünglich ab etwa 1975 erwarteten Rechnerfamilien der 4. Generation. Eine berechtigte Skepsis macht sich inzwischen breit, ob in Zukunft überhaupt noch von deutlich abgrenzbaren ,Rechnergenerationen' gesprochen werden kann. Ursprünglich zum Teil als 4. Genera-
26
Teil I: Funktionale Grundlagen
tion verstandene Anlagen bezeichnet man inzwischen auch als Vorgänger-, Zwischen- oder 3-plus-Generation. Dazu zählen beispielsweise die Serien: Burroughs 1700, CDC Cyber, IBM 370, NCR Criterion, Siemens 7700, UNIVAC 90. 1975 stellte IBM das mit 1 Milliarde Dollar Investition vorangetriebene Projekt ,Future System' zurück. Erst nach einer Übergangszeit von 5 Jahren erwartet man Rechnerfamilien, die den anspruchsvollen Merkmalsanforderungen einer 4. Generation entsprechen. Zu diesem Merkmalskatalog zählt natürlich auch die weitere Verbesserung der Schaltungstechnologie. Die verstärkte Miniaturisierung führt zu integrierten Großschaltungen (LSI = Large Scale Integration) mit mehr als 100 Schaltelementen pro Chip (Siliziumplättchen). Die Operationszeiten liegen im Bereich der Nanosekunden; das bedeutet: 10 bis 50 Millionen Operationen pro Sekunde. Zur Veranschaulichung und Begründung für den Zwang zur kompakten Bauweise diene folgende Datenangabe: in 10 Nanosekunden (ns) legt das Licht 3 m zurück. Als weitere bedeutende Merkmale der 4. Rechner-Generation dürften sich erweisen: - Massenspeicher neuer Technologien (vgl. IV 2.7) - variable Mikroprogrammierung (vgl. I 3.6.1, V 4.1.1) - Mehrprozessor-Architektur (vgl. V 3.7) (dezentrale Computer-Intelligenz) - Terminal-Orientierung (vgl. IV 3.4) Gleitende Entwicklungen ersetzen jedoch zunehmend abrupte Wechsel von einer zur nächsten Generation. Obwohl also die Leistungssteigerung von Rechnergeneration zu Rechnergeneration nicht allein durch die schaltungstechnischen Verbesserungen beschrieben werden kann, liefern die folgenden Kennzahlen doch ein gewisses Bild dieser Entwicklung:
ab
Generation
Schaltelemente
Operationszeit (etwa)
relative Rechenzeit
1941 1946 1957 1964 (1975)
0 1 2 3
Relais Röhren Transistoren Monolithe LSI
100 ms 1 ms 100 us
1000 000 10000 1000 10 1
(4)
1 |JS
100 ns
Abb. 2: Vereinfachter Vergleich der Computer-Generationen
1. Entwicklung der Datenverarbeitung
27
f ) Bedeutsame, eigenständige Entwicklungen Für die Datenverarbeitungsanlagen, die Universal-Computer genannt werden, zeigt sich also in einer historischen Betrachtungsweise eine gewisse Kontinuität der Entwicklung. Die Rechnerstruktur bleibt im Prinzip erhalten, die Technologie und damit die Leistungsmerkmale werden stufenweise verbessert, die Anwendungen im wissenschaftlichen und kaufmännischen Bereich intensiviert, die Programmierung schrittweise verfeinert. Die Dynamik in der grundsätzlichen Kontinuität äußert sich in der Beliebtheit, diese Universalrechner in Computer der 1., 2., 3. und 4. Generation einzuteilen. Entwicklungen in der Technologie und Organisation der Datenverarbeitung, die eine gewisse Eigenständigkeit beweisen, dürfen dabei nicht übersehen werden. Dazu zählen z. B. die Mittlere Datentechnik und die Prozeßrechnerentwicklung. Mittlere Datentechnik (MDT) Bereits seit den 30er Jahren können Versuche beobachtet werden, dem Prinzip der starken Arbeitsteilung, wie es von der konventionellen Lochkartentechnik vorangetrieben wurde, die Idee der direkten Dateneingabe, wie sie in Buchungsund Fakturiermaschinen üblich war, entgegenzustellen. Heutige Formen der quellennahen Datenerfassung kehren zu dieser Idee zurück. Bis in die 60er Jahre boten sich dem Anwender einerseits die klassische Büromaschinentechnik, andererseits die Lochkartentechnik in ihrem Übergang zur (elektronischen) Computertechnik an. In die Lücke dazwischen versuchten - wie sich zeigt erfolgreich - verschiedene Unternehmen mit zunehmend funktionsreicheren .Abrechnungsautomaten', der sogenannten Mittleren Datentechnik (MDT), vorzustoßen. Ihre .mittlere' technologische Stellung zeigen diese MDT-Rechner, indem sie einerseits mit (fortentwickelten) Gerätekomponenten aus der Büromaschinentechnik ausgerüstet wurden: Tastatureingabe, Formulartransport und Druckwerke. Andererseits zeigten sie Merkmale der Computertechnik, wie: Elektronische Baugruppen, neue Speichermedien und interne Programmsteuerung. Besondere Bedeutung für die kombinierte Ein-/Ausgabe und die Karteiverwendung gewann eine eigenständige Entwicklung der MDT, das Magnetkonto. Kontokarten sind parallel zum seitlichen Kartenrand mit Magnetstreifen versehen. Die Magnetkontokarte kann also optisch und magnetisch beschrieben und gelesen werden. Die Ein- und Ausgabe der Daten erfolgt über eine Magnetkonten-Verarbeitungseinheit. MDT-Rechner können als tastaturorientierte Computer mit oder ohne Magnetkonten-Verarbeitungseinheit bezeichnet werden, die für die direkte Dateneingabe (-erfassung) und Lösung kaufmännischer Aufgaben (insbesondere des Rechnungswesens) besonders geeignet sind. MDT-Hersteller, nach Marktanteil geordnet, - sind: Nixdorf, Olivetti, Kienzle, Triumph-Adler, Philips, Taylorix, N C R und Burroughs. Weniger von der Rechnerstruktur, aber wegen gleichem Anwendungspotential ist hier das Modell IBM 32 einzuordnen.
28
Teil I: Funktionale Grundlagen
Mini-Computer Ein anderer, ebenfalls eigenständiger Zweig der Datenverarbeitungstechnik entstand aus der Entwicklung spezialisierter Computer für die Überwachung technischer Prozesse (vgl. VI 2.1.6). Diese schnellen Mini-Computer werden deshalb auch Prozeßrechner genannt. Ihr Kaufpreis liegt zwischen 50000 und 500000 DM. Anpassungen in der Rechnerstruktur und in den Programmiersprachen eröffnen ihnen zunehmend auch kommerzielle Aufgabenstellungen. Neue Technologien, wie hochintegrierte Schaltungsbaugruppen, können bei der Produktion dieser Mini-Computer schneller aufgegriffen werden als bei den großen Universalrechnern der 3. bzw. 4. Generation. Beispiele: AEG 80, P D P 11-Familie von Digital Equipment, 3000-Serie von Hewlett Packard, EPR-Serie von Krupp, 300-Familie von Siemens. Mikro-Computer Mikro-Computer sind seit 1971 auf dem Markt. Der hohe Integrationsgrad der Schaltungstechnik (Tausende von Schaltelementen auf einigen mm 2 Siliziumkristallfläche) und die Massenproduktion derartiger Integrierter Schaltungen (vgl. IV 1.3) ermöglichten ihr Angebot. Ihre Merkmale sind teilweise durch die Anwendung als Taschenrechner bekannt - wie: geringes Schaltplattenvolumen (in dm-Dimension), hohe Geschwindigkeit (ns-Bereich), geringer Preis (50 bis 5000 D M ) und Massenherstellung (Katalogbestellung). Beispiele: Intel: SBC 80/10 ( = Single Board Computer), Honeywell: TDC 2000 ( = Total Distributed Control). Die verschiedenen Entwicklungsrichtungen, nämlich Universalrechner, MDT, Mini- und Mikrorechner, nähern und ergänzen sich heute und führen voraussichtlich in nächster Zukunft aus ihrer quantitativen Leistungsverbesserung zu qualitativ neuartigen Formen der Datenverarbeitung. Die Dezentralisierung der Rechnerintelligenz' durch Rechner-Verbundnetze kündigt sich an und wird vereinzelt schon erprobt (vgl. V 3.7.2). g) Datenverarbeitung im COM ECO N Von den COMECON-Ländern können nur die UdSSR und die D D R als maßgebliche Computer-Produzenten angesprochen werden. Die Weltraumfahrt fordert und fördert natürlich in der Sowjetunion die Computer-Entwicklung, wenngleich jahrelang in der Elektronik, insbesondere bei den Integrierten Schaltungen ein erheblicher Rückstand hemmend wirkte. Im ersten Halbjahr 1976 wurde ein Computer Nayiri-4 angekündigt, der Merkmale der 4. Rechnergeneration aufweisen soll. Die Bemühungen um ausländische Großcomputer waren infolge des westlichen Embargos, das aus militärischen Überlegungen erlassen wurde, nicht immer erfolgreich. Aeroflot bucht mit einem UNIVACReservierungssystem, und das Lastkraftwagenwerk an der Kama arbeitet mit über einem Dutzend Prozeßrechnern der britischen Firma Ferranti und einem
1. Entwicklung der Datenverarbeitung
29
IBM-Informationssystem. Einzelne betriebliche Informationssysteme, kurz ASU genannt, sollen verstärkt mit gesamtstaatlichen Informationssystemen, die als O G A S bezeichnet werden, zu Verbundsystemen gekoppelt werden. Die D D R baut erfolgreich die Robotron-Familie, die als kleiner bis mittlerer Rechner der 3. Generation anzusprechen ist. Die Modelle Robotron 4000,4200 und 4201 werden auch in der B R D angeboten. Das DV-Fachkräftepotential wurde zielstrebig für die Entwicklung standardisierter Programme eingesetzt, die von den verschiedenen Betrieben ohne Mehrfachprogrammierung übernommen werden.
1.2 Rechnermarkt Geschwindigkeit und Vielfalt der Veränderungen im Bereich der Datenverarbeitung verlangen nach Methoden, diese Veränderungen durchschaubar zu machen. Im Vergleich etwa zu den ausgefeilten Statistiken des Automobilsektors wirken die statistischen Aussagen in der Datenverarbeitungsbranche geradezu unterentwickelt. Manch ein Hersteller, nicht zuletzt der Marktführer, hält sich mit Daten über Installationszahlen, Modellausstattungen, Lebensalter der Modelle usw. stark zurück. Ferner steht der Transparenz auch entgegen, daß heute die Klassifizierung der Rechnerangebote und -einsätze k a u m noch nach einsichtigen und aussagefähigen Kriterien möglich ist. Bis zur 3. Generation erfolgte die Unterscheidung nach der Entwicklungsstufe der Schaltungstechnologie (Relais, Röhren, Transistoren, Integrierte Schaltkreise). Ein anderer Unterscheidungsversuch orientiert sich an den Anwendungsschwerpunkten der jeweiligen Rechnergattungen: - kommerzielle Direktverarbeitung ( M D T = Mittlere Datentechnik) - Prozeßregelung (Minicomputer) - technisch-wissenschaftliche Sonderanwendungen (vor allem: Großrechner, ,Jumbo-Computer') - universelle betriebliche Anwendungen, insbesondere aber kommerzielle Aufgaben (typische ,Universal-Rechner' der 3. Generation, Hersteller dieser Anlagen werden ,Mainframer' genannt). Diese Art der Unterscheidung für eingesetzte Rechner wird zunehmend problematisch, da die Tendenz zu universellem Einsatz aller Modellarten wächst; so lösen beispielsweise Minicomputer bereits kommerzielle Aufgaben. Ähnlich problematisch bleibt die Klassifizierung nach ,der Größe'. Immerhin bieten sich verschiedene Größenzahlen an, insbesondere .Speicherkapazität' und ,Wert' (Monatsmiete oder Kaufpreis). In der Praxis findet man Größenbezeichnungen wie: Taschen-, Tischrechner, Mikroprozessoren, Mikro-, Mini-, Supermini-, Midi-, Groß- und Jumbo-Computer. Infolge der baukastenförmigen
30
Teil I: Funktionale Grundlagen
Familiensysteme verlor das Merkmal .Speicherkapazität' seine Abgrenzungsbedeutung. Der Preis für die angebotenen Rechner umspannt ein breites Spektrum zwischen Taschenrechner (ca. 100 DM), Minicomputer (ca. 200000 DM) und Großrechner (ca. 10 Mio. DM). Die bekannte DieboldStatistik stellte 1975 ihre seit 1965 stückzahlorientierte Computer-Statistik auf das Kriterium ,Wert' um. In der Zukunft dürfte eine Klassifizierung der Rechner nach der Struktur und Anordnung ihrer Geräte und Komponenten, nach der sogenannten ,Rechner-Architektur' (vgl. V 3.7), eine Rolle spielen. Sowohl das Volumen als auch die Wechselwirkungen auf benachbarte und Folgemärkte ließen den Rechner-Markt (oder breiter: den Markt für Datenverarbeitungsgeräte) in den letzten 20 Jahren zu einem einflußreichen Wirtschafstfaktor heranwachsen. Die Zahl der Rechner entwickelte sich exponentiell: Land
Bundesrepublik Deutschland *
Jahr
1.1.60
1.4.65
a) Universalrechner b) Prozeßrechner c) MDT, Terminal-/ Datenerfassungsgeräte a) + b) a) + b) + c)
1.1.75
1657
Schweiz**
1.1.76
Mitte 75
12357
13422
944
8503
11399
420
1447
170
1.1.76
Österreich*
79333 8213
20860
3104
24821
2183
2080
1364
104154 9577
Abb. 3: Entwicklung der Rechnerzahlen
In der BRD befinden sich demnach über 100000 Rechner unterschiedlichster Größe im Einsatz. Ihr Wert von 26 Milliarden DM und der für 1980 erwartete Wert von etwa 42 Mrd. D M geben einen Hinweis auf die gesamtwirtschaftliche Bedeutung des DV-Marktes. Seine Dynamik unterstreicht auch folgendes Ergebnis: Der Fachzweig Büro- und Informationstechnik erreichte von 1960 bis 1974 eine Zunahme der Produktionswerte auf das 7,6fache; der Durchschnitt aller Maschinenbau-Fachzweige lag dagegen bei ,nur' 3,2***. Das DVBudget der Wirtschaftsunternehmen beträgt etwa 1 % ihres Umsatzes. * Diebold Management Report 4/76. ** Institut für Automation und OR, Universität Freiburg, Schweiz. *** VDMA, Industriemagazin 5/1976.
1. Entwicklung der Datenverarbeitung
31
Die heutigen Rechner-Produzenten fanden auf unterschiedlichen Wegen zu dem Rechner-Markt: - über Bürogeräte-Herstellung (seit 1. Generation: Universal-Rechner) - über Bürogeräte-Herstellung (parallel zur 3. Generation: MagnetkontenRechner MDT) - über Regelungstechnik (Prozeßrechner-Hersteller) - über Schaltelement-Hersteller (insbesondere seit mit der 3./4. Generation die Bedeutung der Integrierten Schaltkreise wuchs) - über sogenannte Peripheriegeräte-Herstellung (z.B. ausgehend von der Magnetband-Produktion) - über Software-Entwicklung (z.B. Standard-Programme) - über die Nachrichtentechnik (z. B. Datenfernverarbeitung). Das Anwachsen der Marktchancen für kleinere Rechner unterschiedlichster Ausstattung bot immer neuen Herstellern die Möglichkeit, sich auf dem DV-Markt zu versuchen. Immer wieder scheiden aber auch Hersteller aus diesem dynamischen Markt der Datenverarbeitung aus, nicht nur kleine Anbieter. Beispiele: 1971 1973 1974 1975
General Electric, RCA Memorix Telefunken Computer G m b H Singer, Unidata, Xerox
Immer wieder werden neue Fusionen oder Kooperationsformen (Joint venture) gesucht, um ein hinreichend breites Produkt- und Service-Spektrum anbieten zu können, um auf dem internationalen Markt vertreten zu sein, um die hohen Investitionsmittel für die Innovationen aufbringen zu können und um sich schnellen Zugang zu ergänzendem technologischem Wissen zu verschaffen. Die dominierende Marktstellung der Unternehmung IBM - ihr wertmäßiger Marktanteil in der BRD und Österreich an Universalrechnern 1975 betrug etwa 60%, in der Schweiz etwas unter 50 % - forderte in den letzten Jahren verschiedene Gegenstrategien der Konkurrenten und auch staatlicher Stellen heraus. 1975 standen in den USA etwa 20 Antitrust-Verfahren gegen IBM an, eingeleitet von Konkurrenten oder/und dem Justizministerium. Einige wurden bereits über außergerichtliche Vergleiche (Consent Decree) beendet. IBM-Konkurrenten versuchen ferner mit Hilfe verschiedener Kooperations- und Fusionsformen den angeblich für das mittelfristige Überleben kritischen Schwellwert von 10% Marktanteil im internationalen Geschäft zu überspringen. In der BRD verfolgen die drei Datenverarbeitungsförderungsprogramme des Ministeriums für Forschung und Technologie zum Teil den Versuch, im nationalen Bereich Gegengewichte zum Marktführer zu schaffen. Vor allem aber streben diese Förderungsprogramme die breite Anhebung des allgemeinen Wissensstandes auf dem Gebiet der Schlüsseltechnologie Datenverarbeitung' an. Die Zweck-
32
Teil I: Funktionale Grundlagen
mäßigkeit der Mittelverteilung auf die einzelnen Förderungsmaßnahmen, vor allem aber die direkte Subventionierung einzelner Unternehmen bleibt umstritten. Die drei Programme umfaßten: 1. DV-Förderungsprogramm 1967-1970 0,35 Mrd. D M 2. DV-Förderungsprogramm 1971-1975 2,4 Mrd. D M davon: Bildung 38%, Ind. Forschung u. Entwicklung 29% Anwendungsförderung 23 % 3. DV-Förderungsprogramm 1976-1980 dynamisches Budget
Aufgaben zu 11 (1) Vorteil des (heute üblichen) Hindu-Arabischen Zahlensystems gegenüber dem Römischen Zahlensystem ist: a) Einführung der Null und der Stellenschreibweise b) Einführung des Dezimalsystems c) Einfache Durchführung der Multiplikation (2) Was bedeutet der Begriff ,Abacus'? a) Name einer Herstellerfirma von Rechnern b) Name eines Code für die interne Darstellung von Daten c) Handrechengerät der Römer (3) Wer war Hollerith? a) Erfinder des Rechenschiebers b) Erfinder der Lochkartentechnik c) Konstrukteur der ersten Relais-Rechner (4) Nach welchen Kriterien unterscheidet man die Rechner der 1., 2. und 3. Generation? a) danach, ob sie im Dual-, Binär- oder Dezimalsystem arbeiten b) nach der Kapazität der Speicher c) nach der Schaltungstechnik (Röhren, Transistoren, integrierte Schaltkreistechnik) (5) Wie groß ist die Schalt-(Operations-)Zeit bei Rechnern der 3. Generation? a) ca. 1 n s = 10~ 6 s b) ca. 100 ns = 10" 4 s c) ca. 10 ms = 10" 2 s (6) Unter .Kompatibilität' eines neuen Rechnermodells versteht man: a) daß die Gerätekomponenten und die Programme des bisherigen Modells auch für das neue Modell eingesetzt werden können. b) daß kompakte integrierte Schaltkreise als Technologie des Modells verwendet werden.
2. Analog- und Digital-Rechentechnik
33
c) daß ein Rechnermodell der 4. Generation ein solches der 3. Generation ablöst. (7) Die Mittlere Datentechnik M D T hat ihren Ursprung vor allem in: a) der Prozeßrechentechnik b) der Schaltelemente-Elektronik c) der Büromaschinentechnik (8) Für den Preis von zwei Großrechnern ließe sich theoretisch ein Verbund aus x größeren Mikrocomputern erstellen. a) x = etwa 40 b) x = etwa 400 c) x = etwa 4000 (9) Wieviele Rechner (Universal- und Prozeßrechner zusammen) entfielen auf 100000 Erwerbstätige in der BRD? a) ca. 40 b) ca. 90 c) ca. 350 (10) Wie wäre die Ausstattung der Hochschulen verbessert worden, wenn die gesamten Mittel des 1. und 2. DV-Förderungsprogramms zur Hälfte zum Kauf durchschnittlicher Prozeßrechner und zur Hälfte zum Kauf von Großrechnern verwendet worden wären? a) ca. 13 Großrechner und ca. 6000 Prozeßrechner b) ca. 130 Großrechner und ca. 6000 Prozeßrechner c) ca. 130 Großrechner und ca. 600 Prozeßrechner
2. Analog- und Digital-Rechentechnik Bei den modernen Rechenanlagen unterscheidet man zwei Gruppen, und zwar nach ihrem Prinzip: - Analog-Rechenanlagen (Stetig-Rechenanlagen) - Digital-Rechenanlagen (Ziffern-Rechenanlagen) Die erste Bezeichnung leitet sich vom griechischen ,ana logon' ab, was soviel wie ,im richtigen Verhältnis' heißt. Die zweite Bezeichnung ist auf den lateinischen Begriff digitus ( = Finger) zurückzuführen. In der Aufstellung der geschichtlichen Entwicklung haben wir schon zwei typische, elementare Vertreter der beiden Arten von Rechenanlagen kennengelernt. Es waren dies: - der Rechenschieber als Vertreter der Analog-Rechenanlagen, - der Abacus als Vertreter der Digital-Rechenanlagen.
34
Teil I : Funktionale Grundlagen
Beim Rechenschieber werden Rechenoperationen durchgeführt, indem man ,Strecken' gegeneinander verschiebt und dann vergleicht.
< 1 1
• 1 1
[
1
II., i 1
—
1 1111 111 1
1
•
11111 1
Abb. 4: Analoges Rechengerät: Rechenschieber
Dabei kann das Verschieben kontinuierlich erfolgen, d. h. die Zunge des Rechenschiebers kann zwischen unterster und oberster Einstellung jede beliebige Zwischenstellung einnehmen. Inderana/ogewRechen-(Meß-,Regel-,Steuer-)technik werden physikalische Größen, die ihrer Natur nach schon .zeitliche Stetigkeit' aufweisen, als Rechengrößen verwandt. Dabei wird die eigentlich interessierende Größe (z.B. Durchflußmenge) durch eine andere physikalische Größe (z.B. Zeigerausschlageines Meßinstruments) ersetzt (oder besser: .simuliert').
Analog-Rechengerät
interessierende Größe, Information
simulierende physikal. Größe
Rechenschieber Uhr Gas- od. Stromzähler
Zahlenwert Zeit durchgeflossene Gas- oder Strommenge Lösung von Rechenoperationen wie : DifferentialGleichungen, die Bewegungen beschreiben, Schwingungen berechnen, Flugbahnen simulieren.
Länge Winkelstellung des Zeigers kontinuierliche Drehung eines Zahnrades Spannung (oder: Strom)
Analog-Rechenanlage
Abb. 5 : Beispiele für Analoggeräte
Bei der Digital-Rechentechnik wird die numerische, d.h. die zahlenmäßige Erfassung von irgendwelchen Aussagen angewandt. Alle Aussagen (z.B. Messungen) liegen ziffernmäßig vor und werden arithmetisch (d.h. mit Hilfe der vier Grundrechenarten) verarbeitet. Im Gegensatz zur Analog-Rechentechnik, bei der sich die Größen kontinuierlich (stetig) ändern können, dürfen bei der Digital-Rechentechnik die Rechengrößen nur diskrete (genau festgelegte) Zustände annehmen.
2. Analog- und Digital-Rechentechnik
35
So darf beim Kugelrechengerät Abacus (Abb. 1) eine Kugel: entweder: von rechts nach links verschoben werden oder: sie muß auf ihrem ursprünglichen Platz verbleiben. Zwischenzustände sind als Rechenoperation sinnlos (und damit unzulässig). Die Kugel darf also auf dem Draht nur zwei diskrete Stellungen einnehmen. Ein einfaches Beispiel aus dem Alltag soll uns den Unterschied zwischen Analogund Digital-Rechentechnik veranschaulichen: Geschwindigkeitsmessung mit einem Auto: a) digitale Rechentechnik: das Auto durchfahrt z. B.: 1 km Wegstrecke mit konstanter Geschwindigkeit, wofür die Zeit: 100 sec. gestoppt wird. Wegstrecke: 1 km Zeit: 100 sec. Darausergibt sich die Geschwindigkeit über die arithmetische Grundoperation ,Division' zu: 1 km/100 sec. = 36 km/h b) analoge Rechentechnik: Tachometer die Geschwindigkeit des Autos wird über die Drehzahl eines Zahnrades und über mechanische Vorrichtungen als Zeigerausschlag auf einer geeichten Skala angezeigt. interessierende Größe (Information): Geschwindigkeit des Autos simulierende physikalische Größe: Zeigerausschlag bzw. Drehzahl des Zahnrades Mit beiden Zuordnungen: kontinuierlich analog diskret digital ist der wesensmäßige Unterschied zwischen Analog- und Digital-Rechentechnik in leicht faßliche Form gebracht. Beispiel: kontinuierliche Zeigerbewegung bei Abb. 6 siehe S. 36, 37
Kostenaufwand • Analog-Rechenanlage
Digital-Rechenanlage
Genauigkeit • Abb. 7: Abhängigkeit der Kosten von der geforderten Genauigkeit (qualitative Darstellung)
36
Teil I: Funktionale
Grundlagen
X>
•a T3 e 3
.-H ^
1
eil
u
X
ei
H JS
ö
ä o
ö O ä o .sä . 2 So . 2a oa s a g a j g f i g UHS O «5 u o o &0 2i bo Si a ., g y D, tü* O. s s O B O W O cn
VI o U-i s S «
s a)
•a M
C J 5 -Ö H O (LC > •3 W B 3S -O j j Pü ^ CO N fc .2.-
••o
• N X* co — o » c S
«> g
X
•S II
n
rt-a
11
i .2 2
+ si, X
I trf' II X
E 3
u
o
o 'S H I I u i-i
t*
S
a
«o • s 9
•g-a o. •g O ? JO w 3 Ö -H /n + ™/". z -l =Z°-Z~ 1 = 0 (2) Welchen Zahlenwert hat der Ausdruck 81" 0 , 2 5 ? a ) 8 1 -0,25 = 8 1 1 - 0 . 2 5 = 8 1 0 , 7 5 = g l 3/4 b) 8 1 - 0 ' 2 5 = 81~ 1/4 g l -0,25 = g l - 1 / 4
=l/V81 = l/4v^=l/3 = =3
(3) Wie groß ist der Transformationsmodul M für die Umwandlung von dekadischen Logarithmen in Dual-Logarithmen nach der Regel: ldz = M • lgz? a) M = log 10 2 = lg 2 = 0,301 b) M = lg(10 2 ) = 2-lg 10 = 2 - 1 = 2 c) M = l/log 10 2 = 1/lg 2 = 1/0,301 = 3,32 (4) Welchen Wert besitzt der Binomialkoeffizient ^ a)
C )
7\ 4/
/7\ Ui
7! 4! ( 7 - 3 ) !
5040 24-24
7! _5040 _ 3! (7 — 3)! 6• 24
35 4
2. Zahlensysteme
109
2. Zahlensysteme In diesem großen Abschnitt werden wir uns mit den verschiedenen Zahlensystemen befassen, die gegebenenfalls für die DV von Interesse sein können. Mit dem Dezimal- und dem Dual-System müssen wir uns eingehender beschäftigen, da sie für die DV von besonderer Bedeutung sind. So werden wir die Durchführung der 4 Grundrechenarten in diesen beiden Systemen sowie die Umwandlung des einen Systems in das andere eingehend untersuchen.
2.1 Definition von Zahlensystemen Anhand des Dezimal-Systems werden wir versuchen, die Eigenschaften ausfindig zu machen, die es uns ermöglichen, eine verallgemeinerte Definition eines Zahlensystems anzugeben. 2.1.1 Dezimalsystem Um also die Bedeutung der verallgemeinerten Schreibweise dieses Zahlensystems und anschließend des Dual-Systems zu verstehen, gehen wir vorteilhaft von dem uns allen aus dem Alltag geläufigen Dezimal-System, das auf der Basis B = 10 beruht, aus.
2.1.1.1 Ganze Dezimalzahlen Zunächst beschränken wir uns auf ganze Dezimalzahlen, wir klammern also die Brüche noch aus. a) Stellen- und
Potenz-Schreibweise
Wie wir schon in 11.1 festgestellt haben, ist die Stellenschreibweise für das Dezimal-System typisch. Danach bedeutet die Stellenschreibweise 6809 folgendes: 6809 = 6 1000 + 8 100 + 0 1 0 + 9 1 Der Wert ein und derselben Ziffer hängt von ihrer Stellung innerhalb der Zahl ab. Von rechts nach links nimmt ihr Wert von Stelle zu Stelle um den Faktor B = 10 zu. Die in der Ziffernstellung steckenden 10er Faktoren werden vom Lesenden beim Interpretieren der Dezimalzahl stillschweigend mitberücksichtigt. Verwenden wir die uns bekannte Potenz-Schreibweise für die 10er Faktoren, so erhalten wir: Stellenschreibweise: Potenzschreibweise: 6809 = 6 • 103 + 8 • 102 + 0 • 101 + 9 • 10°
110
Teil II: Mathematische Grundlagen
Numerieren wir also die Stellenzahl von rechts nach links mit 0, 1, 2, (beachte: Beginn der Numerierung mit 0), so gibt der Exponent der 10er Potenz die Stelle der Ziffer an, die vor dieser Potenz steht. Die Potenzschreibweise 8 • 102 besagt demnach: die Ziffer 8 steht in der Stellenschreibweise auf Nr. 2. Wir können nun allgemeiner angeben: Eine beliebige, ganze Dezimalzahl z mit einer Stellenzahl n + 1 würde in Stellenschreibweise lauten: z = bnbn_1
b2 bj b0
Hierbei können die bj jeweils eine der Ziffern 0, 1, 2 , . . . 8, 9 des DezimalAlphabets bedeuten. In bj ist nacheinander i = 0 , 1 , 2, n — 1, n zu setzen. Beispiel Bei unserer 4stelligen Dezimalzahl z = 6809 wäre: n = 3,
be = 9,
bx=0,
b2=8,
b3=6
In Potenzschreibweise würde die allgemeine Darstellung einer ( n + l)stelligen, ganzen Dezimalzahl (Basis B = 10) lauten: z = b n - 10n + b n _ 1 • 10 n _ 1 + . . . . + b t • 101 + b 0 -10°. Auch hier gilt: bj = eine Ziffer aus dem Dezimalalphabet wobei i =0, 1,2, n. b)
Kurzform
Um den Schreibaufwand zu reduzieren, verwenden wir eine Kurzform, die sich des sogenannten Summenzeichens bedient: z = £ bj • 10' i= o
Diese Darstellung besagt, daß für i nacheinander die Werte 0 , 1 , 2 , . . . . n — 1, n, genommen, der jeweilige Ausdruck bj • 10' gebildet werden soll und alle diese Ausdrücke addiert werden sollen. Diese Summation ergibt explizit die Potenzschreibweise. Man sagt: i = o ist die untere Grenze der Summe i = n ist die obere Grenze der Summe
2.1.1.2 Echte Dezimalbrüche Bisher haben wir uns nur mit ganzen Dezimalzahlen befaßt. In der üblichen Stellenschreibweise können wir aber mit Hilfe der Kommastellung auch gebrochene
2. Zahlensysteme
111
Zahlen, sogenannte Dezimalbrüche anschreiben. So werden etwa DM-Angaben mit Pfennigbeträgen als Dezimalbrüche in Stellenschreibweise angegeben (z. B.: 1,25 DM). Man unterscheidet zwischen echten und unechten Brüchen. Ein echter Bruch (z. B.: 1/4 = 0,25) enthält keinen ganzzahligen Anteil. Ein unechter Bruch läßt sich in einen ganzzahligen Anteil und einen echten Bruch aufteilen. Beispiel unechter Bruch = ganzzahliger Anteil + echter Bruch 5/4 = 1,25 = 1 + 0,25 Die echt gebrochene Dezimalzahl z = 0,25 lautet in Potenzschreibweise: z = 0,25 = 5 • 10" 2 + 2 • 10" 1 + 0 • 10° Die Kurzform hierzu lautet: o
z = £ bj • 10' i= 2 '
mit:
b0 = 0 b_j =2 b_ 2 = 5
Eine echt gebrochene Dezimalzahl besitzt demnach als untere Summengrenze eine negative ganze Zahl und als obere Summengrenze 0. Es gibt aber auch Brüche, die unendliche Dezimalbrüche ergeben. Beispiel 2 = 1/3 = 0 , 3 3 3 . . . . =0,3 2 = 1/7 = 0,142857 142857... =0,142857 Diese Ausdrücke brechen an keiner Stelle 10' mit endlichem, ganzem negativem i ab. Für die untere Summengrenze müssen wir also i = - oo (i gleich minus Unendlich) zulassen. Beispiel z = 1/3 lautet in Kurzform: z=
i
bj• 10'
sonst:
= ? bä = 3
2.1.1.3 Allgemeine Dezimalzahl Wir wollen nun auch noch unechte, unendliche Brüche zulassen. Beispiel 2 = 24/11 =2,4555
=2,45
112
Teil II: Mathematische Grundlagen
Als zusammenfassendes Ergebnis unserer Überlegungen in 2.1.1.1 und 2.1.1.2 können wir dann allgemein festhalten: Jede beliebige Dezimalzahl z (ganz, echt oder unecht gebrochen, endlich oder unendlich gebrochen) läßt sich in folgender Form darstellen: z= £
bd -10'
i= m
wobei die b; eine der Ziffern 0, 1 , . . . 8, 9, des Dezimalalphabets bedeutet und i die ganzen Werte von m bis n durchläuft. Welche Werte m und n jeweils annehmen, können wir aus der Zusammenstellung der bisherigen Ergebnisse entnehmen. Stellenschreibweise
Z = bnbn-l...bo,...bm + lbn
Potenz- -— schreibweise —
ausgeschrieben — z = b n • 10n + ... +b 0 • 10° + . . . + b m • lO™ Kurzform
z = Z bi• 10'
Abb. 49: Darstellungsarten einer Dezimalzahl
Abb. 50: Verschiedene Formen von Dezimalzahlen
2. Zahlensysteme
113
2.1.2 Polyadisches Zahlensystem Durch den täglichen Umgang mit dem Dezimai-System (Währungseinheit und Längeneinheit sind bei uns dezimal aufgebaut) sind wir damit so sehr vertraut, daß wir i.a. gar nicht daran denken es nur als ein Zahlensystem unter vielen möglichen zu sehen. Schon in der Schule werden wir doch nur mit dem DezimaiSystem vertraut gemacht. Dabei wäre der Umgang mit anderen Zahlensystemen - beim selben Lernaufwand - keinesfalls schwieriger. Wir sind nur nicht vertraut damit. Es gibt sogar Zahlensysteme, deren Rechenregeln um vieles einfacher als die des Dezimal-Systems sind. So wird z.B. das Dual-System u.a. gerade aus diesem Grunde in der DV eingesetzt (vgl. 2.2). Am Dezimal-System ist das Charakteristische die Basis B = 10. Es ist aber denkbar, Zahlensysteme mit einer anderen Basis aufzubauen. Die Basis B gibt den Systemen auch ihren Namen, wie: B= 2 B= 5 B= 8
Dual-System Quinär-System Oktal-System
Beim Dezimal-System gibt B = 10 den Faktor 10 an, um den sich die einzelnen Stellen der Dezimalzahl unterscheiden. Ferner sind nur die zehn Ziffern des Dezimal-Alphabets 0 , 1 , 2 , . . . 8.9 zugelassen. Völlig analog gibt die Basis B = 8 beim Oktal-System den Faktor 8 an, um den sich die einzelnen Stellen der Oktalzahl unterscheiden. Zugelassen sind hier die acht Ziffern des Oktal-Alphabets 0,1, 2 , . . . 6, 7. Beispiel Die Oktalzahl 352 würde in Potenzschreibweise lauten: z = 352 = 3 • 8 2 + 5 • 81 + 2 • 8° Eine Oktalzahl lautet allgemein: z= £
b,-8*
i= m
wobei b; jeweils eine Ziffer aus dem Oktal-Alphabet 0, 1, 2 , . . .6, 7 bedeuten kann. Es gilt also die Einschränkung: 0gb;! + B (b 2 + Bb 3 )): B = b 2 + Bb 3 (b 2 + B b 3 ) : B = b3 b3 : B = 0 d . h . zB = b 3 b 2 b , b 0 Beispiel a) dezimal in dual (B = 2) gegeben: z 1 0 = 53 5 3 : 2 = 26 Rest 1 26:2=13 RestO 13:2= 6 Rest 1 6 : 2 = 3 Rest 0 3 : 2 = 1 Rest 1 1:2=0 Rest 1 z 2 = 110101 b) dezimal in sedezimal (B = 16) gegeben: z 10 = 493 4 9 3 : 1 6 = 30 Rest 13 = D 3 0 : 1 6 = 1 Rest 14 = E 1 :16= 0 Rest 1
Rest Rest Rest Rest
b0 bj b2 b3
2. Zahlensysteme
139
2.3.3 Dual in Sedezimal (und zurück) Die Umwandlung einer Dualzahl in die entsprechende Sedezimalzahl (B = 16) erfolgt entsprechend der bisherigen Überlegungen durch fortlaufende Division modulo 16. Es ist bereits bekannt, daß eine Multiplikation bzw. Division mit 2 durch eine Stellenverschiebung um 1 Stelle nach links bzw. rechts bewirkt wird. Die Division mit 16 = 2 4 erreicht man demnach durch eine Stellenverschiebung um 4 Dualstellen. Diese Überlegung führt zu folgendem Umwandlungsverfahren: Die Dualzahl wird von rechts nach links in Tetraden ( = 4 Dualstellen) aufgespalten. Jeder Tetrade ordnet man die zugehörige Sedezimalziffer zu. Die Gesamtheit aller Sedezimalziffern ergibt die gesuchte Sedezimalzahl. Beispiel gegeben: z 2 = 111101101 Tetradenbildung Sedezimalziffern d.h. z 16 = 1ED
0001 1
1110 E
1101 D
Die Umwandlung einer Sedezimalzahl in die zugehörige Dualzahl erfolgt entsprechend, gegeben: z 16 = A 3 Tetraden: 1010|0011 Dualzahl z 2 = 10100011 Aufgaben zu II 2.3 (1) Wie lautet die Dezimalzahl z 10 = 702 als Sedezimalzahl? a) 2BE b) 702 c) EB2 (2) Wie lautet die Dezimalzahl 129 in tetraden-dezimaler Form? a) 1111 2222 9999 b) LOOOOOL c) OOOL OOLO LOOL (3) Wie lautet die Dezimalzahl 134 als Dualzahl? a) LOOOOLLO b) LOLLOOLO c) L O L O O L L L L O O (4) Wie lautet der Dualbruch LOLLO,LOL als Dezimalbruch geschrieben? a) 22,625 b) 22,5 c) 20,5
140
Teil II: Mathematische Grundlagen
(5) Wie lautet die Dualzahl L L O L L O L L als Dezimalzahl geschrieben? a) 1313 b) 219 c) 438
2.4 Gleitpunktrechnung F ü r wissenschaftlich-technische Aufgaben, die große Zahlenbereiche überstreichen, sind DVA mit Festpunkt nicht vorteilhaft. U m eine Überschreitung des Zahlenbereichs zu vermeiden, müssen an entsprechenden Stellen im Programm Kontrollen eingebaut werden, die gegebenenfalls passende Maßstabsfaktoren einführen. Dies bedeutet erhöhten Programmierungsaufwand und vor allem starke Erhöhung der Rechenzeiten. Diese Nachteile vermeidet die Gleitpunktdarstellung der Zahlen.
2.4.1 Gleitpunkt-Struktur Die Gleitpunktschreibweise von Zahlen führt sozusagen den Maßstabsfaktor im Wort gleich mit. Ein Gleitkommawort setzt sich aus zwei Teilen zusammen: Mantisse p und Charakteristik q. In 2.2.1 hatten wir gesehen, daß man jede Zahl in eine normalisierte ganze oder endlich gebrochene Zahl p und einen Maßstabsfaktor B q aufteilen kann, wobei B = Basis des Zahlensystems: z= ±p-Bq Bei der Festkomma-Darstellung wird der Maßstabsfaktor B q innerhalb der DVA nicht mitgeführt - der Programmierer m u ß ihn sich selbst ermitteln. Die Gleitkomma-Darstellung unterscheidet sich gerade dadurch, daß hier der Maßstabsfaktor B q in geeigneter F o r m im Wort mitgeführt wird. Es ist dabei nicht nötig, den gesamten Faktor B q ins Wort aufzunehmen. Die benötigte Information wird uns allein von dem Exponenten q geliefert. Die Basis B liegt ja für die DVA fest und kann nicht verändert werden, d.h., sie ist nicht variabler Informationsträger. Eine kleine Korrektur müssen wir allerdings noch anbringen. Für den Maßstabsexponenten q genügen im Dezimal-System im allgemeinen 2 Dezimalstellen pro Wort. Damit sind nämlich für q die Werte von 0 bis 99 und damit die Maßstabsfaktoren von 10° bis 1 0 " darstellbar. Dies ist ein ausreichender Bereich. Wir wissen aber, daß für den Maßstabsexponenten q auch negative Werte vorkommen können. Dies könnten wir durch eine zusätzliche Exponenten-Vorzeichenstelle berücksichtigen (z.B.: IBM 360).
2. Zahlensysteme
141
Häufiger jedoch wird eine sog. Charakteristik q' eingeführt. Man bildet q' einfach durch Addition einer festen, positiven, ganzen Zahl q 0 zum Maßstabsexponenten q. q' = q + qo Dadurch erhält man stets positive Werte für die Charakteristik q'. Beispiel Beim Dezimal-System ergäbe sich etwa: Es wird gewählt: Konstante q 0 = 50 aus dem Maßstabsfaktor Bq= 1(T 5 0 bis 10 49 mit dem Exponent q = — 50 bis + 49 wird damit die Charakteristik q' = 0 bis 99, d. h. durchweg positiv. Die Mantisse p stellt nichts anderes als ein normalisiertes .Festpunktwort' dar. Ein kleiner Nachteil gegenüber der Festpunktschreibweise bei gleicher Wortlänge ergibt sich dadurch, daß die (meist zwei) Stellen für die Charakteristik q' als zählende Stellen der Mantisse p verloren gehen. Ein Gleitpunktwort sieht in der DVA allgemein wie folgt aus.
/
±
v Vorzeichenstelle
Gleitpunktwort /N
\
.... v Mantisse p
Charakteristik q'
Abb. 64: Allgemeiner Aufbau eines Gleitpunktwortes Da nur der Maßstabsexponent (genauer: die Charakteristik), nicht aber die Basis B des Zahlensystems im Wort explizit dargestellt wird, spricht man von der Gleitpunktschreibweise häufig auch als von der ,Halblogarithmischen Darstellung'. Beispiel Von der Ausgabe-Einheit wird etwa die Dezimalzahl: 0,006809 =0,6809 • 10" 2 =0,6809 • 10 48 • 10" 5 0 =0,6809 • 10 48 • (10- q °) in Gleitkomma-Darstellung folgendermaßen ausgedruckt: 6809/48. Bei den Grundrechenarten in der Gleitpunktschreibweise werden beide Teile des Wortes (Mantisse, Charakteristik) getrennt verarbeitet. Wesentlich neue Überlegungen gegenüber der Festpunktschreibweise treten dabei nicht auf. Auf-
142
Teil II: Mathematische Grundlagen
grund der Wortaufteilung in Mantisse und Charakteristik, sowie deren getrennte Behandlung während einer Operation, sind in der Gleitpunkttechnik mehr Elementarschritte und dadurch wesentlich mehr verdrahtete Rechensteuerung erforderlich. Dies ist nicht verwunderlich, denn das schwierige Manipulieren mit den Maßstabsfaktoren in der Festpunkttechnik wird dem Programmierer gerade durch diese zusätzliche Internsteuerung abgenommen. Ein anderer, häufig eingeschlagener Weg ist folgender: Durch abgespeicherte Mikroprogramme wird eine reine Festpunkt-Maschine zur Rechnung in der Gleitpunkttechnik befähigt. Die dadurch gewonnenen Einsparungen am Steuerwerk gehen natürlich auf Kosten der Rechengeschwindigkeit.
2.4.2 Gleitpunkt-Addition Bei der Festpunkttechnik mußte der Programmierer darauf achten, daß stets nur Zahlen mit denselben (fiktiven, ungeschriebenen) Maßstabsfaktoren addiert werden (vgl. Abb. 55). Ganz entsprechend dürfen bei der Gleitpunktschreibweise nur Zahlen mit gleichem Maßstabsexponenten, d. h. mit gleicher Charakteristik, addiert werden. Sind die Charakteristiken der Summanden noch verschieden, so nimmt die Rechensteuerung automatisch die entsprechende Umformung vor. Dazu wird die Differenz der Charakteristiken gebildet. Das Vorzeichen der Differenz gibt an, welche Charakteristiken die kleinere ist. Der Betrag der Differenz zeigt an, um wieviel diese kleiner ist. Die Mantisse des Summanden mit der kleineren Charakteristik wird nun um so viele Stellen nach rechts verschoben (ausgerichtet), wie der Betrag der Differenz angibt. Dies bewirkt die Angleichung der Charakteristiken. Die Addition der Mantisse erfolgt in bekannter Weise. Beispiel Darstellung: 680 55 + 743 53 =
?
Bedeutung: 0,680 • 10 5 + 0,743 • 10 3 =
?
Die 2. Charakteristik ist kleiner, da : 55 — 53 = 2 > 0 (5 — 3 = 2 > 0) damit U m f o r m u n g und Addition der Mantissen : 680 55 0,680 • 10 5 + 007 55 + 0,007 • 10 5 = 687 55 = 0,687-10 5 Die Mantisse p kann gegebenenfalls den zugelassenen Wertbereich (hier 0,999)
2. Zahlensysteme
143
überschreiten. Dann führt die Rechensteuerung automatisch eine Normalisierung durch Rechtsverschiebungen um 1 Stelle und gleichzeitige Erhöhung der Charakteristik um 1 durch. Beispiel Darstellung: 680 55 + 748 55 = 1428 55 = 143 56
... Normalisierung
XT
Bedeutung: 0,680 • 105 + 0,748 • 10 5 = 1,428 - 10 s 6 = 0 ,143 -10
Durch die Begrenzung der Mantisse auf (hier) 3 Stellen können durch den Ausgleich der Charakteristiken (im 1. Beispiel) oder die Normalisierung (im 2. Beispiel) im Ergebnis Stellen (43 bzw. 3) verloren gehen. Die Rechensteuerung nimmt dabei automatisch eine Rundung vor.
2.4.3 Gleitpunkt-Subtraktion Wie bei der Addition werden auch hier - falls nötig - die Charakteristiken von Minuend und Subtrahend einander angepaßt, bevor die Subtraktion vorgenommen werden kann. Anschließend werden die Mantissen in derselben Weise wie bei der Festpunktschreibweise voneinander subtrahiert. Beispiel Darstellung: 680 55 - 743 53 =
Bedeutung: 0,680 • 10 5 - 0,743 • 10 3
?
=
?
mit U m f o r m u n g und Subtraktion der Mantissen : 680 55 0,680 • 10 5 - 007 55 - 0,007 • IQ5 = 673 55 = 0,673 • 10 5 Es kann der Fall eintreten, daß sich die Mantissen (bei gleicher Charakteristik) nur wenig voneinander unterscheiden. D a n n liegt nach der Subtraktion die Mantisse unter der unteren Grenze (hier: 0,100) des zulässigen Wertebereiches. Durch Linksverschieben der Mantisse und gleichzeitige Erniedrigung der Charakteristik wird diese Unzulässigkeit wieder behoben. Beispiel Darstellung: 680 55 - 678 55 = 002 55 = 200 53
XT r • Normalisierung
Bedeutung: 0,680 • 10 5 - 0,678 • 10 5 = 0,002 • 10 5 =0;200.103
144
Teil II: Mathematische Grundlagen
Durch Normalisierung erscheinen auf den letzten Mantissenstellen Nullen, die eine nicht vorhandene Genauigkeit vortäuschen!
2.4.4 Gleitpunkt-Multiplikation
Die Multiplikation zweier Gleitpunktzahlen erfolgt durch Multiplikation der Mantissen entsprechend der Festpunkttechnik und durch Addition der (Maßstabs-)Exponenten. Beispiel (0,6 • I0 5 ) • (0,7 • IO3) = (0,6 • 0,7) • 10 Daten Mengeninformation = Mengendaten Steuerungsinformation Befehle
Beispiele Zwei Personen, die miteinander diskutieren (dies ist i.a. eine Halb-DuplexKommunikation, kann aber auch zu einer Simplex-Kommunikation entarten!) Simplex-Kommunikation: ein Zuschauer vor dem Fernsehschirm Duplex-Kommunikation: ein Fernsehzuschauer, der aus Ärger über das Programm den Empfanger durch Tastendruck ausschaltet. Halb-Duplex-Kommunikation: Satelliten-Sender und Boden-Empfangsstation Der zentrale Begriff bei der Untersuchung von Kommunikations-Systemen ist der Begriff,Nachricht'. Durch den Empfang, das Erfassen und Verstehen sowie die Verarbeitung der Nachricht wird der Empfanger eines KS zu einem bestimmten Verhalten (meist Denkverhalten) veranlaßt. Aus einer gewissen Zahl von Reaktionsmöglichkeiten wählt der Empfanger die zur empfangenen Nachricht ,passende' aus. Der Begriff .Nachricht' ist also nur im Zusammenhang mit der klaren Beschreibung des Empfangers und dessen Reaktionsmöglichkeiten sinnvoll und verständlich. Obwohl die drei Begriffe Daten, Nachrichten, Informationen zu den Kern-
1. Informationstheorie
151
begriffen der Informations- und Datenverarbeitung zu zählen sind, kann eine interdisziplinär gültige Definition kaum formuliert werden. Im allgemeinen kennzeichnet der Begriff,Nachricht' (message) Denkinhalte, die - beim Empfanger Unsicherheit (Risiken) abbauen und - den Empfanger zur Auswahl einer Verhaltensweise aus einem Vorrat derartiger Verhaltensmöglichkeiten bewegen. 1 2
Sender
•
Kanal
Repertoire von ¡> möglichen Verhaltensweisen
Verhaltens-
Nachricht Empfänger
T 1 •
„ *
auswahl n Abb. 65: Wirkung einer Nachricht
Alle unsere Erfahrungen, logischen Gedankengänge und sonstigen Gedankeninhalte sind Nachrichten. Auszudrücken vermögen wir diese Nachrichten in Form von physikalischen Signalen: - akustische Laute (Sprache, Warnsignale usw.) - optische Zeichen (Schrift, mathematische Formeln usw.) - elektrische Signale (Meßwerte, Diagramme) Als Übertragungskanäle (channel) dienen physikalische Medien, wie Luft (Schall), Licht (Lesen), elektrische Leitungen. Bisher sprachen wir stets von der Übertragung von ,Nachrichten'. Es ist jedoch zu beachten, daß bei allen Kommunikations-Systemen keine Nachrichten selbst, d.h. in Form von Denkinhalten, übertragen werden! Auf den Übertragungskanälen werden nur physikalische Signale (Schalldruck, Spannungsimpulse usw.) transportiert. Erst der Empfanger rekonstruiert sich aus den empfangenen Signalen aufgrund vereinbarter Zuordnungslisten wieder die gedankliche Zuordnung zu diesem Signal, nämlich die Nachricht. Wenn wir die Ziffer ,7' lesen, so nehmen wir nur eine Hell-Dunkel-Verteilung auf der Netzhaut unseres Auges wahr, d. h. ein bestimmtes Signal in Form von Reizzuständen. Aufgrund unserer Erfahrungen (die aus menschlichen Vereinbarungen stammen) ordnen wir in einem Auswahlverfahren dieser Hell-Dunkel-Verteilung aus einer Liste von zehn Ziffern die Ziffer ,7' zu. Damit haben wir den Nachrichteninhalt, d.h. die
152
Teil III: Informationslogische Grundlagen
Bedeutung, aus dem empfangenen Signal rekonstruiert. Bei einer derartigen Nachrichtenübertragung nimmt der Empfanger Nachrichten auf, die vereinfacht in die zwei Arten: Daten ( = Mengen- und Ordnungsinformationen) und Steuerungsinformationen (Operationsanweisungen, Befehle) aufgeteilt werden können (vgl. Abb. 11). Der Begriff ,Information' (information) wird meist synonym (gleich) zum Nachricht-Begriff verwendet. Wie die Abb. 65 bereits nahelegt, sollten bei der Analyse von Informationsbzw. Nachrichtenprozessen drei Betrachtungsebenen unterschieden werden: a) Syntaktik b) Semantik c) Pragmatik Die Analyse einer Information auf der syntaktischen Ebene ,begnügt' sich mit der Analyse der Signal- bzw. Zeichenstruktur. Die Semantik fragt nach der inhaltlichen Bedeutung. Die pragmatische Untersuchung versucht die Auswirkungen der Information auf das Verhalten des Empfangers zu klären. Mit der syntaktischen Beschreibung, Bewertung und Messung von Informationen bzw. Nachrichten befaßt sich ein moderner Zweig der Nachrichtentechnik, die Informationstheorie, (information theory). Ihr Hauptziel ist die mengenmäßige Erfassung von Nachricht bei der Übertragung, Speicherung und beim Empfang. Den neutralen Begriff Information' mathematisch formuliert und der Messung zugänglich gemacht zu haben ist das Verdienst von Hartley, Kolmogoroff und vor allem Shannon (1948). Technische Auswirkungen der Informationstheorie ergeben sich beispielsweise für die Codierungstheorie, die Dimensionierung elektrischer Übertragungskanäle sowie für Übertragungs- (Modulations-) Verfahren. Die Wirkungen der Informationstheorie gehen aber auch über die elektrische Nachrichtentechnik hinaus. 1.1.2 Kybernetik Die Informationstheorie ist ein typisches Teilgebiet der überdisziplinären Wissenschaft,Kybernetik'. Die Kybernetik (cybernetic) kann als Sammlung von Denkmethoden und -modellen und deren Anwendung auf verschiedene Wissensgebiete verstanden werden. Die Denkmodelle stammen überwiegend aus natur- und ingenieurwissenschaftlichen Disziplinen. Die Grundideen der wichtigsten Ansätze sind in der Abb. 66 schematisch einander gegenübergestellt. Die Nachrichtentheorie (z.B. Zeichen-, Informations- und Codierungstheorie) versucht die Gesetzmäßigkeiten des räumlichen und zeitlichen Nachrichtentransportes zu erforschen und zu verwerten (vgl. auch IV 3.5). Die Algorithmentheorie (z.B. Automaten-, Schaltungs- und Programmiertheorie) behandelt Fragen der logischen Informationsverknüpfung und der Zustandsveränderung
1. Informationstheorie
NachrichtenTransfer (Datenübertragung) NachrichtenSpeicherung
Sender
Raumkanal
• Empfanger
Sender
Zeitkanal
• Empfanger
Nachrichtenverknüpfung
Sender 1
logische Verknüpfung
• Empfänger
Sender 2
Transformation
SystemZustand 1
Steuerkette
Störung.
Störung-
I, ; e
Regler
Entscheidung als Informationstransformation
Nachrichtentheorie
Algorithmentheorie (Automatentheorie)
Transformation U^SystemZustand 2
I I Steuergerät
Regelkreis
153
Steuerstrecke
Regelstrecke
Information über mögliche Alternativen
Steuergröße
Regelkreistheorie
;
r
Regelgröße
Information über . gesuchte Alternative
Entscheidungstheorie
Entscheidungsregeln
black-boxMethode
input
System (Relationennetz zwischen Elementen)
Systemtheorie output
Abb. 66: Schematische Darstellung der Modellarbeitsweise der fünf Teilbereiche der Allgemeinen Kybernetik
154
Teil III: Informationslogische Grundlagen
von Informationsverarbeitungsanlagen (III 3). Informatorische Rückkopplungen behandelt die Regelkreistheorie (z.B. VI 2.1.4, 2.1.6). Aus der Entscheidungstheorie stammen analytische und deskriptive Ansätze über Entscheidungsregeln zur Informationsumwandlung (vgl. V 2, VI 2.1.2). Die Systemtheorie bietet Methoden zur stufenweise fortschreitenden Analyse komplexer Funktionseinheiten informationsverarbeitender Systeme (VI 1.1.1). Diese kybernetischen Ansätze werden zunehmend auch auf außertechnische Bereiche, wie Wirtschaftswissenschaft, Pädagogik, Soziologie, Biologie angewandt. Begriffe wie Ingenieur-, Bio- und Soziokybernetik entstehen. Gelegentlich geschieht diese Übertragung allerdings zu formalistisch. Es darf nicht vergessen werden, bestehende Denkmethoden (z.B. Empirie) und spezifische Gesetzmäßigkeiten (z. B. Verhaltensgesetze) dieser Disziplinen zu beachten und zu integrieren. Diese Denkmodelle und ArbeitsmetEoden fußen vor allem - auf logisch-mathematischen Beschreibungen (Formeln, Diagramme) und - der Schaffung entsprechender Funktionsmodelle (Ersatzschaltbilder, Blockschaltbilder, Simulation usw.) Eine solche, sehr wirksame Arbeitsmethode ist die Informationstheorie. Da alle diese Verfahren aus den technischen Disziplinen (speziell der Elektrotechnik) übernommen wurden, gewinnt der Begriff ,Kybernetik' erst seine Existenzberechtigung, sobald diese Denkmodelle auch auf außertechnische Bereiche angewandt werden. Dort waren sie bisher noch kaum in Anwendung. Solche Bereiche sind: Wirtschaftswissenschaften, Pädagogik, Soziologie, Biologie usw. Die Bezeichnung .Kybernetik' für diese Wissenschaft an den Grenzbereichen der anderen Wissenschaften geht auf das 1948 entstandene, grundlegende Werk ,Cybernetics' von Norbert Wiener zurück. Das Wort stammt aus dem Griechischen und hatte dort die Bedeutung von ,Steuerungslehre' und ,Lotse'. Ein weiteres grundlegendes Werk wurde ebenfalls um 1948 veröffentlicht: ,Mathematical theory of communication' von C. E. Shannon und W. Weaver. Es begründete die Informationstheorie. Aufgaben zu III 1.1 (1) Welche der folgenden Betrachtungsebenen bezieht sich auf die Form und Signalstruktur von Informationen? a) Syntaktik b) Semantik c) Pragmatik (2) Was wird bei einem (technischen oder organischen) KommunikationsSystem über den Kanal übertragen?
1. Informationstheorie
155
a) physikalische Signale (akustische, optische, elektrische), aus denen sich der Empfänger die Nachricht rekonstruiert b) Denkinhalte, also Nachrichten unmittelbar c) physikalische Signale, die mit der Nachricht identisch sind (z. B. Gehirnströme) (3) Die Aufgabenstellung der Informationstheorie ist: a) die theoretische Behandlung der elektrischen Schaltkreistechnik von DVA b) die philosophische Behandlung eines Zweiges der Erkenntnistheorie c) die mathematische, quantitative Erfassung und Bewertung von Nachrichten in Kommunikations-Systemen
1.2 Quantitative Aussagen Die Informationstheorie bedient sich in großem Umfange mathematischer Hilfsmittel wie Wahrscheinlichkeitsrechnung und Statistik. Da generell die Kenntnisse dieser Hilfsmittel als Voraussetzung für die Durcharbeitung dieses Buches nicht angenommen werden können, wollen wir uns in diesem Abschnitt nur auf die elementarsten Begriffe und Aussagen der Informationstheorie beschränken. Jedoch erhält man schon durch sie einen gewissen Einblick in die Arbeitsmethodik dieser Theorie. Mehr soll hier auch nicht angestrebt werden. Ferner sind diese Begriffe nützlich für das Verständnis des folgenden Kapitels über Codierung.
1.2.1 Elementarvorrat Im vorhergehenden Abschnitt haben wir erfahren, daß jegliche Nachrichtenübermittlung beim Empfanger einen Auswahlvorgang zur Rekonstruktion der Nachricht erforderlich macht. Hier wollen wir nun zur konkreten Aufgabenformulierung übergehen. Nehmen wir an, der Sender verfüge über den Nachrichtenvorrat der folgenden acht Buchstaben: A, B, C, D, E, F, G, H. Wir sagen dann: er verfügt über ein Buchstabenalphabet mit dem Elementarvorrat EV = 8. Der EV gibt hier also den ,Vorrat an Elementen' an, d.h. die Zahl der Zeichen des Alphabets. Der Sender möchte nun eine Nachricht, beispielsweise die Nachricht ,C', aus seinem Elementarvorrat an seinen Empfänger übermitteln. Wie wir aus dem vorherigen Abschnitt wissen, muß er sich dazu eines physikalischen Mediums bedienen. Nehmen wir an, er verfüge über drei Lampen. Das physikalische Übertragungsmedium für die Lampensignale ist das Licht. Bezeichnen wir den abgeschalteten Zustand einer Lampe mit O, den angeschalteten mit L, so haben wir ein binäres System vor uns. In Abb. 67 ist dieses Übertragungssystem angegeben.
156
Teil III: Informationslogische Grundlagen
Der Sender und der Empfanger verfügen über dieselbe Zuordnungsliste zwischen dem Nachrichten-(Buchstaben-) Alphabet (Alph. 1) und dem SignalAlphabet (Alph. 2). Wir kennen auch die Bezeichnung ,Code' für eine derartige Zuordnungsliste. Aufgrund des empfangenen Signals (hier OLO) vermag der Empfänger durch einen Auswahlvorgang über die getroffenen Vereinbarungen (Zuordnungsliste) die zugehörige Nachricht (hier ,C') zu ermitteln. Es ist leicht einzusehen, daß der Elementarvorrat EV2 von Alphabet 2 keinesfalls kleiner sein darf als EVI. Wie bestimmt man nun den Elementarvorrat eines Alphabets, das aus Kombinationen von Einzelsignalen (1 Lampe) aufgebaut ist? Aus der Abbildung entnehmen wir, daß die Stellenzahl s eines Zeichens von Alphabet 2 3 ist. Jedes Einzelsignal (1 Lampe) kann aber 2 Zustände annehmen. Insgesamt erhalten wir also durch die Kombination der 3 Lampen EV2 = 2 3 = 8 Signale.
Zuordnungsliste Alph.i
Alph.2
A
000
B
Zuordnungsliste
(Licht)
Nachricht:
C
OOL
c-
•OLO
D
OLL
E
LOO
F
LOL
G H
i
EVI = 8 |
Daten
:
Signal
:
O
L
0
'Alph.i
Alph.2
000
A
OOL
B
OLO— OLL
D
LOO
E
LOL
F
LLO
LLO
G
LLL
LLL
H
(Lampen): aus
an
aus
EV2 = 2 - Í
Abb. 67: Nachrichtenübertragung
Ein weiteres Beispiel ist der Elementarvorrat einer 3stelligen Dezimalzahl: EV2 = 103 = 1000, nämlich die tausend Zahlen 000 bis 999. Allgemein gilt: Ein Alphabet mit einheitlicher Stellenzahl s je Zeichen und mit B ( = Basis) Werten je Stelle hat den Elementarvorrat E V = Bs. Das Alphabet besteht also aus EV-Zeichen.
1. Informationstheorie
157
Das Alphabet 2 muß also nicht unbedingt binärer Natur sein (wie wir es etwa in der Abbildung gewählt haben). Es läßt sich jedoch zeigen, daß jedes nichtbinäre Alphabet bei gleichem Elementarvorrat mehr Alternativ-Entscheidungen für das Auswählen eines bestimmten aus den insgesamt EV Zeichen benötigt als ein binäres Alphabet. Unter Alternativ- (auch Binär-)Entscheidung versteht man eine Ja-Nein-Entscheidung. Ihr entspricht als Maßeinheit das ,bit'. Der Auswahlvorgang mittels Binärentscheidungen, die der Empfanger aufgrund des empfangenen Zeichens trifft, läßt sich am besten am Codebaum verfolgen.
Alph.2 —
000
— OOL — OLO
I I I empfangen: OLO I I
-—OLL — LOO —
LOL
-—LLO — LLL l.Binärentscheidung
2. Binärentscheidung
I Alph.i i I A I I B
I I c I D j E
!F
II G I H
I
3. Binärentscheidung
Abb. 68: Auswahlvorgang beim Empfanger
Entsprechend dem empfangenen Zeichen OLO durchläuft der Empfanger den verstärkt gezeichneten Pfad und gelangt so zum zuständigen Zeichen C des Alphabets!. An jedem Knotenpunkt fallt er eine Binärentscheidung: zuerst O, dann L, dann wieder O. 1.2.2 Entscheidungsgehalt Die Auswahlleistung beim Durchlaufen des Codebaums läßt sich durch den Entscheidungsgehalt EG (decision content) quantitativ kennzeichnen. Definition Wir gehen von einem Alphabet aus, das aus Zeichen einheitlicher Stellenzahl s besteht. Jede Stelle kann einen von B Werten annehmen. Das Alphabet besteht
158
Teil III: Informationslogische Grundlagen
dann a u s : EV = BS Zeichen. W i r definieren dann den mittleren Entscheidungsgehalt EG dieses Alphabets z u : EG = ld EV (ld
= ld B s = s • ld B
= logarithmus dualis, vgl. II 1.2.)
Diese Definition wollen wir noch etwas interpretieren: Binäres Alphabet Bei einem Binäralphabet ist B = 2. Ferner gilt ld 2 = 1. Damit erhalten wir aus obigem A u s d r u c k : EG = ld E V = s • ld B = s • ld 2 = s Der Entscheidungsgehalt EG fallt also hier mit der Stellenzahl s und damit der Zahl der Binärentscheidungen zusammen, die für die Identifikation eines Zeichens benötigt werden. Nichtbinäres Alphabet In diesem Fall ist EG jene Anzahl Bits pro Zeichen, die zur Auswahl eines Zeichens nötig wäre, wenn wir bei gleichem Elementarvorrat EV binär codiert hätten. EG ist also die Mindestzahl an Binärentscheidungen, mit denen der Empfanger bei dem vorgegebenen EV auskommen würde, u m ein Zeichen des Alphabets auszusuchen.
I~l. Binärj^entscheidung J 1 riBinär^ j^entscheidung J
1 r r Binär ^entscheidung J
EV = Bs = 42 = 4
EG = ld EV = 2 bit
Abb. 69: Unterschiedliche Zahl von Binärentscheidungen und Entscheidungsgehalt
1. Informationstheorie
159
Beispiel Vorgegeben ist das Alphabet mit den vier Zeichen 0,1, 2, 3. Die Basis ist also: B = 4, die Stellenzahl: s = 1. Damit ist der Elementarvorrat EV = Bs = 41 = 4. Da B = 4, müssen wir im Codebaum an einem Knotenpunkt s • (B — 1) = 1 • (4 — 1) = 3 Binärentscheidungen fallen. Hätten wir dagegen ein Binäralphabet mit den Zeichen OO (für 0), OL (für 1), LO (für 2), LL (für 3) verwandt, so hätten wir nur: EG = ld EV = ld 4 = ld 22 = 2 Binärentscheidungen benötigt.
1.2.3 Entscheidungsredundanz In der Abb. 67 war EVI = EV2 = 8, d.h. Alphabet, und Alphabet 2 verfügten über dieselbe Zahl von (8) Zeichen. Dies muß nicht immer so sein. Nehmen wir als Alphabet! das Dezimalziffern-Alphabet (0, 1 , . . . .8, 9) an. Dann ist EVI = Bs = 101 = 10 bit. Als Alphabet 2 verwenden wir Tetraden, d. h. 4stellige Binärausdrücke. Dann gilt: EV2 = BS = 2 4 = 16 bit. Von diesen möglichen 16 Tetraden benötigen wir also nur 10. Die restlichen 6 Tetraden des Alphabets 2 , auch Pseudotetraden genannt, bleiben demnach für die Übertragung ungenützt. Der Code ist somit nicht optimal. Man spricht von einer Weitschweifigkeit der Tetraden-Verschlüsselung und führt zur quantitativen Beschreibung den Begriff der,Redundanz' ein. Man definiert als Entscheidungsredundanz: ER = EG2 - EG1 = ld EV2 - ld EVI = ld — Da das Alphabet, bei einer sinnvollen Übertragungseinrichtung nie größer als das Alphabet 2 sein kann, wird ER nie negativ. Ist Alphabet 2 so groß wie Alphabet,, dann ist ER = 0. In Worten gefaßt kann man die Formel für die Entscheidungsredundanz ER auch folgendermaßen definieren. ER ist der Zweierlogarithmus ld des Quotienten aus der Zahl EV2 der überhaupt (bei vorgegebener Binärstellenzahl) bildbaren Zeichen und der Zahl EVI der verwerteten Zeichen. Beispiel Tetradendarstellung der Dezimalziffern: Alphabet 1: 10 Dezimalziffern: EVI = 10 Alphabet 2: 16Tetraden: EV2 = 16 Entscheidungsredundanz: ER = ld EV2 - ld EVI = ld 16 - ld 10 = 4 - 3,33 = 0,67 bit Erforderlich wären also nur 3,33 Binärstellen. Da aber die Stellenzahl ganzzahlig sein muß, sind für die praktische Darstellung der Dezimalziffern in binärer Form
160
Teil III: Informationslogische Grundlagen
wenigstens 4 Binärstellen, d.h. 1 Tetrade, erforderlich. Hierbei ergibt sich eine Entscheidungsredundanz, d. h. unausgenutzte Informationskapazität, von 0,67 bit. Die Redundanz bei einem System bringt aber nicht nur unnötigen Aufwand mit sich. Wir werden noch sehen, daß sie auch von Vorteil sein kann.
1.2.4 Informationsgehalt 1.2.4.1 Ungleiche Häufigkeiten der Nachrichten Bei den bisherigen Überlegungen gingen wir stets davon aus, daß das Alphabet aus gleichlangen Zeichen besteht. Zeichen mit gleicher Stellenzahl zu wählen ist sinnvoll, wenn alle Zeichen gleichberechtigt sind. Dies besagt, daß alle Zeichen gleich häufig übertragen werden, die Nachrichten also gleichwahrscheinlich sind. Ist diese Bedingung erfüllt, so gibt der Entscheidungsgehalt EG die Mindestzahl von Binärentscheidungen an, die der Empfanger fallen muß, um ein bestimmtes Zeichen aus dem Repertoire des Alphabets auszusuchen. Andere Verhältnisse ergeben sich jedoch, wenn die Zeichen des Alphabets nicht mehr gleichwahrscheinlich sind, wenn also manche häufiger übertragen werden als andere. Wir werden sehen, daß dann durch entsprechende Codierung die Zahl EG an Binärentscheidungen im Mittel noch unterschritten werden kann. Nehmen wir an, wir hätten ein Alphabet mit den vier Zeichen A, B, C, D. Diese vier Nachrichten treten verschieden häufig auf. Wir bezeichnen dann mit p(A) die Wahrscheinlichkeit, daß das Zeichen A dem Empfanger übermittelt werden soll. Es sei uns bekannt: Wahrscheinlichkeit, daß A übermittelt Wahrscheinlichkeit, daß B übermittelt Wahrscheinlichkeit, daß C übermittelt Wahrscheinlichkeit, daß D übermittelt Summe aller Wahrscheinlichkeiten
wird wird wird wird
p(A) P(B) P(C) p(D)
= = = = =
l/2 1/4 1/8 l/8 1,0
Sollen wir im voraus,raten', welches Zeichen als nächstes beim Empfanger eintreffen wird, so werden wir natürlich auf das Zeichen A tippen. Die Wahrscheinlichkeit p (A) ist nämlich am größten, und wir haben so die größte Chance, recht zu behalten. Je kleiner die Wahrscheinlichkeit eines Zeichens ist, um so mehr werden wir von seinem Eintreffen ,überrascht' sein. Als Überraschungswert ü der einzelnen Zeichen läßt sich deshalb anschaulich der Kehrwert 1/p ihrer Wahrscheinlichkeiten definieren. Für die Nachricht A gilt beispielsweise: ü(A) = l/p(A).
1. Informationstheorie
161
Es ist naheliegend, für die häufiger auftretenden Zeichen des Alphabets; kurze Zeichen im Alphabet 2 zu wählen. Seltenere Zeichen des Alphabets!, die also einen größeren Überraschungswert aufweisen, erhalten dann entsprechend längere Zeichen im Alphabet 2 zugeordnet. Verfahrt man in dieser Weise, so kann man im statistischen Mittel bestimmt mit weniger Binärstellen (und damit Binärentscheidungen) auskommen, als wenn man alle Zeichen (ohne Rücksicht auf ihren Überraschungswert) gleichlang machte. Dieses wirtschaftliche Verfahren hat schon lange vor der Begründung der Informationstheorie Samuel Morse (1837) in dem nach ihm benannten Morse-Alphabet angewandt. Für Buchstaben, die in der englischen Sprache häufig vorkommen, benützte er nämlich kurze Zeichen, für seltene Buchstaben dagegen längere Zeichen. häufige Buchstaben Alphabeti e 1 a
kurze Zeichen Alphabet2
seltene Buchstaben Alphabeti X v
längere Zeichen Alphabet2
_ .._
yz • -
Abb. 70: Beispiele aus dem Morse-Alphabet
1.2.4.2 Berechnung des Informationsgehaltes Es läßt sich zeigen, daß ein Minimum von Binärentscheidungen für die Auswahl eines Zeichens erreicht wird, wenn für jede Nachricht im Alphabet! gerade soviele Binärstellen im Alphabet 2 verwandt werden, wie der Zweierlogarithmus des Überraschungswertes angibt. Wenn also bei jedem Zeichen für dessen Binärstellenzahl s folgende Formel gilt, so spricht man von der optimalen Wahl der Stellenzahl s: s = ld ü = ld 1/p Diese Binärstellenzahl s gibt zugleich die Zahl der Binärentscheidungen an, die der Empfanger zur Auswahl des betreffenden Zeichens vornehmen muß. Diese Zahl von Binärentscheidungen definiert man als Informationsgehalt IG dieses Zeichens (information content). Beispielsweise gilt für die Nachricht A: IG (A) = ld ü (A) = ld 1/p (A) Diese Formel läßt sich auch folgendermaßen interpretieren: Der Überraschungswert ü eines seltenen Zeichens ist größer als der eines häufigeren. Der Informationsgehalt eines eintreffenden Zeichens bedeutet für den Empfanger einen
162
Teil III: Informationslogische Grundlagen
Informationszuwachs, ein ,Mehr an Wissen'. Der Informationsgehalt muß also um so größer sein, je höher der Überraschungswert ist, je unerwarteter also das Zeichen ist. Wir wollen zur Erläuterung wieder unser Beispiel zu Hilfe nehmen. Entsprechend der errechneten Stellenzahl haben wir neben die sonstigen Werte in der letzten Spalte das Alphabet 2 aus verschieden langen Zeichen aufgebaut. (Natürlich wäre auch eine andere Zuordnung denkbar, beispielsweise A = L, B = OL, C = OOL, D = OOO. Nur die Stellenzahlverteilung muß dieselbe sein!)
Nachricht
bekannte Wahrscheinlichkeit
Überraschungswert
zu wählende Binärstellenzahl
IG des Zeichens
Signal
Alphabeti
P
ü = 1/p
s = ld 1/p
IG = ld 1/p
Alphabet2
A
1/2
2
ld 2 = 1
ld 2 = 1
0
B
1/4
4
ld 4 = 2
ld 4 = 2
LO
C
1/8
8
ld 8 = 3
ld 8 = 3
LLO
D
1/8
8
ld 8 = 3
ld 8 = 3
LLL
Abb. 71a: Informationsgehalt und unterschiedliche Stellenzahl der Zeichen bei verschieden häufigen Nachrichten
Abb. 71b: Codebaum bei verschieden häufigen Nachrichten und optimaler Wahl der Stellenzahl der Zeichen des AlphabetS2
1. Informationstheorie
163
Die Abb. 71 b zeigt den zum Alphabet2 gehörenden Codebaum. Er macht die unterschiedliche Zahl von Binärentscheidungen bei der Auswahl der verschieden häufigen Nachrichten deutlich sichtbar. Uns interessiert aber weniger die Stellenzahl des einzelnen Zeichens in Alphabet 2 als vielmehr die mittlere Stellenzahl sm. Es ist verständlich, daß häufiger auftretende Nachrichten (etwa A) dabei ein größeres Gewicht haben als seltenere Nachrichten. Man sagt: die Stellenzahlen der einzelnen Zeichen werden mit der Wahrscheinlichkeit ihres Auftretens gewichtet: s
m
= I P(i) • s(i)
= p(A) • s(A) + p(B) • s(B) + p(C) • s(C) + p(D) • s(D) sm = 1/2 -1 +1/4-2 +1/8-3 +1/8-3 sm = 1,75 bit s,,, gibt also das Minimum der mittleren Binärstellenzahl für das Alphabet 2 an. Zugleich ist der kleinstmögliche mittlere Aufwand an Binärentscheidungen, der für den Empfanger nötig ist, um 1 Zeichen auszuwählen. Man nennt diesen Wert den mittleren Informationsgehalt: I G = £ p(i) • IG(i) = £ p(i)-ldl/p(i) = 1,75 bit i=A
i= A
Allgemein kann man formulieren: Sind die Wahrscheinlichkeiten p für das Auftreten der Nachrichten des Alphabets, bekannt, so gilt für den mittleren Informationsgehalt IG (bei optimaler Wahl der Stellenzahl der zugehörigen Zeichen des SignalAlphabets 2 ) der Ausdruck: IG=
S
p(i)-ldl/p(i)
i:Alph.i
(average information content, entropy) Beispiel Verwendet man als (Nachrichten-JAlphabet, das gesamte Buchstabenalphabet (incl. Zwischenraumzeichen), so läßt sich der mittlere Informationsgehalt eines Buchstabens angeben. Dazu werden zunächst umfangreiche statistische Zählungen an deutschen Texten vorgenommen, um die Wahrscheinlichkeitsverteilung der Buchstaben zu bestimmen. Das Zwischenraumzeichen weist die größte Wahrscheinlichkeit auf, nämlich p =0,151. Der häufigste Buchstabe in der deutschen Sprache ist das E. Es ist: p(E) =0,147. Errechnet man entsprechend obiger Formel den mittleren Informationsgehalt eines Buchstabens in der deutschen Sprache, so erhält man: IG = 4,11 bit.
164
Teil III: Informationslogische Grundlagen
1.2.4.3 Informationsredundanz
In der Zuordnungsliste zwischen Alphabet! und Alphabet 2 wird bei optimaler Wahl der Stellenzahl die Vorkenntnis über die ungleiche Wahrscheinlichkeitsverteilung der Nachrichten verwertet. Neben dem Sender besitzt aber auch der Empfänger eine derartige Zuordnungsliste. Der Empfanger verfügt somit über ein gewisses Vorwissen bzgl. des nächsten eintreffenden Zeichens (bestimmte Zeichen treffen mit größerer Wahrscheinlichkeit ein als andere). Eine derartige Vorinformation fehlt dem Empfanger, wenn alle Nachrichten gleichwahrscheinlich (mit p = l / E V l ) auftreten (und alle Zeichen des Alphabets 2 gleiche Stellenzahl aufweisen). In diesem Fall ist demnach der InformationsZuwachs für den Empfanger im Mittel größer als im Fall ungleicher Häufigkeitsverteilung. Der Informationsgehalt erreicht hierbei sogar seinen Maximalwert: EVI
IG max = £
1/EV1 • ld EVI = ld EVI = EG1
i= l
DerMaximalwert des Informationsgehaltes fallt also mit dem Entscheidungsgehalt zusammen. U m die, Vorinformation' des Empfangers quantitativ fassen zu können, definiert man die Informationsredundanz eines Code (redundancy): IR = IG max — IG = EG1 — IG Die Informations-Redundanz IR gibt also an, um wieviel weniger Informationszuwachs beim Eintreffen der Zeichen den Empfänger erreicht, weil er über die unterschiedliche Häufigkeit der Nachrichten ,vorinformiert' ist. Beispiel Wir beziehen uns wieder auf das Beispiel mit den vier Nachrichten A, B, C, D. Der Elementarvorrat des AlphabetSj war: EVI = 4 . Demnach war der Entscheidungsgehalt EG1 = l d EVI = l d 4 = 2 bit. Bei Berücksichtigung der unterschiedlichen Häufigkeit der vier Nachrichten hatten wir den mittleren Informationsgehalt zu IG = 1,75 bit errechnet. Daraus folgt die Informationsredundanz zu: IR = EG1 - IG = 2 bit - 1,75 bit = 0,25 bit Aufgaben zu III 1.2 (1) Es seien 5 Taschenlampen vorhanden, von denen jede in einer der 3 Farben: gelb, rot, grün, leuchten kann. Wir nehmen an, daß stets alle 5 Lampen gleich-
1. Informationstheorie
165
zeitig eingeschaltet sind. Wie groß ist dann der Elementarvorrat EV2 dieses Systems? a) EV2 = Bs = 5 5 ~ 3 = 52 = 5 • 5 = 25 b)EV2 = Bs = 5 3 = 5 - 5 - 5 =125 c) EV2 = Bs = 3 5 = 3 • 3 • 3 • 3 • 3 = 243 (2) Es sei ein ähnliches Übertragungssystem wie in Aufgabe (1) vorgegeben. Nur gelte diesmal für das Alphabet 2 : EV2 = 48. Wie groß darf dann die Zahl von Nachrichten, die übermittelt werden sollen, sein? Dies bedeutet: Wie groß darf der Elementarvorrat EVI des (Nachrichten-)Alphabets, sein? a) EVI g EV2 = 48 (EVI kann kleiner oder gleich 48 sein) b) EVI = EV2 - 48 (EVI muß gleich 48 sein) c) EVI < EV2 = 48 (EVI muß kleiner als 48 sein) (3) Was versteht man unter einem,Codebaum'? a) die systematische, graphische Darstellung der verschiedenen Arten von Codes in Form eines Baumes b) die Zuordnungsliste zwischen den Zeichen des Alphabets! und des Alphabets 2 eines Übertragungssystems c) die graphische Darstellung des stellenweisen Entscheidungsvorgangs in Alphabet 2 eines Code zur Auswahl der zuständigen Nachricht im Alphabet (4) Was bedeutet der Entscheidungsgehalt EG = ld EV bei einem binären Alphabet mit dem Elementarvorrat EV? a) die Stellenzahl s, und da ein binäres Alphabet vorliegt, zugleich die Zahl der Binärentscheidungen beim Durchlaufen des Codebaumes b) die zulässige Zahl der Nachrichten, die mit einem solchen binären Alphabet 2 übertragen werden können c) Zahl der überhaupt möglichen 0,L-Kombinationen dieses binären Alphabets (5) Wie groß ist die Entscheidungsredundanz ER eines Code, wenn die Zahl der zu übermittelnden Nachrichten EVI = 16 ist? Es werde als (Signal-)Alphabet 2 ein Quinär-System (Basis B = 5) mit der Stellenzahl s = 2 zur Übertragung eingesetzt. a) ER = EV2 — EVI = 52 — 16 = 25 — 16 = 9 bit b) ER = ld EV2 — ld EVI = ld Bs — ld 16 = ld 52 — ld 2 4 = 2 • ld 5 — 4 = 4,644 - 4 = 0,644 bit c) ER = s • ld EV2 — ld EVI = s • ld Bs — ld 16 = s 2 • ld B - ld 2 4 = 22 • ld 5 - 4 • ld 2 = 9,288 - 4 = 5,288 bit (6) Gegeben ist ein Alphabet! mit EVI = 3 Zeichen. Es sind dies die Nachrichten X, Y, Z. Diese 3 Nachrichten treten in regelloser Folge, aber verschieden häufig auf. Aufgrund von Zählungen kennt man die Wahrscheinlichkeiten ihres Auftretens. p(X) = 7/16, p(Y) = 5/16, p(Z) = 1/4. Wie groß ist der Entscheidungsgehalt EG1 dieses AlphabetSj ?
166
Teil III: Informationslogische Grundlagen
a) EG1 = EVI = 3 bit b) EG1 = ld EVI = ld 3 = 1,585 bit c) EG1 = ld l/p(X) + ld l/p(Y) + ld l/p(Z) = ld (16/7) + ld (16/5) + ld 4 = ld 16 - ld 7 + ld 16 - ld 5 + ld 4 = 4 - 2,807 + 4 - 2,322 + 2 = 4,871 bit (7) Wie groß ist der Informationsgehalt IG(Z) des Zeichens Z in Aufgabe (6)? a) IG(Z) = p(Z) • ld l/p(Z) = 1/4 • ld 4 = 0,5 bit b) IG (Z) = 1 /p (Z) = 4 bit c) IG(Z) = ld l/p(Z) = ld 4 = 2 bit (8) Wie groß ist der mittlere Informationsgehalt IG pro Zeichen des Alphabets, in Aufgabe (6)? a)IG = Sp(i)-ldl/p(i) = = = b)iG =
7/16 • ld (16/7) + 5/16 • ld (16/5) + 1 / 4 • ld 4 7/16 • (4 - 2,807) + 5/16 • (4 - 2,322) + 0,5 1,55 bit zldi/p(i)
= 4 - 2,807 + 4 - 2,322 + 2 = 4,871 bit c) IG = Z p ( i ) = 7/16 + 5/16 + 1 / 4 = 1 bit (9) Für die Zeichen X, Y, Z des Alphabets! in Aufgabe (6) wähle man die möglichst optimale Stellenzahl der zugehörigen Zeichen des Alphabets 2 . (Alphabet2 sei ein binäres Alphabet.) Wie groß ist die Stellenzahl jeweils zu wählen? a) für X: s(X) = l/p(X) = 16/7 = 2,3 bit Wahl einer ganzzahligen Stellenzahl: s(X) = 3 bit für Y : s(Y) = l/p(Y) = 16/5 = 3,2 bit Wahl einer ganzzahligen Stellenzahl: s(Y) = 3 bit f ü r Z : s(Z) = l/p(Z) = 4bit b) für X : s(X) = ld l/p(X) = ld (16/7) = 1,193 bit Wahl einer ganzzahligen Stellenzahl: s(X) = 1 bit für Y : s(Y) = ld l/p(Y) = ld(16/5) = 1,68 bit Wahl einer ganzzahligen Stellenzahl: s(Y) = 2 bit für Z : s(Z) = ld l/p(Z) = ld4 = 2 bit c) für X : s(X) = l d l / p ( X ) = ld (16/7) = Wahl einer ganzzahligen Stellenzahl: für Y : s(Y) = ld l/p(Y) = ld (16/5) = Wahl einer ganzzahligen Stellenzahl: für Z: s(Z) = ld l/p(Z) = ld 4 = 2 bit
1,193 bit s(X) = 1 bit 1,68 bit s(Y) = 1 bit
2. Codierung
167
2. Codierung 2.1 Redundanz und Binärcodes Redundanz In 13.2 haben wir .codieren' (verschlüsseln) als Zuordnungsvorgang eines Alphabets! zu einem Alphabet 2 bezeichnet. Die Vorschrift für den Übergang von einem Zeichen des AlphabetSj zum zugehörigen Zeichen des Alphabets 2 ist in der Zuordnungsliste, dem Code festgelegt. Sie bildet den ,Schlüssel' für die Codierung. Die Umkehrung des Codierens - beim Empfanger vorgenommen nennen wir ,Decodieren'. Häufig wird auch das Alphabet 2 selbst als Code bezeichnet. Zu III 1.2.3 haben wir festgestellt, daß beim Codieren meist eine Redundanz, eine Weitschweifigkeit, auftritt. Beispielsweise hatten wir dort für die Tetradendarstellung der Dezimalziffern eine Entscheidungs-Redundanz von ER = 0,67 bit errechnet. Ursache für die Redundanz (redundancy) kann - wie in diesem Fall die Stellenrundung sein. Wir hatten einen Stellenbedarf von 3,33 bit errechnet. Da die Stellenzahl aber ganzzahlig sein muß, ist man gezwungen, 4 bit, d.h. eine Tetrade, zu verwenden. Dies führt zu einer Redundanz des Code. Auch technische Gründe können eine Redundanz bewirken. Der internationale Fernschreibcode arbeitet beispielsweise mit 5 Lochungen pro Nachricht. Es sind somit EVI = 2 5 = 32 Nachrichten im Alphabet zulässig. Vor jeder Folge von 5 Lochungen muß jedoch aus technischen Gründen ein ,Start-Bit', am Ende ein ,Stop-Bit', gesetzt werden. Damit sind 7 Binärstellen pro Nachricht erforderlich. Es ist also EV2 = 27 = 128. Daraus folgt eine Entscheidungs-Redundanz von: ER = EG2 — EG1 = ld E V 2 - l d EVI = ld 2 7 - l d 2 5 = 7 - 5 = 2bit Neben diesen unerwünschten Ursachen für die Redundanz gibt es auch beabsichtigte Redundanzen. Zur Sicherung von Nachrichtenübertragung, speziell von Datenübertragung, werden Codes mit eigens eingeplanter Redundanz verwandt. Erst die Redundanz ermöglicht nämlich eine Fehlererkennung oder gar Fehlerkorrektur. Je größer die Redundanz eines Code ist, um so leichter lassen sich Übertragungsstörungen vom Empfanger beheben. Andererseits bedeutet natürlich die Redundanz übertragene Bits, die eigentlich für die Nachrichtenübermittlung unnötig sind. Redundanz bedeutet also unausgenützte Kapazität und damit Erhöhung der Kosten. Bei der Auswahl eines Code liegen somit gegenläufige Kriterien vor: mehr Redundanz bedeutet mehr Sicherheit bei der Übertragung aber: mehr Redundanz bedeutet auch Erhöhung der Kosten. Für jedes Übertragungssystem muß deshalb gesondert der optimale Punkt angestrebt werden. Datenübertragungssysteme bei der Luftüberwachung oder bei
168
Teil III: Informationslogische Grundlagen
Bankgeschäften müssen höchste Sicherheit bieten (wenn auch mit hohem Kostenaufwand). Innerbetriebliche Datenerfassung und Datenübertragung kann sich oft mit weit weniger hohen Sicherheitsanforderungen zufrieden geben, da ohnehin zu häufig das ,fehlerschaffende' Glied .Mensch' dazwischengeschaltet ist. Die Kosten erniedrigen sich dann entsprechend. Ein störungsfreies Übertragungssystem würde natürlich überhaupt keine Redundanz des übertagenen Codes erfordern. Ein solches gibt es aber nicht, da die Übertragungssysteme als physikalische Geräte unvermeidlich mehr oder weniger großen Störungen unterworfen sind. U m den vielseitigen Anforderungen an die Codes gerecht zu werden, wurden schon sehr viele Codes entwickelt und untersucht. Bei den DVA treten zu der Forderung nach Übertragungssicherheit auch noch Forderungen bzgl. der Eignung zur Durchführung von Rechenoperationen hinzu. Binärcodes Die Computer arbeiten ausschließlich mit binären Bauelementen. Dies zwingt jedoch nicht dazu - wie es bei den frühen Rechnern häufig der Fall war - ausschließlich im Dual-System zu rechnen. In II 2.1.3 haben wir die Unterscheidung zwischen ,Binär' und ,Dual' herausgearbeitet. Dort haben wir festgehalten, daß eine Binärzahl allgemein dadurch gekennzeichnet ist, daß sie sich (nach irgendeiner Vorschrift) nur aus dem Binäralphabet O, L, aufbaut. Damit stellt das Dual-System nur eines unter vielen Binär-Systemen dar. Bei ihm lautet speziell die Vorschrift für den Aufbau der Binärzahl: Der Stellenwert der Dualzahl nimmt, beginnend mit 2° = 1, nach links um den Faktor 2 zu. Beispiel Dual entspricht Dezimal LOLLO 0 • 2° + 1 • 21 + 1 • 2 2 + 0 • 2 3 + 1 • 2 4 = 0 + 2 + 4 + 0 + 16 = 22 Der Entwicklungstrend ging von den im Dual-System arbeitenden Maschinen über zu Rechnern mit Dezimal-System (oder auch sedezimal-System). Die Eingabedaten liegen meist im Dezimal-System vor, und die Ausgabe muß der besseren Lesbarkeit zuliebe auch im Dezimal-System erfolgen. Damit bringen natürlich die Rechner mit Dezimal-System den Vorteil mit sich, daß keine Umwandlung der Dezimalzahlen in die sonst intern benötigten Dualzahlen erfolgen muß. Da die Rechner die Zahlen aber in binärer Form benötigen, stellt man bei diesen Dezimal-Maschinen jede einzelne Dezimalziffer (0, 1, 2 , . . .9) in binärer Form dar und baut damit in üblicher Stellenschreibweise die gewünschte Dezimalzahl auf. Man arbeitet also mit einem binären Dezimal-Code (DIN 44300).
2. Codierung
169
Es gibt nun sehr viele Möglichkeiten, die Dezimalziffern binär darzustellen. Eine davon haben wir schon in der Tetradendarstellung kennengelernt, bei der 4 Binärstellen für eine Dezimalziffer verwandt wurden. 2.2 Tetraden-Codes Der Einfachheit halber haben wir bisher bei Verwendung des Begriffs .Tetradendarstellung' stets so getan, als gäbe es nur eine derartige Darstellungsform. In Wirklichkeit sind es derer aber sehr viele. Wir wollen im folgenden jedoch nur die vier wichtigsten betrachten. Die in den bisherigen Beispielen stets angegebene Form der Tetradenverschlüsselung ist auch die einfachste und uns seit I 3.2.3 schon bekannt: es ist der BCD-Code. 2.2.1 BCD-Code (8-4-2-1 -Code) Der Name BCD-Code kommt von Binary Coded Decimal und muß nach unseren bisherigen Festlegungen mit Dual-Codierte-Dezimalziffer ins Deutsche übersetzt werden. Dieser Code ist nämlich so aufgebaut, daß jede der einzelnen Dezimalziffern (0, 1,.. .8, 9) einfach als Dualzahl geschrieben wird, was ja bekanntlich mit 4 bit, d. h. 4 Binärstellen, möglich ist. Jede einzelne Ziffer einer Dezimalzahl wird also direkt im Dual-System angeschrieben - man sagt deshalb zu diesem Code auch: direkte duale Verschlüsselung. Die Bit-Gewichtung ist von rechts nach links 8, 4, 2, 1. Um alle zu besprechenden Tetradenformen besser vergleichen zu können, sind sie gemeinsam in der Abb. 72 zusammengestellt. In die erste Spalte sind alle 2 4 = 16 möglichen 0,L-Kombinationen, die eine Tetrade zuläßt, eingetragen. In den folgenden Spalten sind die Dezimalziffern angegeben, die bei den verschiedenen Tetraden-Codes diesen Kombinationen zugeordnet sind. Die Tetrade OLLO bedeutet beispielsweise im BCD-Code die Dezimalziffer 6. Da wir von den 16 Tetraden nur 10 für die zehn Dezimalziffern benötigen, bleiben bei jedem Tetraden-Code 6 Tetraden ungenützt. Man nennt sie ,Pseudotetraden' (PT). Durch sie erhalten wir die Entscheidungs-Redundanz ER = ld 16 — ld 10 = 0,67 bit. Die Dezimalzahl 461 würde nach den Angaben in Abb. 72 im BCD-Code aus den folgenden drei Tetraden zusammengesetzt sein: 3 Tetraden: OLOO OLLO OOOL Dezimalzahl: 1 Die Addition zweier Dezimalzahlen im BCD-Code erfolgt ziffern-(tetraden-) weise dual - wie wir es in II 2.2.2 kennengelernt haben.
170
Teil III: Informationslogische Grundlagen
Tetradencode
BCDcode
Aikencode
OOOO OOOL OOLO OOLL OLOO OLOL OLLO OLLL
0 1 2 3 4 5 6 7
0 1 2 3 4
LOOO LOOL LOLO LOLL LLOO LLOL LLLO LLLL
8 9
Exzess-3code
Graycode
0 1 2 3 4
0 1 3 2 7 6 4 5 Symmetrielinie
5 6 7 8 9
5 6 7 8 9
(9)
8 9
Abb. 72: Die vier wichtigsten Tetraden-Codes
Beispiel Dezimalzahl: 1 +4 =5
als Tetrade: OOOL +OLOO =OLOL = Tetrade für ,5' Ist die Summe größer als 9, d.h., tritt ein Übertrag auf, so müssen wir OLLO ( = duale 6) zusätzlich addieren. Es müssen nämlich in diesem Fall die 6 Pseudotetraden übersprungen werden, um die richtige Ergebnis-Tetrade zu erhalten. Die Maschine erkennt diesen korrekturbedürftigen Fall daran, daß: entweder: das Zwischenresultat eine Pseudotetrade ist oder: ein Übertrag zur nächsthöheren Tetrade auftrat (vgl. Beispiele) Diese Korrekturregel ist im Diagramm auf S. 171 mit eingebaut. Beispiel 1 8 + 7
LOOO = BCD-Tetrade für 8 + O L L L = BCD-Tetrade für 7
= 15
= L L L L = BCD-Pseudotetrade, daher + OLLO = Korrektur-Tetrade OOOL 1
OLOL = 2 BCD-Tetraden für 1 und 5 5
2. Codierung
Beispiel 2 8 + 9 = 17
LOOO = BCD-Tetrade für 8 + L O O L = BCD-Tetrade für 9
Ü=L
OOOL = Übertrag, daher + O L L O = Korrektur-Tetrade
OOOL 1 Beispiel 3 4175 + 2398
O L L L = 2 BCD-Tetraden für 1 und 7 7 OLOO OOLO
OOOL OOLL L
OLLL LOOL
OLOL LOOO
= 6573 1. Summation: OLLO Pseudotetrade: nein Tetraden-Übertrag: nein Korrektur: nein
OLOL nein nein nein
OOOO nein ja OLLO
2. Summation: dezimal:
OLOL 5
OLLL 7
LLOL ja nein OLLO L< OOLL 3
OLLO 6
172
Teil III: Informationslogische Grundlagen
Ungerade Dezimalziffern sind im BCD-Code am L, gerade an der O in der letzten Binärstelle erkennbar.
2.2.2 Aiken-Code (2-4-2-1 -Code) Der Aiken-Code weist wegen seiner Symmetrie bzgl. der Tetraden (vgl. Symmetrielinie in Abb. 72) einige interessante Eigenschaften auf. Ebenso wie beim BCD-Code sind auch hier die ungeraden Dezimalziffern durch eine L, die geraden durch eine O in der letzten Binärstelle zu erkennen. Die vier Bitpositionen sind mit 2,4, 2,1 gewichtet.
Abb. 74: Additionsvorschrift für Aiken-Code
Für Fragen der Ab- bzw. Aufrundung ist es recht vorteilhaft, die Ziffern < 5 bzw. Si 5 einfach erkennen zu können. Dies läßt sich beim Aiken-Code leicht handhaben, man muß nur die 1. Binärstelle untersuchen. Die Ziffern 0,1, 2, 3,4 besitzen dort eine O, die Ziffern 5, 6, 7, 8, 9 eine L. Ein weiterer Vorteil ist darin zu sehen, daß beim Aiken-Code ein Dezimalübertrag auch einen Tetradenübertrag bewirkt.
2. Codierung
Beispiel 8 + 3 = 11
173
L L L O = Aiken-Tetrade für 8 + O O L L = Aiken-Tetrade für 3 OOOL 1
OOOL = 2 Aiken-Tetraden für 11 1
Eine Korrektur ist beim Aiken-Code grundsätzlich nur dann durchzuführen, wenn bei der Addition zweier Aiken-verschlüsselter Dezimalziffern die Summe eine Pseudotetrade ergibt. Dabei ist als Korrektur OLLO (duale 6) zu subtrahieren, wenn zugleich ein Dezimalübertrag auftritt, ansonsten ist OLLO zu addieren. Die Korrekturregel läßt sich als Flußdiagramm darstellen. Beispiel 1 1 + 3
OOOL = Aiken-Tetrade für 1 + O O L L = Aiken-Tetrade für 3
= 4
= O L O O = Aiken-Tetrade für 4
Beispiel 2 3 OOLL + 4 +OLOO = 7 Ü=0 OLLL 1 • +OLLO
= = = =
Aiken-Tetrade für 3 Aiken-Tetrade für 4 Aiken-Pseudotetrade, daher: Korrekturtetrade ( + 6)
= LLOL = Aiken-Tetrade für 7 Beispiel 3 7 + 6 = 13
LLOL = Aiken-Tetrade für 7 + L L O O = Aiken-Tetrade für 6
Ü=L LOOL = Aiken-Pseudotetrade, daher 1 • - O L L O = Korrekturtetrade(-6) OOOL 1
OOLL = 2 Aiken-Tetraden für 1 und 3 3
Wie wir unten noch sehen werden, weist die Aiken-Verschlüsselung noch den Vorteil auf, daß die Komplementbildung für die Darstellung der negativen Zahlen durch einfaches Vertauschen von L und O erfolgt.
174
Teil III: Informationslogische Grundlagen
2.2.3 Exzesse-Code (Stibitz-Code) Wie man aus Abb. 72 ersieht, geht der Exzess-3-Code aus dem BCD-Code durch Verschiebung um 3 Tetraden, d. h. durch Addition von OOLL ( = duale 3), hervor. Daher ergibt die Addition zweier Exzess-3-codierten Dezimalzahlen um OOLL zuviel, solange kein Dezimalübertag erfolgt, d.h., als Korrektur ist die Subtraktion von OOLL erforderlich. Dagegen müßten bei einer Addition mit Dezimalübertrag die Pseudotetraden (von LLOL über OOOO bis OOLO) übersprungen werden, d.h., es müßte zugleich 6 addiert und 3 subtrahiert werden. Als Korrektur ergibt sich somit in diesem Fall die Addition von OOLL (duale 3 = 6 - 3 ) . Beim Exzess-3-Code ist die Korrektur also überhaupt nicht vom Auftreten einer Pseudotetrade als Summe abhängig, das Rechenwerk braucht diese also gar nicht zu kennen. Die Korrekturvorschrift für den Exzess-3-Code ist im Diagramm auf S. 175 festgehalten. Der Exzess-3-Code wird manchmal auch als Stibitz-Code bezeichnet. Beispiel 1 8 + 7 = 15
LOLL = Exzess-3-Tetrade für 8 LOLO = Exzess-3-Tetrade für 7 Ü=
L
OLOL = Übertrag, daher:
» + OOLL + O O L L = Korrekturtetrade ( + 3) LOOO = 2 Tetraden für 1 und 5 5 Beispiel 2 1 + 4 = 5
OLOO = Exzess-3-Tetrade für 1 O L L L = Exzess-3-Tetrade für 4 0 =O L
LOLL = kein Übertrag, daher •OOLL = Korrekturtetrade ( - 3 ) LOOO = Exzess-3-Tetrade für 5
Komplementbildung Eine positive Zahl wird in einem Rechner durch Vorsetzen einer O in einer besonderen Vorzeichenstelle gekennzeichnet. Die betragsgleiche negative Zahlwird in dem Rechner dargestellt, indem ziffernweise die Differenz zu 9 gebildet wird (9-Komplement, vgl. II 2.2.4)
2. Codierung
175
Beispiel für 9-Komplementdarstellung externe Darstellung:
interne Darstellung:
Vorzeichen i + 617 -617
Vorzeichenstelle I 0617 9382
Eine negative Zahl hat also in der Vorzeichenstelle eine 9 stehen und kann somit von einer positiven unterschieden werden, die dort eine 0 hat. Beim Dual-System sind die Verhältnisse völlig analog.
Abb. 75: Additionsvorschrift für Exzess-3-Code
Beispiel für 1-Komplementdarstellung externe Darstellung:
interne Darstellung:
Vorzeichen 1 +LOL -LOL
Vorzeichenbit 1 OLOL LOLO
Die Komplementbildung erfolgt bei allen Tetraden-Codes wie beim hier angeführten Dual-System. Damit ist die Subtraktion in den Tetraden-Codes auf die Addition zurückführbar.
176
Teil III: Informationslogische Grundlagen
Beispiel 1 7 - 1 4 = 3 imAiken-Code 14 O OOOL 14 LLLO L 17 OOOL O L oooo U=L O o
OLOO LOLL LLOL Übertrag LOOO und L Pseudotetrade, daher: LOOL+ Korrekturtetrade (— 6) •OLLO OOLL OOLL: + 3
oooo oooo
J?
Die drei bisher besprochenen Tetraden-Codes sind vergleichend gegenübergestellt : BCD-Code
Aiken-Code
Rechenwerk für Addition
kompliziert, da das Auftreten von 6 verschiedenen Pseudotetraden festgestellt werden muß
Komplementbildung
schwierige Umrechnung
Exzess-3-Code einfach, da die Korrektur nur vom Übertrag abhängt
einfache Umrechnung durch Vertauschung von L und 0
Abb. 76: Vergleich der Tetraden-Codes
2.2.4 Gray-Code Der Gray-Code wird weniger für arithmetische Operationen als vielmehr für Analog-Digital-Umwandlung benützt. Er eignet sich hierfür besonders gut, weil sich jede Ziffer von der vorhergehenden nur durch eine Binärstelle unterscheidet. Nehmen wir als Anwendungsbeispiel etwa eine Meßwaage, welche die analoge Größe .Gewicht' jeweils in eine von 16 Gewichtsklassen einordnen, d. h., digital angeben soll (3,5 g bis 4,5 g soll z. B. als 4 angezeigt werden). Dies kann z. B. durch Einteilung der Anzeigescheibe in 4 konzentrische Ringe (Tetrade!) und Unterteilung dieser Ringe in jeweils 16 gleiche Abschnitte erreicht werden. An einem Ablesefenster registrieren 4 Fotozellen, ob im jeweiligen Ring die Scheibe ,dunkel' oder ,hell' anzeigt. ,Hell' kann z. B. die O,,dunkel' die L darstellen. In der eingezeichneten Stellung würde die Ablesevorrichtung: d.h.:
,hell' O
,dunkel' L
,dunkel' L
die Gewichtsklasse 4 anzeigen.
,hell' O
2. Codierung
12
11
ilSi
4
177
Ablesefenster
10
Abb. 77: Anzeigescheibe im Gray-Code
Nehmen wir an, die Scheibe stehe so, daß das Ablesefenster gerade zwischen 3 und 4 liegt. Dann kann nur entweder 3 oder 4 angezeigt werden, da sich die 4 nur um eine Binärstelle (die dritte) unterscheidet. Ganz anders wäre dies beim BCD-Code. Hierbei treten im Gegensatz zum Gray-Code gewaltige Abweichungen vom Sollwert 3,5 auf. Ablesung: entweder:
0
L
L 0
Sollwert oder:T
0
0
L 0
= 3
Abb. 78: Ablesemöglichkeiten für den Sollwert 3,5 auf der Anzeigescheibe Ablesung: entweder
Anzeige: 0
L L L
= 7
dagegen ist der Sollwert = oder:^"
0
0
0
0
=
3,5 0
Abb. 79: Ablesemöglichkeiten für den Sollwert 3,5 auf einer Anzeigescheibe mit Dual-Code (genauer: BCD-Code)
178
Teil III: Informationslogische Grundlagen
2.3 Binärcodes mit mehr als 4 Bits Wir wissen, daß schon bei der Darstellung der Dezimalziffern mit Tetraden, also mit 4 Bits, eine Entscheidungs-Redundanz von ER = 0,67 bit auftritt. Andererseits wissen wir, daß erhöhte Redundanz auch erhöhte Sicherungsmöglichkeiten bietet. Es ist also naheliegend, in gewissen Fällen, in denen höhere Übertragungssicherheit gefordert wird, mehr Binärstellen als nur 4 zu benützen. (Teilweise lassen sich damit auch einfachere Rechenwerke bauen.) ^
-Code
Der ^ j ^ - C o d e (sprich: 1 aus 10-Code) ist sehr einfach aufgebaut. Er besteht aus 10 Binärstellen, wovon stets eine mit L belegt ist und alle anderen O sind. Jeder Dezimalziffer ist genau eine Binärstelle zugeordnet.
Dezimalzifler
(}°)-Code
0 1 2 3 4 5 6 7 8 9
OOOOOOOOOL OOOOOOOOLO OOOOOOOLOO OOOOOOLOOO OOOOOLOOOO OOOOLOOOOO OOOLOOOOOO OOLOOOOOOO OLOOOOOOOO LOOOOOOOOO
Kostenmäßig ist der große Aufwand von 10 Binärstellen für 1 Dezimalziffer natürlich ein Nachteil. Der ^ j ^ - C o d e besitzt eine sehr große Redundanz: ER = ldEV2 - ldEVI = ld 2 10 - ld 101 = 10 - 3,33 = 6,67 bit Daraus resultiert andererseits ein großer Vorteil: da jedes Codewort nur eine L enthält, läßt sich eine Störung (etwa Auftreten von zwei oder mehr L oder gar keiner) sehr leicht erkennen. Weiterhin kann dieser Code gut für die optische Darstellung von Dezimalziffern mittels Glimmlampen verwendet werden. Jeder der 10 Binärstellen wird eine Glimmlampe zugeordnet mit der entsprechenden Dezimalziffer als Aufschrift. Die Dezimalziffern 0, 1,.. .9, werden auf Lochkarten im 1, aus lO'-Code dargestellt. Für jede Ziffer wird eine eigene Zeile für die Lochung bereitgestellt.
2. Codierung
179
Eine Spalte der Lochkarte darf in einer der zehn Zeilen gelocht sein und speichert damit eine Dezimalziffer im ,1 aus lO'-Code. Weitere, häufig angewandte Codes mit mehr als 4 Bits sind in der Abb. 80 zusammengestellt. Diese Codes sind so aufgebaut, daß das Codewort für eine Dezimalziffer stets zwei L enthält. Der
-Code, auch Quinär-Code genannt, besitzt gerade :
jeweils zwei L innerhalb 5 Binärstellen anzuordnen. Diese 10 Möglichkeiten ergeben genau die 10 Dezimalziffern. Beim Biquinär- und Quibinär-Code besteht jedes Codewort aus zwei BinärstellenGruppen. Eine Gruppe besitzt 2 Bits, die andere 5 Bits. In jeder der beiden Gruppen muß stets eine L erscheinen. Diese Bedingung läßt Fehler erkennen. Aus der Wertigkeit der einzelnen Stellen kann die zugeordnete Dezimalziffer erlesen werden.
Dezimal-Code
(^-Code
Biquinär-Code
Quibinär-Code
Wertigkeit:
7 4 2 10
50
43210
86420
10
0 1 2 3 4 5 6 7 8 9
LLOOO OOOLL OOLOL OOLLO OLOOL OLOLO OLL OO LOOOL LOOLO LOLOO
OL OL OL OL OL LO LO LO LO LO
OOOOL OOOLO OOLOO OLOOO LOOOO OOOOL OOOLO OOLOO OLOOO LOOOO
OOOOL OOOOL OOOLO OOOLO OOLOO OOLOO OLOOO OLOOO LOOOO LOOOO
OL LO OL LO OL LO OL LO OL LO
Abb. 80 : Zuordnungsliste häufiger Codes
Beispiel OLOOOLO bedeutet: im Biquinär-Code: 0 - 5 + 1 0 + 0- 4 + 0- 3 + 0- 2 + l l + 0 0 = l im Quibinär-Code: 0 - 8 + l - 6 + 0- 4 + 0- 2 + 0 0 + l l + 0 0 = 7
180
Teil III: Informationslogische Grundlagen
Aufgaben zu III 2.1/2.2/2.3 (1) Welche Ursachen gibt es für die Redundanz eines Code zur Datenübertragung ? a) Zwang zum Umwandeln des (Nachrichten-)AlphabetS! in das (Signal-) Alphabet 2 , absichtliche Redundanz zur Übertragungssicherung b) Stellenrundung, optimale Wahl der Stellenzahl, technische Gründe (s. internat. Fernschreibcode), absichtliche Redundanz zur Übertragungssicherung. c) Stellenrundung, Wahl eines nichtbinären Alphabets 2 , technische Gründe (s. internat. Fernschreibalphabet), absichtliche Redundanz zur Übertragungssicherung (2) Die meisten modernen Computer arbeiten bei der internen Zahlendarstellung im: a) Dual-System (binär dargestellt) b) Dezimal-System (binär dargestellt) c) Dezimal-System (dezimal dargestellt) (3) Was ist das charakteristische Gemeinsame aller Tetraden-Code? a) die binäre Darstellung jeder Dezimalziffer als Tetrade ( = 4 Bits) b) die binäre Darstellung jeder Dezimalzahl als Tetrade ( = 4 Bits) c) die binäre Darstellung jeder Dezimalziffer und jedes Buchstaben als Tetrade ( = 4 Bits) (4) Welche Korrektur muß bei der Addition der beiden Zahlen 7 und 9 im BCD-Code vorgenommen werden und wieso? a) Addition von + O L L O , da eine Pseudotetrade als Ergebnis erscheint b) Addition von + OLLO, da ein Übertrag auftritt c) keine Korrektur, da sowohl eine Pseudotetrade als auch ein Übertrag auftritt. (5) Bei welchen Tetraden-Code treten mehr Pseudotetraden auf, beim AikenCode oder beim Exzess-3-Code? a) beim Aiken-Code (6 Pseudotetraden, beim Exzess-3-Code dagegen nur 3 Pseudotetraden) b) beim Exzess-3-Code (6 Pseudotetraden, beim Aiken-Code dagegen nur 3 Pseudotetraden) c) bei beiden gleich viele (6 Pseudotetraden) (6) Welche Korrektur muß bei der Addition der beiden Zahlen 3 und 4 im AikenCode vorgenommen werden und wieso? a) Addition von + OLLO, da Pseudotetrade und kein Übertrag auftreten b) Addition von — OLLO, da Pseudotetrade und Übertrag auftreten c) keine Korrektur erforderlich, da keine Pseudotetrade und kein Übertrag auftreten (7) Wie groß ist die Entscheidungs-Redundanz beim Biquinär-Code? a) ER = ld EV2 - ld EVI = ld (2 + 5) 2 - ld 10 = 7 • ld 7 - ld 10 = 16,3 bit
2. Codierung
181
b) ER = ld EV2 - ld EVI = 2 • ld 2 5 - ld 10 = 6,68 bit c) ER = ld EV2 - ld EVI = ld 2 y = O
Postulat (4b) I-
Von großer Bedeutung für die praktische Anwendung der Schaltalgebra auf dem Gebiet digitaler Schaltnetzwerke ist die Möglichkeit der Vereinfachung der Schaltfunktionen. Eindeutige Kriterien für diese Vereinfachung (Minimisierung genannt) kann man allerdings in allgemeiner Form nicht angeben - sie hängen zu sehr von der jeweils gewählten Schaltkreistechnik ab. Häufig versucht man die Schaltfunktion so umzuformen, daß am Ende möglichst wenig Eingangsvariable auf die Ausgangsvariable einen Einfluß ausüben. Wir werden darauf noch genauer eingehen. Zunächst wollen wir uns verschiedene Rechenregeln und Beziehungen aus den Postulaten herleiten - wir werden sie für die Vereinfachung von Schaltfunktionen benützen können. Es ist wichtig, daß man sich eine gewisse Routine bei der Anwendung dieser Theoreme aneignet! Eine einfache und plausible Deutung der Theoreme findet sich, wenn die Disjunktion ( v ) durch eine Parallelschaltung und die Konjunktion ( A ) durch eine Reihenschaltung der entsprechenden Kontakte in der Kontaktskizze realisiert werden. Theoreme: 0=x L=L
(la) (lb)
X A
o=o
X V
X A
L=x
(2a) (2b)
X V
X = X X = X
(3a) (3b)
X V
X A
x =L x =0
(4a) (4b)
X =
X
X V
X A
(5)
Als Methode zum Beweis dieser Theoreme aus den Postulaten heraus bietet sich das sogenannte Induktions-Verfahren an. Dabei geht man folgendermaßen vor :
208
Teil III: Informationslogische Grundlagen
Die Variable x kann als Boole'sche G r ö ß e einen der beiden Werte O, L annehmen. Andere Werte für x sind nicht zugelassen. Wollen wir nun eines der angegebenen Theoreme beweisen, so brauchen wir deshalb nur zu zeigen, daß das Theorem sowohl für x = O als auch für x = L erfüllt ist. Beispiel Das Theorem (4a) behauptet: x v x = L Beweis für x = O : linke Seite: O v Ö mit Postulat ( l b ) : = 0 v L mit Postulat (4a): = L = rechte Seite = L Beweis f ü r x = L: linke Seite: L v L mit Postulat ( l a ) : = L v O mit Postulat (4a): = L = rechte Seite = L d. h..: das Theorem (4a) ist sowohl für x = O als auch für x = L erfüllt - also ist es allgemein erfüllt. Auf diese Weise lassen sich auch die übrigen Theoreme beweisen. Zur Veranschaulichung der Aussagen eines Theorems sind die Kontaktskizzen auch sehr nützlich: Beispiel Theorem (2a) lautet: x A O = O Als Kontaktskizze wird diese Aussage leicht verständlich:
Die Konjunktion zwischen einer Boole'schen Größe x und dem Wert O ist stets O, da der Strompfad - unabhängig von x - stets unterbrochen bleibt.
3.5.2 Assoziatives Gesetz Aus der gewöhnlichen Algebra kennen wir das Assoziative Gesetz in folgender Form: für die Addition: (x! + x 2 ) + x 3 = xx + (x 2 + x 3 ) = Xj + x 2 + x 3 Multiplikation: (xx • x 2 ) • x 3 = x t • (x 2 • x 3 ) = x! • x 2 • x 3 Dabei kennzeichnen die Klammern die zuerst auszuwertenden Ausdrücke.
3. Schaltalgebra
209
Das Assoziative Gesetz besagt also: Wird auf mehrere Variable nur ein Operationstyp angewandt, so ist es gleichgültig, welche Variablen wir zuerst zusammenfassen. Die Stellung der Klammern ist also gleichgültig - sie können deshalb ganz weggelassen werden. In dieser Form gilt das Assoziative Gesetz auch für die Operationen .Disjunktion' ( V ) und .Konjunktion' ( A ). Es gilt also: für die Disjunktion: (Xj V X 2 ) V X 3 = X ! V (x 2 V X 3 ) = X ! V X2 V x 3
für die Konjunktion: (xj
A X 2 ) A X3 = X! A
(x2
A X 3 ) = Xj A X2 A X3
Die Gültigkeit des Assoziativen Gesetzes für die Konjunktion wollen wir uns über die Gebietsdarstellung verdeutlichen.
210
Teil III: Informationslogische Grundlagen
Über die beiden verschiedenen Zwischenergebnisse: yi = ( x i und Y 2 = (x2
A
x2)
A
X3)
kommen wir auf dasselbe Endergebnis: XJ
A X2
A
X3
3.5.3 Distributives Gesetz
Auch bei diesem Gesetz wollen wir auf die gewöhnliche Algebra zurückgreifen. Dort gilt: " (*2 + x 3 ) = ( x i • X2> + ( x i • x 3 ) Hiervon ausgehend können wir für die Schaltalgebra in analoger Weise anschreiben : Distributives Gesetz 1. Art: XT
A
(x 2
V X 3 ) = (XJ
A X2)
V (x t
A
X3)
In der gewöhnlichen Algebra gilt die 2. Form des Distributiven Gesetzes nicht; es ist nämlich: X
1 + ( x 2 • x 3 ) ^ (x t + x 2 ) • (Xj + x 3 )
Die rechte und linke Seite dieses Ausdrucks bedeuten etwas völlig Verschiedenes. Anders ist die Situation in der Schaltalgebra. Dort gilt : Distributives Gesetz 2. Art : XT
V
(x2
A X 3 ) = (XJ V X 2 ) A ( X L
V
x3)
In der Schaltalgebra sind also die Kurzzeichen A und v völlig gleichberechtigt. Mit dem Distributiven Gesetz 2. Art lassen sich ebenso häufig Vereinfachungen von Schaltfunktionen durchführen wie mit dem 1. Art. Zu MinimisierungsZwecken werden die beiden Distributiven Gesetze meist von rechts nach links eingesetzt. Den Beweis für die Gültigkeit der beiden Gesetze kann man auch hier wieder mit der Methode der Induktion durchführen. Dazu wählt man alle möglichen 0,L-Kombinationen der Variablen x x , x 2 , x 3 (es sind insgesamt 2 3 = 8) und zeigt, daß beide Seiten obiger Rechenregeln jeweils denselben Wert ergeben.
3. Schaltalgebra
211
3.5.4 Morgan'sches Theorem Eine sehr wichtige und praktische Umformregel finden wir in dem nach Morgan benannten Theorem. Es kennzeichnet recht deutlich den Dualismus zwischen der Konjunktion und der Disjunktion, der schon bei den Postulaten auffiel. Morgan'sches Theorem: X
1
A X =X
2
A x
1
und
2
X
1
A X = X
2
1
V x
2
Mit Hilfe dieses Theorems kann also eine Disjunktion zwischen Eingangsvariablen , x 2 in eine Konjunktion zwischen ihren Negationen , x 2 umgewandelt werden. Ebenso ist die Zurückführung der Konjunktion auf die Disjunktion möglich. Der amerikanische Mathematiker Shannon, der viel zur derzeitigen praktischen Bedeutung der Schaltalgebra beigetragen hat, brachte obige Aussage in eine allgemeinere Form für beliebige viele Variable x t xn: Verallgemeinertes Morgan'sches Theorem: X
y(xl>x2
N» A, v ) = y ( x 1 , x 2 , . . . x n , V, A)
Dieses Theorem besagt folgendes: Für eine beliebige logische Funktion y der Eingangsvariablen X!, x 2 , . . . xn erhält man die Negation y dieser Funktion, indem man: - jede Variable x durch deren Komplement x ersetzt und - die Konjunktionen A mit den Disjunktionen v vertauscht. Beispiel Es sei: y = x t v (x2 A X 3 ) V ( X 2 A X 3 ) dann erhält man nach obigem Theorem die Negation y zu: Y
= Xl =
X
V
(x2
A
(x2
A
X3)
1 A
(X2
V X 3 ) A (X2
x3)
V
X3)
V
Die Negation y kann also sehr einfach durch rein formale Umwandlung gewonnen werden. Durch Induktion wollen wir nun das Morgan'sche Theorem in seiner einfachen Form beweisen. Jeder der beiden Eingangsvariablen x t , x2 kann jeweils einen der beiden Werte O, L annehmen. Insgesamt erhalten wir also 4 mögliche Wertekombinationen, für die wir die Gleichheit der linken und rechten Seite des Morgan'schen Theorems zeigen müssen.
212
Teil III: Informationslogische Grundlagen
Behauptung X
1 V X 2 = XI A X 2
Xl O O L L
o L O L
Es ist also:
Xl
V
O L L L
x2
X,
\
V x2
Xl
*2
XT A X 2
L O O O
L L O O
L O L O
L O O O
V
linke Seite
—
rechte Seite
Damit ist die Behauptung stets erfüllt.
3.5.5 Entwicklungstheorem
Die Anwendung des Entwicklungstheorems kann manchmal recht schnell zu Vereinfachungen der Schaltfunktion führen. Das Entwicklungstheorem lautet: Liegt eine logische Funktion y von den Eingangsvariablen x x , x 2 . . . . x, vor, so gelten die beiden Beziehungen: y ( x 1 , x 2 , . . . x n ) = [x 1 A y (L, x 2 , . . . x n )] v [x t A y (0, X2 , . . . x n )] y (xj, x 2 , . . . x n ) = [xi v y (0, x 2 , . . . x n )] A [x t v y ( L , x 2 , . . . x n )] Die Gültigkeit dieser beiden Beziehungen kann wieder leicht bewiesen werden, indem man für xx einmal O und einmal L einsetzt. Wir wollen uns hier auf den Nachweis für x t = O und auf die erste Beziehung beschränken. y (0, x 2 . . . x n ) = [O A y(L, x 2 , . . . x n ) ] v [Ö A y (0, x 2 ) . . . x n )] O v [L A y ( 0 , x 2 , . . . x n ) ] O v y (0, x 2 , . . . x n ) y(0, x 2 , . . .x n ) d.h., die linke und rechte sind gleich; die Beziehung ist also für Xj = 0 gültig. Analog läuft der Beweis für x, = L. Beispiel An einem Beispiel werden wir nun sehen, wie die verschiedenen Theoreme zur Vereinfachung einer Boole'schen Funktion dienen können. Bei den schrittweise durchgeführten Umwandlungen geben wir stets die Nummer des Theorems an, nach denen die jeweilige Umformung vorgenommen wird. Vorgegeben sei uns folgende Schaltfunktion:
3. Schaltalgebra
y=
[(XJ
V X2) A (XL
V X 3 ) ] V (XL
A X2
213
x3)
A
Nun sei es beispielsweise aus technischen Überlegungen heraus wünschenswert, diese Schaltfunktion so stark wie möglich zu vereinfachen, um Bauteile zu sparen. Vereinfachungen können wir mit dem Entwicklungssatz oder direkt, über Gebietsdarstellung und Kontaktskizze, vornehmen. Vereinfachung über den
Entwicklungssatz
Zunächst berechnen wir aus der gegebenen Schaltfunktion: y( X l = 0 ) = [ ( 0
V X2) A
(O
V X3)]
(O
V
A X3)
A X2
mit Theorem (la) und (2a) folgt: = [x2
x3] v O
A
mit Theorem (la) folgt: = X2 A X3
Nun bestimmen wir aus der Schaltfunktion noch: y ( X ! = L) = [(L v x 2 )
A
(L v x 3 )] v (L
A X2
A X3)
mit dem Distributiven Gesetz 2. Art folgt: = [(L v (x2
A
x 3 )] v (L
A
x2
A
x3)
A
(x2
A
x 3 )]
mit dem Assoziativen Gesetz gilt: = [L
V
(x2
A X3)] V
[L
mit Theorem (lb) und (2b) folgt: = L v (x2
A
x3)
mit Theorem (lb) folgt schließlich: =L Mit den beiden Ausdrücken: Y ( X I = 0 ) = x2 y(x 1 = L) = L
A
x3
können wir nun den Entwicklungssatz auswerten: Y = [*i A y ( x 1 = L ) ] v = [ X ! A L] V [XJ A (x2 = XJ V [ X ! A (x2 A X 3 ) ] = (X! V X T ) A [ X L V (x2 = L A [x t V (x2 A X 3 ) ] = XT V (x2 A X 3 )
A y(x t = O)] A
X3)]
A
X3)]
214
Teil III: Informationslogische Grundlagen
Die ursprüngliche F o r m der Schaltfunktion wurde also auf die vereinfachte F o r m y = x, v (x 2 A X3) zurückgeführt. Als Übung kann die Vereinfachung der vorgegebenen Schaltfunktion: - ohne das Entwicklungstheorem - über die Mengendiagramme - über die Kontaktskizze versucht werden. 3.6 Normalformen der Schaltfunktion Im vorhergehenden Abschnitt haben wir an einem Beispiel gesehen, daß ein und dieselbe Schaltfunktion umfangreicher oder aber vereinfacht angeschrieben werden kann. Dieselbe Schaltfunktion kann also in verschiedenen Schreibformen auftreten, wobei allerdings jede F o r m durch Umwandlung nach den angegebenen Rechenregeln in die andere F o r m gebracht werden kann. Im folgenden werden wir eine .genormte' F o r m der Schaltfunktion kennenlernen - also eine F o r m mit klar definiertem Aufbau. Es ist die .Disjunktive Normalform'. Aus 3.4 wissen wir, daß die Wertetafel irgendeiner Boole'schen Funktion bei n Eingangsvariablen Xj, x 2 , . . . . x n gerade 2" Zeilen besitzt. Als Vollkonjunktionen bezeichnen wir nun den Boole'schen Ausdruck, der entsteht, indem wir alle Eingangsvariablen oder ihre Negationen konjunktiv ( A) miteinander verknüpfen. Eine Möglichkeit wäre beispielsweise: XJ A X 2 A X 3
X„_!
A XN .
O b die Eingangsvariable hierbei selbst oder ihre Negation verwendet wird, das legt die Wertetafel fest. Für jede Zeile der Wertetafel erhalten wir nämlich eine Vollkonjunktion - jede Zeile ist ja gerade eine 0 , L - K o m b i n a t i o n aller n Eingangsvariablen. Insgesamt treten also 2" Vollkonjunktionen auf. Bei der Bildung der Vollkonjunktion für eine bestimmte Zeile wird die Eingangsvariable X; mit X; eingesetzt, wenn sie in dieser Zeile der Wertetafel mit L markiert ist. Ist sie dort mit O markiert, so wird x ; in die Vollkonjunktion eingetragen. Eine Vollkonjunktion nennt man häufig auch Minterm. Verknüpft man nun all die Minterme, für welche die Ausgangsvariable y laut Wertetafel zu L wird, disjunktiv miteinander, so erhält man die Disjunktive iVormal/örm (DNF). Sie ist, wie schon erwähnt, eine der vielen möglichen Formen der Schaltfunktion. An einem konkreten Beispiel wollen wir uns nun die Aufstellung der D N F aus
3. Schaltalgebra
215
der vorgegebenen Wertetafel genauer ansehen. Zur Festlegung der Wertetafel geben wir vor: Es seien drei Eingangsvariable * „ x 2 , x 3 vorhanden, d.h., hier ist n = 3. Damit erhalten wir eine Wertetafel mit 2 n = 2 3 = 8 Zeilen. N u n können wir noch die Spalte für die Ausgangsvariable y und damit die Eigenschaften der Funktion vorgegeben. Dazu schreiben wir beispielsweise vor: die Ausgangsvariable y sei nur L, wenn gilt: Xj = O xi=0 xt=L xt = L
oder: oder: oder:
x2 x2 x2 x2
= = = =
O 0 L L
x3 = O x3 = L x3=0 x3 = L
In allen anderen Fällen soll die Ausgangsvariable y = O sein. Aus diesen Angaben und Bedingungen heraus können wir die Wertetafel aufstellen.
1. Zeile 2. Zeile
7. Zeile 8. Zeile
XI
X2
X3
y
0 0 0 0 L L L L
0 0 L L 0 0 L L
0 L 0 L 0 L 0 L
L< L-« 0 0 0 0 L* L^
Wertetafel zur Aufstellung der DNF Zunächst benötigen wir die Vollkonjunktionen (Minterme), für die die Ausgangsvariable y = L wird. Der y-Spalte entnehmen wir: es sind dies die Zeilen 1, 2, 7, 8 der Wertetafel. Die dazugehörigen Minterme ergeben sich zu: 1. 2. 7. 8.
Zeile Zeile Zeile Zeile
XJ XJ x, X!
A A A A
x2 x2 x2 x2
A A A A
x3 x3 x3 x3
Für diese vier Minterme gilt also laut Wertetafel: wenn einer oder mehrere dieser Boole'schen Ausdrücke (Minterme) zu L wird, dann wird auch die Ausgangsvariable y = L. Diesen Sachverhalt können wir aber als OR-Funktion der Minterme ausdrücken, indem wir diese disjunktiv ( v ) miteinander verknüpfen und somit die D N F erhalten: y=
(XJ
A
x2
A X3) V
(xj
A
x2
A
x3)
V
(x t
A
x2
A X3) V
(x t
A X2 A X 3 )
Damit haben wir die erwünschte Schaltfunktion y aus der Wertetafel heraus
216
Teil III: Informationslogische Grundlagen
aufgebaut - allerdings als DNF angeschrieben. Dies hat für die praktische Anwendung einen recht beachtlichen Nachteil. Die DNF ist nämlich stark redundant, d. h. sie stellt nicht gerade die einfachste, kürzeste Form der Schaltfunktion y dar. In der Praxis bedeutet dies einen unnötig großen Aufwand an Bauelementen (Relaiskontakte, Transistoren). Es ist deshalb angebracht, vor der praktischen Anwendung der Schaltfunktion diese aus der DNF heraus zu vereinfachen. Die geläufigen Methoden zur Vereinfachung einer Schaltfunktion haben wir im vorhergehenden Abschnitt kennengelernt. Die im Beispiel aufgestellte DNF wollen wir mit Hilfe der hergeleiteten Theoreme vereinfachen. Die DNF lautet: y=
(X 1 A X 2 A X 3 ) V (X,
A X2 A
X 3 ) V (X! A X 2 A X 3 )
V (X,
A X2 A X3)
mit dem Assoziativen Gesetz erhalten wir: A X2) A X 3 ]
Y = [(XI
V [(X T
A X2) A X 3 ] V [(X!
V [(XT
A X2) A A X2) A
X3] X3]
mit dem Distributiven Gesetz 1. Art folgt: y=
[(XJ
A
x2)
A
(x3
A X2) A
V X3)] V [(XL
(x3
V
x 3 )]
mit Theorem (4a) ergibt sich: y = [(Xi
A
x2)
A
L] v [(xt
A
x2)
A
L]
mit Theorem (2b) folgt daraus : y = (xt
A
x 2 ) v (Xi
A
x2)
In diesem Ergebnis erkennen wir den Ausdruck für die logische Funktion .Äquivalenz' wieder (vgl. 3.4). Die dritte Eingangsvariable x 3 ist also völlig ohne Einfluß auf die Ausgangsvariable y. Diese Tatsache erkennt der Geübte wahrscheinlich schon aus der Wertetafel selbst oder aus der Kontaktskizze der DNF. Der Ungeübte aber kann sich auf diese Weise das Ergebnis rein formal aus der DNF heraus ableiten. Bei schwierigeren Beispielen wird diese Methode überhaupt allein sinnvoll zum Ziel führen. Eine andere Methode, die DNF meist recht schnell zu vereinfachen, ist die Gebietsdarstellung, mit der wir ja auch schon gearbeitet haben. Ähnlich der DNF läßt sich auch eine Konjunktive Normalform (KNF) bilden. Auf die Gesetzmäßigkeiten zu ihrer Strukturierung aus der Wertetafel wird hier verzichtet.
3. Schaltalgebra
217
3.7 Anwendungsbeispiele In diesem Abschnitt werden wir die Nützlichkeit der Schaltalgebra an praktischen Beispielen vorführen.
3.7.1 Papiertransport beim Schnelldrucker In diesem Beispiel werden wir die Steuerungsanlage für den Papiertransport eines Schnelldruckers ansehen. Infolge seiner hohen Arbeitsgeschwindigkeit erfordert ein Schnelldrucker eine sehr sorgfaltige Kontrolle des Papiervorschubs. Der Papiertransport wird durch ein Walzenpaar (1), das von einem Motor M angetrieben wird, bewirkt. Über eine Lichtschranke wird dauernd kontrolliert, ob der Papierstreifen (2) nicht etwa gerissen ist. Diese Lichtschranke setzt sich zusammen aus einer Glühlampe (3), die als Lichtquelle dient, und einem lichtelektrischen Empfanger (4), einem sogenannten Photoelement. Dieses Photoelement (4) erzeugt eine von der Helligkeit abhängige Spannung, die dann zur weiteren Steuerung verwertet werden kann. Solange der Papierstreifen (2) korrekt eingelegt ist, bleibt der Lichtstrahl von der Quelle (3) zum Empfanger (4) unterbrochen. Sobald aber das Papier reißt, gelangt der Lichtstrahl von der Lampe (3) zum Empfanger (4), der dafür sorgt, daß der Motor M sofort abgeschaltet wird. Ein zweiter Photoelektrischer Empfanger (5) überwacht dauernd die Helligkeit der Glühlampe (3). Ist diese Helligkeit größer als ein vorgegebener Wert a, so ist • 1 2 3 4 5 M
2
3(g)—•
G
• 4
Abb. 99 : Schema für den Papiertransport
Walzenpaar Papierstreifen Lampe Photo-Empfänger Photo-Empfänger Motor
218
Teil III: Informationslogische Grundlagen
die reguläre Arbeitseinstellung gewährleistet. Sinkt die Helligkeit unter diesen Wert a, bleibt aber noch über einem Wert b, so arbeitet die Anlage zwar weiter - es soll aber auf die zurückgehende Leuchtkraft der Glühlampe (3) aufmerksam gemacht werden. Dazu wird in diesem Fall eine Warnlampe eingeschaltet. Sinkt jedoch die Helligkeit der Lichtquelle (3) sogar unter den Wert b, so muß der Motor M abgeschaltet werden. In diesem Fall kann nämlich die Kontrolle der Unversehrtheit des Papierstreifens mittels Empfanger (4) nicht mehr gewährleistet werden. He ligkeitswert iL
Lampe (3)
Motor M
Papierkontrolle
gut
läuft
gewährleistet
schlecht
läuft
gewährleistet
unbrauchbar
läuft nicht
nicht gewährleistet
Für unser binäres Modell des vorliegenden Systems vereinbaren wir folgendes: Xl = L = O = *2 L x2 = O = L x3 = o
bedeutet: bedeutet: bedeutet: bedeutet: bedeutet: bedeutet:
= L = o = L =o
bedeutet: bedeutet: bedeutet: bedeutet:
yi yi y2 y2
Helligkeit größer als a Helligkeit kleiner als a Helligkeit größer als b Helligkeit kleiner als b Papier gerissen; damit fallt Licht auf Empfanger (4) Papier nicht gerissen; damit fallt kein Licht auf Empfänger (4) Motor M ist eingeschaltet Motor M ist ausgeschaltet Warnlampe brennt Warnlampe brennt nicht
Aus obigen Angaben und diesen Vereinbarungen erhalten wir zwei Wertetafeln mit den drei Eingangsvariablen x t , x 2 , x 3 . Die eine Wertetafel gibt uns die XI
X2
X3
yi
yi
0 o 0 0 L L L L
O 0 L L 0 0 L L
0 L 0 L 0 L 0 L
0 0 L 0 0 0 L 0
o 0 L L 0 0 0 0
3. Schaltalgebra
219
logische Funktion für das Ein- bzw. Ausschalten des M o t o r s ; die zweite f ü r das An- bzw. Abschalten der Warnlampe. Der Einfachheit halber sind die f ü r beide Wertetafeln identischen x-Spalten nur einmal gezeichnet. Zunächst interessiert uns die Schaltfunktion y1 f ü r den M o t o r . D a in der y t -Spalte die L seltener als die O auftritt, wählen wir laut 3.6 hierzu die D N F . Sie besteht aus zwei Mintermen und lautet: A X 2 A X 3 ) V (X! A X 2 A
YI = ( X I
X3)
Wir vereinfachen: Yl
= [ * 1 A (x 2 A X 3 )] V [Xj = (x, V X L ) A (X2 A i 3 ) = L A (X2 A X3)
A
(x 2
A
X 3 )]
und erhalten als Ergebnis: yi = * 2
A
Dieses Ergebnis ist leicht in Worten anzugeben. Es besagt: der M o t o r ist nur d a n n eingeschaltet (yi = L), wenn die Helligkeit der G l ü h l a m p e größer als der untere Wert b ist (x 2 = L) und zugleich das Papier nicht gerissen ist (x 3 = O bzw. x 3 = L). Die Motoreinstellung ist demnach von der Eingangsvariablen x 1 unabhängig. D a s Ergebnis für y, stellt die Inhibitfunktion d a r (vgl. 3.4). U n s interessiert nun weiterhin die Schaltfunktion y 2 f ü r das automatische Einschalten der W a r n l a m p e - abhängig von der Helligkeit der G l ü h l a m p e und dem M o t o r z u s t a n d . D a auch in der y 2 -Spalte die O überwiegt, gehen wir auch hier von der D N F aus. Die 3. und die 4. Zeile ergeben die benötigten Vollkonjunktionen (Minterme). Die D N F lautet also: y2 =
(X! A X 2 A X 3 ) V (XJ
A X2
A X3)
durch Vereinfachung erhalten wir: A X2) A
Y2 = [ ( * !
x3]
= (X,
A X2) A ( ¿ 3
= (x,
A X2) A
V [(*! V
A X2) A
X3]
X3)
L
D a s Endergebnis daraus ist wieder eine Inhibitfunktion: y 2 =Xi
A
x2
D a s Aufleuchten der W a r n l a m p e ist demnach vom M o t o r - und somit auch v o m Papier-Zustand unabhängig. Die W a r n l a m p e leuchtet (y 2 = L) - wie gefordert nur d a n n auf, wenn die Helligkeit kleiner als a (x! = O bzw. x 1 = L), aber größer als b (x 2 = L) ist.
220
Teil III: Informationslogische Grundlagen
Wir können noch die Symboldarstellung der beiden Ergebnisse für Motor (y t ) und Warnlampe (y2) aufstellen. In dieser Form können die anfangs gestellten Zustands- und Schaltbedingungen in der Schaltungstechnik dann verwirklicht werden.
3.7.2 Dualaddierer An diesem Beispiel wollen wir zeigen, wie man mit Hilfe der Schaltalgebra die logische Struktur eines Addierers für Dualzahlen sinnvoll beschreiben und durch Übergang zur Symboldarstellung auch schon die technische Schaltung andeuten kann. 3.7.2.1 Halbaddierer Bei der Addition zweier einstelliger Dezimalzahlen tritt eine Summe s, gegebenenfalls noch ein Übertrag ü vom Wert 1 auf. Wir können auch sagen: der Übertrag ü ist entweder 0 oder 1. Beispiel 2 +6 = 08 es ist also: s = 8 ü=0
7 +6 =13 =3 =1
Beim Dezimal-System tritt ein Übertrag auf, wenn die Summe s größer als 9 ( = 1 0 — 1 = B — 1) wird. Bei der Addition von einstelligen Dualzahlen tritt ein Übertrag ü schon auf, wenn die Summe s größer als 1 ( = 2 — 1 = B — 1) wird. Da nur die beiden einstelligen Dualzahlen O und L vorhanden sind, ergeben sich überhaupt nur 4 verschiedene Fälle bei der Addition von xx und x 2 :
3. Schaltalgebra
O + 0 = 00 es ist also: s = O ü = 0
O + L = OL s = L ü = O
L +0 =OL s = L ü = O
L + L = LO s = 0 ü = L
221
= Xi =x2
Diesen Sachverhalt können wir übersichtlicher in einer Wertetafel festhalten. Die zu addierenden, einstelligen Dualzahlen X! und x 2 fungieren dabei als Eingangsvariable. Die Summe s und der Übertrag ü sind zwei Ausgangsvariable, d. h. wir fassen wieder zwei logische Funktionen in einer Wertetafel zusammen: XI
X2
0 0 L L
0 L 0 L
s 0 L L 0
ü 0 0 0 L
Die gesamte Vorschrift für die Addition zweier einstelliger Dualzahlen ist also in dieser Wertetafel festgehalten. Diese Vorschrift wollen wir nun hiervon ausgehend als zwei Schaltfunktionen angeben. Die Summenfunktion gewinnen wir als DNF aus der 2. und 3. Zeile: S = (X,
A X 2 ) V (XI
A X2)
Die Übertragungsfunktion besteht aus der 4. Vollkonjunktion (Minterm): ü = x t A x2 Die dazugehörige Symboldarstellung lautet:
222
Teil III: Informationslogische Grundlagen
Die Zahl der Schaltsymbole, die ja direkt dem technischen Aufwand entspricht, läßt sich noch etwas verkleinern. Dazu formt man die Summenfunktion derart um, daß darin die Schaltfunktion für den Übertrag erscheint. Diese Umformung werden wir wieder schrittweise anschreiben: S = (XI A X 2 ) V (XJ A X 2 ) = [X, = [(X,
= [L
V (X X A X 2 ) ]
A [X2
V XJ) A (X T V * 2 ) ] A (XJ V X 2 ) ]
A [(X2
= (XJ V X 2 ) A ( X 2
V
XL)
= (XI V X 2 ) A ( X 2
V
XL)
= (X! A X 2 ) A ( X 2 V
X,)
S= Ü A
(x 2
V (X T
A
A [(X2 V
XL)
X2)] V
A
XL)
A (X2
V
X2)]
L]
V XJ)
Wir können also zusammenfassen: Bei der Addition zweier einstelliger Dualzahlen x t , x 2 ergibt sich: für die Summe: S = (X] V I 2 für den Übertrag: ü = x, AX 2
) A Ü
Die dazugehörige Symboldarstellung enthält nur noch 3 Grundschaltungen - sie ist also technisch weniger aufwendig als die bisherige.
Diese Gesamtanordnung mit den beiden Eingängen x t und x 2 sowie den beiden Ausgängen s und ü nennt man in der DV einen Halbaddierer. Der Vorsatz ,Halb-' deutet die Einschränkung auf die Addition e/nstelliger Dualzahlen an.
HA
3. Schaltalgebra
223
3.7.2.2 Volladdierer Die Addition mehrstelliger Dualzahlen kann auf die Addition mit Halbaddierern zurückgeführt werden. Um die hierzu benötigten Überlegungen zu erleichtern, führen wir die Addition der Zahlen 7 und 6 in dualer Form vorweg Xl-
X2
X12
Xli
xio
X22
IHAI
HA
1
X20
HA
i
HA
X21
uo
HA
TP Ul S2
so U2
Y3
y2
yi
y Abb. 100: Addierwerk für 2 dreistellige Dualzahlen xi, X2
yo
224
Teil III: Informationslogische Grundlagen
einmal durch. Das Berücksichtigen des Übertrags ist natürlich am besten an der Potenzschreibweise zu ersehen. Beispiel 7= + 6=
L • 2 2 + L • 21 + L • 2° L • 2 2 + L • 21 + O • 2°
LLL LLO
O • 22
= 13 = L L O L
=
O • 21
stellenweise Addition
L • 2°
L • 2 3 L • 2 2 O • 21 L • 2 3 + L • 2 2 + O • 21 + L • 2°
Überträge Ergebnis
Die Addition erfolgt in zwei Schritten. Beim ersten Schritt wird stellenweise addiert und der jeweilige Übertrag zur nächsten Stelle gemerkt. Beim zweiten Schritt werden zum oben gewonnenen Ergebnis noch die Überträge (wieder stellenweise) hinzuaddiert. Jeder dieser beiden Schritte aber kann durch Halbaddierer vorgenommen werden. Wir brauchen demnach für jede Stelle der Dualzahl 2 Halbaddierer - mit Ausnahme der 1. Dualstelle (2°), bei der ja kein Übertrag aus der vorhergehenden Stelle zu berücksichtigen ist. In Abb. 100 ist ein derartiges Addierwerk für dreistellige Dualzahl angegeben. Das Ergebnis y kann natürlich durch einen Übertrag in der 3. Stelle dabei vierstellig werden.
s,
üi
Abb. 101: Volladdierer für die Dualstelle i
Die in Abb. 100 pro Dualstelle sich wiederholende Anordnung zweier Halbaddierer faßt man zusammen und bezeichnet sie als Volladdierer. Ein Volladdierer hat demnach 3 Eingänge und 2 Ausgänge.
3. Schaltalgebra
225
Die Eingänge sind: Dualstelle der 1. Zahl: x u Dualstelle der 2. Zahl: x2 j Übertrag aus vorhergehender Stellenaddition: ü ; _ t Die Ausgänge sind: Stellensumme: Sj Übertrag an nächste Dualstelle : üj Die in Abb. 56 als Binär-Addierer bezeichnete Addiervorrichtung stellt einen hier besprochenen Volladdierer dar. D a dort aber Dualstelle nach Dualstelle abgearbeitet wurde, benötigte man nicht gleichzeitig für jede Stelle einen eigenen Volladdierer. Es genügte ein Volladdierer. N u r mußte dafür der AusgangsÜbertrag (üj) als Eingangs-Übertrag ( ü ^ ) zurückgekoppelt werden - interne Zurückschaltung. Der dort gezeichnete Addierer hatte deshalb äußerlich nur zwei Eingänge und einen Ausgang.
3.7.3 Erkennen von Pseudotetraden Aus 2.2 wissen wir, d a ß es verschiedene Code gibt, die für die binäre Darstellung einer Dezimalziffer eine Tetrade, d.h. 4 Bits, verwenden. Die Dezimalzahlen werden hierbei also ziffernweise binärverschlüsselt. Mit 4 Bits können insgesamt 2 4 = 16 unterschiedliche Kombinationen und damit 16 Codeworte dargestellt werden. Das Dezimalalphabet besitzt aber nur 10 Ziffern (0, 1 , . . . 9). 6 Kombinationen bleiben unbenutzt. Man nennt sie Pseudotetraden. U m nun nach Rechenoperationen, insbesondere der Addition, dem Ergebnis sofort anzusehen, ob es eine Pseudotetrade ist oder nicht, entwickelt man hierfür eine Schaltfunktion p. Diese gibt, abhängig vom derzeitigen Zustand der 4 Bits,
Bedeutung
f
0
1
2
Dezimalziffern
3 4 5 6
7 8
9 Pseudotetraden
X3
X2
XI
xo
P
0 0 0 0 0 0 0 0 L L L L L L L L
0 0 0 0 L L L L 0 0 0 0 L L L L
0 0 L L 0 0 L L 0 0 L L O 0 L L
0 L 0 L 0 L 0 L 0 L 0 L 0 L 0 L
0 0 0 0 0 0 0 0 0 0 L L L L L L
226
Teil III: Informationslogische Grundlagen
an, ob eine Pseudotetrade vorliegt oder nicht. Die Ausgangsvariable p sei L, wenn die Ergebnistetrade eine Pseudotetrade ist. Sie sei O, wenn die Ergebnistetrade laut Codedefinition eine Dezimalziffer repräsentiert. Eine solche Schaltfunktion p wollen wir nun speziell für den Tetradencode mit direkter Dualverschlüsselung der Dezimalziffern entwickeln. Die Wertetafel für diesen Binärcode und die dazugehörige Ausgangsvariable y zeigt die Tabelle auf Seite 225. Die Schaltfunktion p erhalten wir wieder über den Umweg einer Normalform. Wir werden also die D N F aufstellen. P = (X3
A
X2
A
X!
A
X0)
V
(X3
A
X2
A
X!
A
X0)
V
(X3
A
X2
A
XT
A
X0)
V
(X3
A
X2
A
XI
A
X0)
V
(x 3 (x 3
A
X2
A
X,
A
X0)
A
X2
A
X!
A
X0)
V
Wir vereinfachen wieder mit Hilfe der Rechenregeln der Schaltalgebra: P
=
[(X3 (JQ
A A
x2
A
XQ)
V
= [(X 3 A x 2 A = (x 3 A x 2 A = (x 3
V
=
X3
A
=
X3
A
=
(X3
=
(X3
P = X
3
A A A
XT) (XL
A A
X,) XX)
A
(X0
V
L] (x 3
V
V
X0)
V A
X3)
V
(x 2 (x 2
V
[x3
A
X2)]
[X3
V
O]
A
[XJ
)
V
[X3
A
(X3
(X3
A
X2)
X3)
X L
A
X,) V (XU
V
XO)] V [(x3 (x, A X 0 ) ] ] [(x 3 A x 2 ) A
A
X2)
A
[(x t
A
X0)
V
L]
X2) A A
V A
(x t
V
(XJ (X3
X3) V
A
X3)
(x 3
A A
L
V A
X2) (XJ
A V
(x 2
V
X2)
A
(XJ
V
X2)
X2)
X2)]
X2)]
X2)
Das Ergebnis zeigt, daß die niederste Stelle (2°) der Dualzahl, nämlich x 0 , für die Anzeige einer Pseudotetrade überhaupt nicht benötigt wird. Wir werden also die 6 Pseudotetraden durch die Schaltung wie in der folgenden Abbildung anzeigen. x 0 , Xi, x 2 , x 3 sind die 4 Bits der Ergebnistetrade, die wir interpretieren sollen. Wenn p = L, liegt eine Pseudotetrade vor, wenn p = O, ist die Ergebnistetrade eine Dezimalziffer entsprechend der Codevereinbarung.
xo
unbenötigt
3. Schaltalgebra
227
Aufgaben zu III 3.5/3.6/3.7 (1) Welches Gesetz der Schaltalgebra gestattet folgende Umformung: [(x t A X2) V X 2 ] A [( Xl A X 2 ) V X 3 ] = (XJ A X 2 ) V (x 2 A X 3 ) a) Distributives Gesetz 1. Art b) Distributives Gesetz 2. Art c) Assoziatives Gesetz (2) Wie lautet die Funktion y, wenn: y = (x4 A X2) V [X3 A (X, A X2)] a) y = (x1 v x 2 ) A [x 3 v (x t v x 2 )] b ) y = (xi V x 2 ) A [x 3 v (x, v x 2 )] C ) y = ( x , V X 2 ) A [x 3 V (x, A X 2 ) ] (3) Wie lautet die vereinfachte Form der Schaltfunktion: y = [(Xl A x2) A A
) Y =
X
I
b) y = x t c) y = x,
V
(XJ
V x 2 )] A [(xx A
X2)
V (x t A
X2)]
X2
A
X2
A
x2
(4) Wie läßt sich die Schaltfunktion y vereinfachen: y = [[(Xl V X 3 ) A (x t A X 3 ) ] V X 2 ] A [ ( X 3 V X T ) A (x 3 A X T ) ] a) y = v x2) A x3 b) y = (X! A x 2 ) v x 3 c) y = X! V ( X 2 V x 3 ) (5) Wie lautet die D N F für die Funktion, deren Wertetafel hier angegeben ist? a) y = (X! A X 2 A X 3 ) V (x. A X 2 A X 3 ) V ( X T A X 2 A X 3 ) b)y = (Xl A X 2 A X 3 ) V ( X l A X 2 A X 3 ) V ( X ! A X 2 A X 3 ) c) y = (X! V x2 v X3) A ( X X V X 2 V X 3 ) A ( X T V X 2 v x 3 ) XL
X2
X3
y
0 0 0
0 0 L L 0 0 L L
0 L 0 L 0 L 0 L
0 0 L 0 L L 0 0
0
L L L L
(6) Wie lautet die vereinfachte Form der Schaltfunktion y, deren D N F gegeben ist zu: y = (xx A X 2 A x 3 ) V (JQ A X 2 A X 3 ) a) y = x 2 A x 3 b ) y = xi a x 3 c) y = X ! A x 2
228
Teil III: Informationslogische Grundlagen
(7) Wieviele Halbaddierer benötigt man zur Addition zweier 40stelliger Dualzahlen? a) 79 b) 40 c) 80
Teil IV: Technologische Grundlagen
1. Bauelemente In den folgenden zwei Abschnitten werden die wichtigsten Bauelemente der Digitaltechnik besprochen und ihre Funktionsweise zum Teil an Anwendungsbeispielen erläutert. Aus diesen Bauelementen setzen sich die Schaltungen der verschiedenen Geräte der Datenverarbeitung zum überwiegenden Teil zusammen. Die elektronischen Bauelemente weisen eine Komplexität auf, die es nicht erlaubt, im Rahmen einer Einführung in die Datenverarbeitung die physikalischen Gesetzmäßigkeiten dieser Bauelemente und die Anwendungsfälle in der Schaltungstechnik auch nur annähernd gründlich zu behandeln. Eine kurze Beschreibung der Eigenschaften muß jeweils genügen. Lange bevor die modernen (Halbleiter-) Bauelemente - wie Dioden und Transistoren - überhaupt entwickelt worden waren, wurden schon Relais zur Konstruktion von konventionellen Lochkartenmaschinen und sogar Rechenmaschinen eingesetzt (vgl. I 1.1). Das Relais hatte schon damals aufgrund intensiver Entwicklungsarbeiten auf dem Gebiet der Fernsprechtechnik ein hohes Maß an Zuverlässigkeit erreicht. Durch hohe Produktions-Stückzahlen war es auch relativ preisgünstig. Heute ist das Relais in der Schaltungstechnik der Datenverarbeitung nahezu vollständig durch die um Größenordnungen schnelleren elektronischen Bauelemente (Dioden, Transistoren, integrierte Schaltkreise) ersetzt. Die elektronischen Bauelemente sind heute auch bedeutend billiger als die Relais und ihr Preis wird in Zukunft durch neue Fertigungsmethoden noch weiter sinken. In manchen Steuerschaltungen langsamer Ein- und Ausgabegeräte sind jedoch Relais noch in Anwendung.
1.1 Relais Das Relais soll hier als Bauelement besprochen werden, obwohl sein Anwendungsbereich weitgehend zusammengeschrumpft ist. An ihm läßt sich nämlich die ,Schalterfunktion' und die damit technisch realisierten Beziehungen der Schaltalgebra deutlich aufzeigen.
232
Teil IV : Technologische Grundlagen
y = 0
1 2 3 4
= = = =
Eisenkern Wicklung Anker Arbeitskontakt
Abb. 102: Verhalten eines Relais mit Arbeitskontakt, wenn der Empfangsstrom IE = o
Ein Relais kann prinzipiell als Schalter aufgefaßt werden, wobei die binäre Schalterstellung (Kontakt ,offen' oder geschlossen') von einer empfangenen Information ( = Strom x) anhängig ist. Dementsprechend kann man bei einem Relais einen Empfangs- und einen Sendeteil unterscheiden. Der Empfangsteil steuert den Sendeteil. Die empfangene Information ist binärer Natur: Für den Empfangsstrom x wird vereinbart : x= o x/ o
entspricht O entspricht L
Sendeteil
Empfangsteil
I -ÔIS * o V
IE * o
Information : I empfangen:
x = L
gesendet:
y = L
y = L
Batterie
1 2 3 4
= = = =
Eisenkern Wicklung Anker Arbeitskontakt
Abb. 103: Verhalten eines Relais mit Arbeitskontakt, wenn der Empfangsstrom IE + o
1. Bauelemente
233
Im Ruhestand (x = o) verbleibt der Anker in seiner Ausgangsstellung (Abb. 102). Der Kontakt und somit auch der Stromkreis des Sendeteils bleibt offen. Der Sendestrom ist gleich Null (y = o). Die Sendeformation lautet also: y = O. Im Arbeitszustand (x # o) erzeugt der durch die Wicklung des Relais fließende Strom eine Magnetisierung des Eisenkerns (vgl. Abb. 103). Der Anker wird dadurch angezogen und schließt den Kontakt. Damit wird der Stromkreis des Sendeteils geschlossen (y o) - die Sendeinformation lautet demnach: y = L. Die Empfangs-Information (getragen von x) erzeugt somit über das Relais eine Sende-Information (getragen von y). Die aus obiger Funktionsbeschreibung resultierende Wertetafel entspricht der logischen Funktion. Identität: X
y
O L
0
L
In Abb. 102, 103 hatten wir ein Relais mit einem Arbeitskontakt vorliegen. Hätten wir ein solches mit einem Ruhekontakt gewählt, so läge die logische
Abb. 104: Realisierung der AND-Funktion (A) mit Hilfe von zwei Relais (mit je einem Arbeitskontakt)
Abb. 105: Realisierung der OR-Funktion (V) mit Hilfe von zwei Relais (mit je einem Arbeitskontakt)
234
Teil IV: Technologische Grundlagen
Funktion: Negation vor. Mit zwei Relais aus Abb. 102 lassen sich die beiden logischen Grundfunktionen A N D und OR leicht verwirklichen. Dazu werden die Ausgänge der beiden Relais entsprechend miteinander verdrahtet.
1.2 Halbleiterbauelemente Als Halbleiter im weiteren Sinne bezeichnet man in der Elektrotechnik solche Stoffe, deren elektrische Leitfähigkeit zwischen der von Metallen und der von Isolatoren liegt. Unter Halbleiter im engeren Sinne versteht man jedoch nur die Bauelemente, die aus solchen Stoffen hergestellt wurden - wie Dioden und Transistoren. Bei der Fertigung derartiger Bauelemente geht man von besonders reinen Germanium- oder Silizium-Kristallen, sogenannten Einkristallen, aus. Durch genau dotierten Zusatz bestimmter chemischer Elemente ( = gezielte Verunreinigung) kann man die Leitfähigkeit dieser Kristalle beträchtlich verändern. Der Zusatz von sogenannten Donatoren (sie geben Elektronen ab, z.B.: Arsen) bewirkt einen Elektronenüberschuß (negativ) - man spricht dann von einer n-Zone des Kristalls. Die Beigabe von sogenannten Akzeptoren (sie binden freie Elektronen, z. B.: Indium) bewirkt dagegen einen Elektropenmangel im Kristall. Die so entstandene Zone nennt man p-Zone (positiv). Die sehr genau zu bemessende Dotierung (ca. 1 Fremdatom auf 105 Kristallatome) wird in Diffusionsprozessen vorgenommen. Von großem Interesse für die Schaltungstechnik sind die Eigenschaften des Übergangsbereichs zweier aufeinanderfolgender Zonen gegensätzlicher Dotierung. Ein solcher Übergangsbereich hat nämlich u. a. die sehr nützliche Eigenschaft, in der einen Richtung elektrisch zu ,sperren' und in der anderen
Halbleiterdiode: Übergangsbereich
p-Zone
n-Zone
zugehöriges Symbol: Abb. 106: Aufbau einer Halbleiterdiode und zugehöriges Schaltungssymbol
1. Bauelemente
235
.durchlässig' zu sein. Der elektrische Widerstand eines pn-Übergangs ist also in der einen Richtung sehr groß und in der anderen verschwindend klein.
1.2.1 Diode Diese Eigenschaft der richtungsabhängigen Leitfähigkeit verwertet man bei der Halbleiterdiode. Sie besteht aus einer p- und einer n-Zone. Die Diode wirkt wie ein Schalter, wobei die ,Schalterstellung' von der Polung der angelegten Spannung abhängt:
angelegte Spannung: +
o
12 V
-
• ?
+
12 V
O
x 10358
zu c) Suche mit Indextabellen Dieses Suchverfahren kehrt die Speicherung mit der Indextabelle um. zu d) Suche bei Indexverkettung Index-verkettet gespeicherte Datenbestände werden i. a. quasisequentiell durchsucht. Eine Einfach-Kette wird z. B. beginnend beim ersten Satz, in Verkettungs-
324
Teil V: Betriebsorganisatorische Grundlagen
richtung durchlaufen, bis der gesuchte Satz lokalisiert ist. Es gilt (wie bei der sequentiellen Suche): mittlere Anzahl der Suchschritte: maximale Anzahl der Suchschritte:
x = j (N + 1 ) xmax = N
wobei: N = Anzahl der verketteten Dateneinheiten. Kompliziertere Kettenstrukturen erfordern eine entsprechend modifizierte Anwendung des sequentiellen Suchprinzips. zu e) Suche bei Adreßrechnung Hier wird der Speicherplatz eines Satzes aus dem vorgegebenen (Such-) Schlüssel abgeleitet. Entsprechend den Verfahren der gestreuten Speicherung kann eingeteilt werden in: - Suche mit direkter Adressierung - Suche mit indirekter Adressierung.
1.6 Verarbeitungsverfahren
Die Verarbeitungsverfahren stehen in enger Beziehung zur Datenorganisation und werden daher an dieser Stelle behandelt. Sie orientieren sich an der Art der Datenbestände: - Bestandsdatenbestände - Bewegungsdatenbestände Beide Begriffe lassen sich am Beispiel der Kontenfortschreibung erläutern. Die zu einem Stichtag erstellte Kontenstand-Datei stellt einen Bestandsdatenbestand dar. Die während eines Abrechnungszeitraums gesammelten Kontenbewegungen ergeben einen Bewegungsdatenbestand. Bestands- und Bewegungsdatenbestände können nach verschiedenen Speicherverfahren abgelegt sein. Die Verarbeitung orientiert sich jedoch stets an der Reihenfolge, in der die Bewegungssätze zur Verarbeitung gelangen. In dieser Reihenfolge werden also die Bestandssätze verarbeitet. Entsprechend der Bereitstellung der Bewegungssätze unterscheidet man daher: - Sortierte Verarbeitung - Unsortierte Verarbeitung
1.6.1 Sortierte Verarbeitung
Die Sätze des Bewegungsdatenbestandes sind nach dem Schlüssel sortiert und gehen in dieser Sortierfolge in die Verarbeitung ein. Im praktischen Betrieb sammelt man die Bewegungssätze eines (Abrechnungs-)Zeitraums und ver-
1. Datenorganisation
325
arbeitet diesen Datenstapel in einem Schub. Ein Beispiel für diese schubweise Verarbeitung zeigt die Abb. 156. n Datenerfassung
, Bestand (alt) , i nach Kto.-Nr. sortiert i
Abb. 156: Bestandsfortschreibung als Beispiel für sortierte Verarbeitung
326
Teil V: Betriebsorganisatorische Grundlagen
Die sortierte Verarbeitung kann wirtschaftlich bei: - sequentieller Speicherung - index-sequentieller Speicherung - gestreuter Speicherung mit direkter Adressierung der Datenbestände durchgeführt werden, da hier die Datenbestände sortiert nach dem Schlüssel abgelegt sind. Bei Verwendung von Direktzugriffsspeichern bestehen jedoch Probleme beim Einfügen von Neuzugängen. Die sortierte Verarbeitung wird angewandt, wenn die anfallenden Bewegungssätze nicht sofort verarbeitet werden müssen und der Anteil der bei der Verarbeitung bewegten Bestandssätze hoch ist. 1.6.2 Unsortierte Verarbeitung
Im praktischen Betrieb können die Bewegungssätze häufig nicht gesammelt werden. Sie müssen nach nur kurzer Zwischenspeicherung sofort verarbeitet werden. Die Bewegungssätze werden also unsortiert, d.h. in der Reihenfolge ihres Eintreffens, verarbeitet. Typisches Beispiel für eine solche unsortierte Verarbeitung ist das Platzbuchungssystem, wie es Fluggesellschaften verwenden. Die unsortierte Verarbeitung kann angewandt werden bei: - index-sequentieller - gestreuter Speicherung (direkte und indirekte) Adressierung der Bestandsdatei. In Frage kommen also nur Speichermedien mit wahlfreiem Zugriff (RAM). Die unsortierte Verarbeitung wird angewandt, wenn: - in einem gegebenen Zeitraum der Anteil der bewegten Bestandssätze gering ist, - eingehende Bewegungssätze aus Gründen der jederzeitigen Aktualität der Bestandsdateien sofort verarbeitet werden müssen. Vor-/Nachteile beider Verarbeitungsverfahren: Verarbeitung
Vorteile
Nachteile
Sortiert
- geringerer Aufwand
- Bestandsdateien (zum Stichzeitpunkt der Verarbeitung) sind nur periodisch aktuell
Unsortiert
- stets aktuelle Bestandsdaten (aktuelle Auskunft)
- moderne Betriebsart (z. B. Echtzeitverarbeitung notwendig) - jederzeit Aktivierung des Bestandsführungsprogramms muß möglich sein.
1. Datenorganisation
327
a uo 'I
73 eo .e a,
S wurden früher eingelesen 1002 steht die Zahl 10 J und abgespeichert 1003 nimmt die Zählgröße I auf 1004 nimmt die (Zwischen-)Summe S auf 1006 steht das Programm (das insgesamt 14 Befehle umfaßt).
Befehlsart
Befehlswort Op Ad
Wirkung
arithmetische Befehle: Addition
ADD
Subtraktion Multiplikation
SUB MLT
n n n
: = + : = -
logische Befehle: bedingter Sprung
SPR
n
Sprung zur Zelle n, wenn AC ^ 0
EAC AAC DRU STP
n n n
: = : =
Transportbefehle: Einschreiben in AC Abspeichern aus AC Druck-Befehl Stop-Befehl
Abb. 163: Befehlsliste eines fiktiven Rechners
0000
(AC): = •
drucke n stop!
336
Teil V: Betriebsorganisatorische Grundlagen
Mit Hilfe des Programmablaufplans Abb. 162, der Befehlsliste und diesem Speicherverteilungsplan läßt sich das Programm erstellen. Es besteht aus den Befehlen EAC 1000 bis STP 0000 in der 2. Spalte der Abb. 164. Die 1. Spalte gibt die Speicheraufteilung an, deren Kenntnis zum Erstellen der Sprungbefehle erforderlich ist (vgl. Sprungbefehl SPR 1009). Spalte 3 deutet den Programmablauf an. In Spalte 4 werden die Wirkungen der Befehle symbolisch erläutert, und Spalte 5 gibt den jeweiligen Akkumulatorinhalt nach Ausführung des Befehls derselben Zeile an. In Spalte 6 werden die Symbole des Programmablaufplans wiederholt. Mit Hilfe dieser erläuternden Spalten ist das Programm (Spalte 2) leicht verständlich. Sprg. Wirkung
SpeicherZelle
Befehlswort Ad Op
(AC)
Symbole des Programmablaufplans
1006
EAC
1000
1007
AAC
1004
(AC) = 0
0
(BEGINN)
=0
0
1008
AAC
1003
J V
1 1
stop!
v
ENDE J
Erläuterungen
Abb. 164: Programm in einer symbolischen Programmiersprache mit memnotechnischem Operationsteil und absoluten Dezimaladressen
Der Programmablaufplan wäre detaillierter ausgefallen, hätte man für jedes Befehlswort ein eigenes Symbol gezeichnet. Die Umsetzung der Information des Programmablaufplans in die Programmsprache bezeichnet man gelegentlich als .Codieren'. Die Unterlagen sind also: Programmablaufplan, Befehlsliste und gewählter Speicherverteilungsplan.
2. Programmierung
337
Aus den bisherigen Überlegungen sind folgende Nachteile für das Programmieren in dieser Sprache zu entnehmen: a) Der Adreßteil der Befehle besteht nur aus Ziffern und ist somit schwer merkbar. b) Große Programme, die aus Tausenden von Befehlen aufgebaut sind, führen zu mangelhafter Übersichtlichkeit, schlechter Lesbarkeit, erhöhter Fehlerwahrscheinlichkeit und großem Schreibaufwand. c) Sind bei Programmänderungen Befehlseinschübe erforderlich, so ändert sich die gesamte folgende Speicheraufteilung. Sprungbefehle müssen vom Programmierer wieder umgeschrieben werden. d) Bei mittleren und größeren Rechnern umfaßt die Befehlsliste bis zu einigen hundert Befehlsarten. Das Programmieren wird damit sehr gedächtnis-aufwendig e) Die Programme können nicht auf Rechnermodellen anderer Fabrikate gefahren werden. Man hat schon sehr bald nach Wegen gesucht, welche einige dieser Nachteile umgehen.
2.2.3 Assemblersprachen Einen weiteren Schritt, die Programmierung anwendungsfreundlicher zu gestalten, brachten am Ende der 1. Computer-Generation, insbesondere aber in der 2. Generation, die Assemblersprachen. Bei ihnen wird der Adreßteil des Befehlswortes durch alpha-numerische Symbole (Buchstaben-Ziffern-Kombinationen) dargestellt. Man spricht von einer symbolischen Adressierung. Die Zuordnung absoluter Adressen zu diesen symbolischen Adressen wird einem Übersetzerprogramm, dem sogenannten Assemblierer (assembler), aufgebürdet. Die Sprungziele innerhalb eines Programms werden ebenfalls durch Symbole, sogenannte Marken, gekennzeichnet (vgl. MAR in Abb. 165). Die Programmierung wird weitgehend erleichtert - vor allem bei Programmänderungen, die Änderungen in der Speicheraufteilung nach sich ziehen. Der Assemblierer wird von der Herstellerfirma des Computer-Modells mitgeliefert. Er ist natürlich in der Maschinensprache geschrieben. Er übersetzt das vorliegende Quellprogramm entweder schon beim Einlesen oder mit einem eigenen Übersetzungslauf in ein Zielprogramm, das in der Maschinensprache abgefaßt ist. Entspricht jedem symbolischen Befehl auch ein Maschinenbefehl, so liegt eine 1 : 1 Sprache vor. Derartige Assemblersprachen nannte man früher auch Basis-Autocode. Nach der Übersetzung befindet sich das Programm in Maschinensprache im Hauptspeicher und kann in Lochkarten ausgestanzt oder in einem Peripherspeicher aufbewahrt werden. Beim nächsten Arbeitsablauf des Programms wird somit die Übersetzung gespart.
338
Teil V: Betriebsorganisatorische Grundlagen
In der Abb. 165 ist das Programm für das bisher stets besprochene Beispiel in einer Assemblersprache aufgestellt. Die Befehlsliste Abb. 163 wurde dabei übernommen. Die symbolischen Adreßteile der Befehle sind in Klammern gesetzt. Sie wurden entsprechend den Bezeichnungen im Programmablaufplan gewählt. Die Größen NU, EI, ZE, I, S werden in einem eigenen Vereinbarungsteil des Programms definiert.
Befehlswort Op Ad
(MAR) -
(NU) (EI) (ZE) (S)
(I)
EAC AAC AAC EAC ADD AAC MLT ADD AAC EAC SUB SPG DRU STP 0
Erläuterungen
(NU) (S)
S: =0
(I)
I : =0
(I) (EI)
•I : = 1 + 1
(I) (I) (S) (S) (ZE)
(I)
S:=S+ r
Weiche: I = 10
(MAR) (S)
drucke (S) stop
11
10 0 0
' Vereinbarungsteil
Abb. 165: Programm in einer Assmblersprache Vergleicht man diese Abbildung mit Abb. 164, so erkennt man sofort die bessere Lesbarkeit und größere Übersichtlichkeit des Programms in der Assemblersprache. Der entscheidende Vorteil dieser Sprache ist natürlich, daß der Programmierer nicht mit der Speicheraufteilung und Adressenumrechnung belastet wird. Die meisten Assemblersprachen verfügen aber über ein weiteres sehr nützliches Werkzeug, die sogenannten Makros. Derartige Assemblersprachen nannte man auch Makro-Autocode. Unter einem Makro-(Befehl) versteht man ein alpha-
2. Programmierung
339
betisches Symbol, das an Stelle einer ganzen Reihe von Maschinenbefehlen steht. Eine derartige Befehlsfolge nennt man Unterprogramm (subroutine). Die Unterprogramme sind in der Programmbibliothek des Rechners abgespeichert. Der Assembler ersetzt beim Übersetzen einen Makro automatisch durch das zugehörige Unterprogramm, das auch Prozedur genannt wird. Damit wird natürlich das Maschinenprogramm länger als das Assemblerprogramm. Eine Assemblersprache mit Makros ist also keine 1 :1 Sprache mehr. Der Vorteil bei der Verwendung von Makros liegt neben der Programmverkürzung vor allem in dem Komfort bei der Anwendung von Standardaufrufen. Wichtige Makros sind nämlich die mathematischen Standardfunktionen und Ein-/Ausgabeprozeduren. Makro
Prozedur für
0PEN Dateiname 1 , . . .
Dateien aktivieren, die in einem Programm benutzt werden
CL0SE Dateiname 1 , . . . .
Dateien schließen
GET Dateiname
serielles Einlesen eines Blocks von der Datei
PUT Dateiname
serielles Schreiben eines Blocks auf die Datei
CNTRL Dateiname, Schlüssel
Schnelldrucker steuern
2.3 Problemorientierte Universaisprachen 2.3.1 Problemorientierung Als maschinenorientiert gilt eine Programmiersprache, wenn ihre Befehlsliste im direkten Zusammenhang mit einem speziellen Rechnermodell steht. Die Programmierung der Maschine bestimmt die Sprachstruktur. Bei den problemorientierten Programmiersprachen (problem oriented language) steht nicht die Programmierung eines bestimmten Computer- Modells, sondern die Programmierung eines Problems, einer Aufgabe im Vordergrund. Die Befehlsstruktur der Sprache ermöglicht es, direkt das zu lösende Problem zu programmieren, ohne auf die jeweiligen Möglichkeiten der Maschinensprache (interner Code) Rücksicht nehmen zu müssen. Die Qualität einer problemorientierten Programmiersprache ist um so größer, je größer diese Maschinen-Unabhängigkeit ist. Man spricht deshalb auch von maschinen- oder systemunabhängigen Sprachen. Sie sind stets Makro-Sprachen, d.h. erreichen einen höheren Grad an Verdichtung und an umgangssprachlicher Form. Die problemorientierten Sprachen nennt man deshalb auch höhere Programmiersprachen. Die Symbolik dieser Sprachen orientiert sich mehr an der mathematischen Formelsprache und an Ausdrücken der menschlichen Umgangssprache als an
340
Teil V: Betriebsorganisatorische Grundlagen
der Maschinensprache eines bestimmten Rechnermodells. Damit gewinnen diese Programmiersprachen eine Allgemeingültigkeit, die es ermöglicht, sie bei nahezu allen Maschinen typen einzusetzen. Für jeden Maschinen typ ist natürlich ein eigenes Übersetzungsprogramm (Compiler) erforderlich, das aber von der Herstellerfirma des Rechnermodells mitgeliefert wird. Es wird auch Kompilierer genannt. Das in der problemorientierten Sprache erstellte Quellenprogramm wird in den Computer eingelesen und dort vom Kompilierer in eine maschinenorientierte Sprache, insbesondere die Maschinensprache übersetzt. Das damit gewonnene Programm nennt man Zielprogramm bzw. Maschinenprogramm. Da der Kompilierer umfangreiche Arbeiten zu erledigen hat, sind meist mehrere Übersetzungsläufe erforderlich. Seine Aufgaben sind u.a.: a) Kontrolle auf Syntaxfehler, d. h. auf grammatikalische Mängel des Quellenprogramms b) teilweise Kontrolle auf Semantikfehler (das sind logische Prinzipfehler) c) Übersetzen des Quellen- in ein provisorisches Zielprogramm d) Erstellen einer optimalen Form des Zielprogramms Die Übersetzung wird im ersten Schritt oft nur bis herab zur Assemblersprache vorgenommen. Die Übersetzung von dieser Assemblersprache in die Maschinensprache übernimmt dann ein regulärer Assemblierer, der Teil des Komplierers ist. Eine problemorientierte Programmiersprache baut sich nicht mehr aus einzelnen Befehlen auf. Im Prinzip besteht sie vielmehr aus zwei Arten von Sprachelementen : (1) Vereinbarungen (declaration) (2) Anweisungen (statement) Hierfür existieren auch andere Begriffe wie: (1) deskriptive Anweisungen oder: (1) nonexecutable statements (2) imperative Anweisungen (2) executable statements
zu(l) Vereinbarungen haben beschreibenden Charakter. Sie bewirken selbst keine rechnerischen und logischen Operationen. Sie ermöglichen es etwa dem Programmierer: a) die Art einer Variablen (integer, real, boolean) b) die Dimension eines Zahlenfeldes (ein- oder mehrdimensional) c) die Druckanordnung (Formatangabe) dem Computer mitzuteilen. Es werden also zwischen dem Programmierer und dem Computer Absprachen über Sprachelemente, die in den Anweisungen auftreten, getroffen.
2. Programmierung
341
zu (2) Anweisungen ordnen als Arbeitsvorschrift den Vollzug gewisser Operationen im Computer. Sie können etwa als Makros aufgefaßt werden, die später im Zielprogramm die Aktivierung einer ganzen Folge von Maschinenbefehlen bewirken. In den letzten Jahren zeigen sich zwei zum Teil widersprüchliche Tendenzen. Die problemorientierten Universalsprachen ALGOL, FORTRAN, PL/1 und zum Teil auch RPG werden laufend weiterentwickelt, um nicht nur bezüglich der Computermodelle, sondern auch bezüglich der Problembereiche (technischwissenschaftlich/kaufmännisch) universell einsetzbar zu sein. Andererseits entstehen problemorientierte SpezialSprachen für spezielle Anwendungsbereiche, wie Produktionsprobleme, Simulationen und Dialogverarbeitung (vgl. V 2.4).
2.3.2 RPG Jeder maschinelle Datenverarbeitungsprozeß durchläuft drei Phasen: Eingabe, Verarbeitung, Ausgabe. Die auf irgendwelchen Speichermedien (Lochkarte, Magnetband, Kassette, Diskette usw.) gespeicherten Daten werden in den Computer eingelesen, dort intern verarbeitet und in irgendeiner Weise ausgegeben (Druck, Lochkarte, Magnetband usw.). An diesem Prinzip orientiert sich die RPG-Sprache (report program generator). Der Programmierer hat auf den Eingabe-, Rechen- und Ausgabe-Formularen zu definieren, was eingegeben, wie verarbeitet und wie ausgegeben werden soll. Aus diesen Angaben erstellt ein sogenannter Listenprogrammgenerator in einem Übersetzungslauf das Maschinenprogramm. Da die Beschreibung der Daten und der Verarbeitung in der Regel kaum anlagenbezogene Programmierkenntnisse erfordert, zählt man die RPG-Sprache zu den problemorientierten Programmiersprachen. Dies ist nur bedingt richtig, da bei RPG und ähnlich auch bei anderen Generatorsprachen eine relativ starre Programmstruktur festgelegt ist. Im Gegensatz zu den folgenden problemorientierten Sprachen gibt es Programmgeneratoren schon für sehr kleine Computer.
2.3.3 ALGOL Der Anstoß zur Entwicklung von ALGOL ( = a/gorithmic /anguage) kam 1955 aus den USA, die entscheidenden Arbeiten wurden jedoch danach in Europa geleistet. ALGOL ist eine problemorientierte Programmiersprache für den mathematisch-wissenschaftlichen Anwendungsbereich. Sie baut auf der algorithmischen Beschreibungsweise (Rechenschema) von Problemen auf und ist deshalb für den mathematisch Geschulten leicht zu erlernen. Als Sprach-
342
Teil V: Betriebsorganisatorische Grundlagen
demente dienen numerische, alphabetische und alphanumerische Symbole sowie standardisierte Wortsymbole der englischen Sprache, wie: begin, end, go to, read, print. Ähnliche Wortsymbole kann sich der Programmierer selbst schaffen, um damit ganze Programmbausteine wiederholt einfach aufrufen zu können. Diese Unterprogramme werden zuvor einmal im Programm als Prozeduren (procedure) vereinbart und definiert. Der Bericht ,ALGOL 60' bildet die grundlegende Definition der Sprache. Im Jahre 1959 schlössen sich die an ALGOL interessierten Firmen und Hochschulinstitute in der sogenannten ALCOR-Gruppe zusammen. Da im Gegensatz zu den kommerziellen Aufgaben bei technisch-wissenschaftlichen Aufgaben Ein-/ Ausgabeoperationen nur selten auftreten, vernachlässigten die Regelungen in ALGOL 60 diesen Operationstyp. In ALGOL 68 konnte dieser Mangel durch Weiterentwicklung der ALGOL-Programmiersprache weitgehend behoben werden. Die Programmierung an wissenschaftlichen Hochschulen erfolgt zum großen Teil in ALGOL. Weitgehend ausgereifte ALGOL-Kompilierer stehen für die meisten Maschinentypen zur Verfügung. Auf die einzelnen Sprachregeln von ALGOL wollen wir hier nicht eingehen. Der Literaturverweis am Ende des Buches führt weiter. Das Musterbeispiel soll aber doch, in ALGOL formuliert, angegeben werden. Vergleicht man dieses Programm mit Abb. 164 oder Abb. 165, so erkennt man, welche großen Erleichterungen die problemorientierten Programmiersprachen dem Programmierer bringen. In V 2.5.1 werden wir darauf noch genauer eingehen. ALGOL-Programm
Kommentar
'BEGIN'
Blockvereinbarung
'INTEGER' S, I;
Vereinbarung
S: = 0 ;
Anweisung
'FOR' I: = 1 'STEP' 1 'UNTIL' 10 'DO'
1 (Lauf-)
S: = S + I * I;
J Anweisung
PRINT (S);
Anweisung
'END'
Blockvereinbarung
Abb. 166: ALGOL-Programmbeispiel
2.3.4 FORTRAN Ähnlich wie ALGOL ist auch FORTRAN ( = /ormula iranslation) eine problemorientierte Programmiersprache zur Formulierung mathematischer Aufgabenstellungen. Die Geschlossenheit und Maschinenunabhängigkeit ist jedoch nicht so weitgehend verwirklicht wie bei ALGOL. Insbesondere die
2. Programmierung
343
E/A-Anweisungen nehmen Rücksicht auf die jeweilige Maschinenkonfiguration. Dadurch konnten aber von Anfang an leichter als mit ALGOL auch die E/Aintensiven kaufmännischen Aufgaben mitbehandelt werden. FORTRAN wurde 1955 von der Firma IBM entwickelt. Verbesserte Entwicklungsstufen werden durch Anhängen römischer Ziffern gekennzeichnet, wie FORTRAN IV. Die Computer der Firma IBM und auch viele Maschinen anderer Firmen verfügen über einen FORTRAN-Kompilierer. Die Symbolik der Sprache lehnt sich - wie bei ALGOL - stark an die mathematische Formelsprache an. Auch hier werden standardisierte Wortsymbole mit Makro-Funktion (z.B. read, print) oder zum Zweck der Vereinbarung (z.B. begin, end, Format) verwendet. Unser Musterbeispiel, in FORTRAN formuliert, zeigt die große Ähnlichkeit der beiden Programmiersprachen ALGOL und F O R T R A N : FORTRAN-Programm INTEGER S
Kommentar Vereinbarung
S = 0
1 Anweisung
DO 11 = 1,10
J (Lauf-)
1S = S + I*I
Anweisung
PRINT 2, S
Anweisung
2 FORMAT (1H1,10X, 14)
Vereinbarung
STOP
Anweisung
END
Vereinbarung
Abb. 167: FORTRAN-Programmbeispiel
2.3.5 COBOL Es war naheliegend, die anders gearteten Aufgaben des kaufmännisch-betriebswirtschaftlichen Bereichs mit einer eigenen problemorientierten Programmiersprache zu behandeln. Zu diesem Zweck begann man in den USA 1959 mit der Entwicklung von COBOL ( = common Business oriented /anguage), die 1961 abgeschlossen war. 1965 wurden Erweiterungen in der Sprachnormung vorgenommen. Die Hersteller von COBOL-Kompilierern beziehen sich im wesentlichen auf die im Jahre 1964 unter dem Titel ,USA Standard COBOL' veröffentlichte standardisierte COBOL-Fassung. COBOL arbeitet mit relativ vielen Wortsymbolen und ist recht speicheraufwendig. Ein COLBOL-Programm besteht grundsätzlich aus vier Teilen:
344
Teil V: Betriebsorganisatorische Grundlagen
1. Identification Division 2. Environment Division 3. Data Division 4. Procedure Division
(Erkennungsteil) (Maschinenteil) (Datenteil) (Befehlsteil)
Der erste Teil dient lediglich der Kennzeichnung des Programms in der Programmbibliothek . Im zweiten Teil wird die Art der Zusammenarbeit zwischen Zentraleinheit und Periphergeräten des Rechnersystems festgelegt. Dieser beschreibende Teil ist demnach stark von der Gerätekonfiguration des Systems abhängig. Der Datenteil ist weit weniger maschinenabhängig und dient der Vereinbarung der verwendeten Dateneinheiten und definiert Konstante. Der vierte Teil ist der eigentliche Programmabschnitt. In ihm werden in algorithmischer Form die Anweisungen zur Verarbeitung der Daten festgelegt. Die Abb. 168 gibt eine COBOL-Lösungsvariante für das bisher stets behandelte Musterbeispiel an. Dieses Beispiel ist kein ein-/ausgabeintensives kommerzielles Programm. Die spezifischen COBOL-Vorteile werden hierbei nicht sichtbar. IDENTIFICATION D I V I S I O N . PR QGR AM- I D . T EST . ENVIRONMENT D I V I S I O N . CONFI GUTAT 1 ON S E C T 1 0 N . SOl'R CE- CCMPUT ER . UN IV A C - 1 J 0fc. QBJECT-COMPUT ER .CN IV AC-11 O t . D AT A D IV 1 SI OK . WOPK IN G-ST 0» A6E SECTION. 77 I P I C 99 . 77 S P K 9111 «LUE 0. PP c c r n i w E DIVISION . PI. PERFOBM P 2 WAR VING I FROH 1 BV ) DISPLAY S l!PÜN P R I N T E R . STOP RUN. P? . COMPUT E S - S •
UNT IL
I >
IC.
1 # 1-
Abb. 168: COBOL-Programmbeispiel 2.3.6 PL/1
Mit dem Einsatz moderner Familienserien von Computer-Modellen, die gleichwertig für wissenschaftliche und kommerzielle Zwecke eingesetzt werden können, wuchs auch das Bedürfnis nach einer für beide Bereiche zuständigen,
2. Programmierung
345
einheitlichen Programmiersprache. In den Jahren 1963/64 wurden bei der Firma IBM entsprechende Versuche unternommen, die in der Schaffung der universellen Programmiersprache PL/1 ( = Programming Language 1) mündeten. Im Jahre 1966 stand der erste Kompilierer für diese Programmiersprache zur Verfügung. In PL/1 wurden Sprachelemente sowohl von FORTRAN als auch von COBOL übernommen. Der vergrößerte Sprachumfang eröffnet PL/1 ein weiteres Anwendungsfeld. Kommerzielle, technisch-wissenschaftliche und gerätebedingte Bedürfnisse sollen gleichzeitig abgedeckt werden. Diese und andere Vorteile, wie: leichtes Erlernen, gute Fehlerdiagnose und gute Dokumentation, sicherten dieser höheren Programmiersprache keineswegs sofortigen Markterfolg. Verschiedene Nachteile werden genannt, z.B. das Potential der Sprache könne ohnehin nur von wenigen kreativen Star-Programmierern voll genutzt werden. Auch war lange Zeit die Hersteller-Unabhängigkeit nicht gewährleistet, da die anderen Hersteller keine PL/l-Kompilierer anboten. Die Abb. 169 enthält eine PL/l-Lösung für das bisher stets behandelte Musterbeispiel. DECLARE I OECIMAL F I X E D ( 2 ) : DECLARE S OECIMAL F IX£D( t P , 9 9 9 9 . 1 STOP: Abb. 169: PL/l-Programmbeispiel
2.4 Problemorientierte SpezialSprachen In den letzten Jahren wuchs bei den Anwendern das Verlangen, Programmiersprachen einzusetzen, die zwar stark auf eine Problemklasse ausgerichtet, aber unabhängig von einzelnen Computer-Modellen und -Herstellern sein sollen. Wie jede Einteilung in diesem dynamischen Bereich, so ist auch die folgende teilweise willkürlich. Drei Problemfelder mit eigenen Sprachentwicklungen können unterschieden werden: (1) Datenbank- und Dialogsprachen (2) Simulationssprachen (3) Sprachen für Produktionsaufgaben
346
Teil V: Betriebsorganisatorische Grundlagen
2.4.1 Entwicklungsformen Die maschinenorientierten Programmsprachen sind auf ein Computer-Modell (Familie) ausgerüstet und können verschiedenartigste Problemarten beschreiben. Die problemorientierten Universalsprachen befreien von der Abhängigkeit von einem Rechnertyp und eignen sich weitgehend universell für unterschiedliche Problemkreise. Da aber jeder Problemtyp seine eigenen Nebenbedingungen und Gesetzmäßigkeiten aufweist, können Universalsprachen nicht für alle Problemklassen gleich gute oder gar optimale Einsatzbedingungen bieten. Konsequent wäre der Schritt, die Maschinenunabhängigkeit im Interesse des Anwenders beizubehalten, aber seiner Problemcharakteristik mit der Struktur der Programmiersprache entgegenzukommen. Dieser Schritt wurde bereits für verschiedene Problemklassen gemacht. So entstanden und entstehen laufend neue problemorientierte Spezialsprachen. Eine Klassifizierung in dieser dynamischen Entwicklung bereitet große Schwierigkeiten. Vier Klassen von problemorientierten Spezialsprachen können beobachtet werden: (1) Datenbanksprachen (2) Dialogsprachen (3) Simulationssprachen (4) Produktionsprozeßsprachen Der Aufbau, die Verwaltung und Auswertung von Datenbanken bedeuten eine in sich abgeschlossene Aufgabenklasse. Die problemorientierten Universalsprachen erweisen sich als nicht flexibel genug für diese Aufgaben. Sie werden oft als Basissprache (host language) benutzt und um weitere sprachliche Komponenten zu einer eigenen Datenbanksprache ausgebaut. Eine Komponente enthält eine Vorratsliste von Anweisungen, mit denen der Benutzer der Datenbank leichter Datenbeschreibungen (vgl. V 1) erstellen kann. Die Anweisungen der datenmanipulativen Komponente dienen dem Zugriff auf Dateneinheiten, dem Datentransfer zwischen Datenbank und weiterverarbeitenden Programmen und dem Ändern bzw. Löschen von Dateninhalten. Die Abfragekomponente dient der Kommunikation zwischen dem Benutzer und der Datenbank; sie kann als eigene Abfragesprache mit nahezu umgangssprachlichen Ausdrücken ausgebildet sein. Anfragen können einfach formuliert, Auskünfte des Rechnersystems unmittelbar verstanden werden. Besondere Bedeutung kommt dieser interaktiven Kommunikation zwischen Benutzer und Datenbank mit nichtformatierten Daten zu. Derartige Information Retrieval Systeme verwenden echte Dialogsprachen. Dialogsprachen sind leicht erlernbar, bieten kurze Antwortzeiten - gerade auch auf spontane, differenzierte Informationswünsche. Diese Vorteile führten dazu, daß für die verschiedensten Zwecke eigene Dialogsprachen entwickelt wurden;
2. Programmierung
347
beispielsweise für Information Retrieval (z.B. GOLEM von Siemens), für Teilnehmersysteme (z.B. APL und CALL von IBM), für die Kommunikation von Operateur und Betriebssystem (z.B. ICL von IBM), für computergestütztes Konstruieren. Für die vielfaltigen Anwendungen und algorithmischen Verfahren der Simulation (vgl. VI 2.1.2) wurde eine Vielzahl von SimulationsProgrammiersprachen entwickelt. Sie eignen sich für die Nachbildung der technischen und ökonomischen Wirklichkeit mit diskreten oder kontinuierlichen Modellen. Zur ersten Gruppe zählen die 1962 entwickelte Sprache SIMSCRIPT und die 1965 in Norwegen entstandene SIMULA ( = Simulation Language). Ebenfalls für diskrete Abbildungen geeignet sind GPSS ( = General Purpose Simulation System) und die abgeleiteten Herstellervarianten. Diese Sprachen bieten sogar vorgefertigte Modellelemente, beispielsweise für den Aufbau von Warteschlangen. Auch verwenden mehrere Simulationssprachen FORTRAN oder ALGOL als Basissprache im oben genannten Sinn. In der Öffentlichkeit bekannt wurde in den letzten Jahren vor allem die gleichungsorientierte Simulationssprache DYNAMO für kontinuierliche Modelle. Der Club of Rome erzeugte damit die Hochrechnungen seines Weltmodells. DYNAMO beruht auf den Grundsätzen des ,Industrial Dynamics' von Forrester. Neben die schon klassischen Computer-Anwendungen für kaufmännische und technische-wissenschaftliche Aufgaben tritt der Rechnereinsatz in unmittelbar produktionstechnischen Prozessen. In diesem Zusammenhang sind vor allem die Programmiersprachen EXAPT und PEARL zu nennen. 2.4.2 EXAPT und PEARL In zunehmendem Maße werden numerisch gesteuerte Werkzeugmaschinen zur Automatisierung der Einzel- und Kleinserienfertigung eingesetzt. Derartige Maschinen bezeichnet man auch als Numerik- oder NC-Maschinen (vgl. VI 2.1.5). Sie werden mit einem Lochstreifen gesteuert. Die Informationen für diesen Steuerlochstreifen können von Hand erstellt werden. Als Nachteile der manuellen Programmierung gelten allerdings der große Zeitaufwand, hohe Fehlerquote und mangelnde Flexibilität. Damit ein Computer den NC-Steuerlochstreifen erzeugen kann, muß er auf dieses spezielle Problem programmiert werden. Verschiedene Firmen und Institutionen schufen problemorientierte NC-Spezialsprachen wie: APT, ADAPT, AUTOSPOT, AUTOPIT. Allein in den USA existieren mehr als 40 derartige Sprachen. Um unnötige Parallelarbeit zu vermeiden, schufen drei deutsche Hochschulinstitute die stark problemorientierte Spezialsprache EXAPT. Sie stützt sich auf die Erfahrungen, die man mit APT ( = /iutomatical Programmed Tools) gewonnen hat. Außer geometrischen Angaben sind jedoch bei EXAPT umfangreiche Angaben
348
Teil V: Betriebsorganisatorische Grundlagen
technologischer Natur möglich. Die Informationen des Quellenprogramms werden nach der Übersetzung ins Zielprogramm über vielfaltige Berechnungen des Rechners durch zusätzliche Steuerdaten erweitert. Der ausgegebene Steuerlochstreifen für die NC-Maschine enthält somit detaillierte Angaben über Arbeitsfolge, Werkzeugart, Schnittgeschwindigkeit und Vorschub. Die Sprache EXAPT ist in mehrere Sprachteile gegliedert und kann stufenweise erlernt und eingeführt werden. Der Grundbaustein BASIC-EXAPT eignet sich für NCWerkzeugmaschinen mit maximal 2,5dimensionaler Bahnsteuerung, also für Bohren, Fräsen, Drehen, Brennschneiden. EXAPT 1 ist einsetzbar für die Punktund Streckensteuerung, bei Bohrbearbeitung bzw. auch Fräsbearbeitung (EXAPT 1.1), EXAPT 2 für Drehbearbeitung mit 2dimensionaler Bahnsteuerung, und EXAPT 3 soll die Fräsbearbeitung behandeln. Die verwendeten Wortsymbole sind - wie bei ALGOL, FORTRAN, COBOL - englisch. Neben den NC-Werkzeugmaschinen bedeutet der Prozeßrechnereinsatz, wie er in VI eingehender behandelt wird, eine bedeutende Rationalisierung und Reorganisation in der Produktion. In Gemeinschaftsarbeit zwischen Hochschulinstituten und Industriefirmen und mit Unterstützung durch das 2. BMFTFörderungsprogramm entstand eine problemorientierte Spezialsprache für den Prozeßrechnereinsatz: PEARL (Process and .Experiment Automation Äealtime Language). BBC erprobt seit einiger Zeit die Unterversion PAS2, Krupp die Version DATRAN. Den problemorientierten Universalsprachen fehlen Sprachelemente für die Prozeßeingabe und -ausgabe, die Manipulation von OperandenBits und die Echtzeit-Programmsteuerung. Im Prozeß-FORTRAN existiert beispielsweise nur das entsprechende Sprachelement CALL als Prozeduraufruf. Aufgaben zu V 2.1,2.2,2.3,2.4 Die Summenformel des Beispiels aus Abb. 162 könnte durch eine offene obere Grenze N, deren konkreter Wert vor dem Programmablauf z. B. in einer Lochkarte bereitgestellt wird, erweitert werden. Wie wäre der Datenflußplan zu ändern? (1) Eine Befehlsliste ist (2) Ein Befehl besteht im Prinzip aus Operationsteil und Adreßteil. Für welchen Teil setzt die Assemblersprache symbolische Buchstabenkombinationen ein? (3) Speziell für kaufmännische Aufgaben wurde die Programmiersprache (4) entwickelt. Kompilierer übersetzen Quellprogramme von (5) Programmiersprachen. Einen Befehl im Assembler-Quellprogramm, der im übersetzten Zielprogramm ganze Prozeduren (Unterprogramm), d.h. Befehlsfolgen, auslöst, nennt man (6) Wie würde das ALGOL-Programm aus Abb. 166 abzuändern sein, wenn die betreffende Summenformel (Abb. 162) N
abgewandelt würde zu: (7) S = £ I 2 oder zu: (8) S = 2 3 + 4 3 + 6 3 + 8 3 i=i
N3.
2. Programmierung
349
2.5 Programmierunterstützung
Die heutige Situation bei betrieblichen Programmieraufgaben ist dadurch gekennzeichnet, daß der zunehmenden Zahl und Komplexität betrieblicher Anwendungsfalle eine mangelnde Programmiererkapazität nach Quantität und Qualität gegenübersteht. Ein Anwendungsprogrammierer erreicht 5 bis 30 fehlerfreie Anweisungen pro Tag, ein Systemprogrammierer 5 bis 10. Höhere Programmierproduktivität soll bei gleichzeitiger Einhaltung definierter Programmqualitäten erreicht werden. Die Beurteilung der Programme nach dem Kriterium der Richtigkeit allein genügt nicht mehr, vielmehr muß geprüft werden, ob die erstellten Programme leicht wartbar, verständlich und zuverlässig in der Anwendung und erweiterungsfähig in der Entwicklung sind. In den letzten Jahren wurde eine Vielzahl von Ansätzen erprobt, um diese und ähnliche Ziele zu erreichen. Da der Programmierprozeß viele Phasen vor und nach der unmittelbaren Auflistung von Anweisungen und Befehlen (auch Codieren genannt, vgl. Abb. 158) umfaßt, setzen diese Ansätze bei verschiedenen Phasen an. Programmierunterstützende Methoden bereitzustellen, erscheint besonders wichtig, da die erwünschte Produktivitätssteigerung nicht mehr durch weitere Arbeitsintensivierung bei den Programmierern angestrebt werden darf. Deren Arbeit stellt heute ohnehin schon hohe Anforderungen an Konzentration, Frustrationsbelastbarkeit und Fortbildung in der Freizeit. Das Bundesministerium für Forschung und Technologie hat mit der Studie,Einsatzmöglichkeiten softwaretechnologischer Methoden mit Normungseffekt' (April 1976) programmierunterstützende Methoden sammeln und auswerten lassen. Vereinfachend können vier Ansätze zur Programmierunterstützung genannt werden: (1) problemorientierte Programmiersprachen (2) Dialogprogrammierung (3) Programmierhilfen (4) DV-Projektleitung Die Programmierung i.e.S. erreicht eine höhere Produktivität, wenn sie eingebettet ist in den größeren Rahmen einer systematischen DV-Projektleitung. Dazu zählen vor allem die sachliche, personelle und wirtschaftliche Planung und Kontrolle von DV-Projekten (vgl. VI 1.1).
2.5.1 Unterstützung durch Programmiersprachen
Obwohl problemorientierte Programmiersprachen seit einem Jahrzehnt und mehr angeboten werden, arbeitet die DV-Praxis durchaus noch in erheblichem Umfang mit maschinenorientierten Sprachen, insbesondere mit Assemblersprachen - wenngleich der Trend zu problemorientierten Programmierspra-
350
Teil V: Betriebsorganisatorische Grundlagen
chen eindeutig ist. Eine Erhebung des Unternehmensbereichs Datentechnik der Siemens AG im Jahre 1974 bei ihren Anwenderkunden ergab folgenden prozentualen Anteil von Programmiersprachen: Assembler COBOL RPG
45% (44%) 21% (27%) 17,2% (11%)
FORTRAN PL/1 ALGOL
6,5% (10%) 6,5% (8%) 3,8% (2%)
Die Klammerausdrücke geben zum Vergleich die Ergebnisse einer Befragung durch die Gesellschaft für Kernforschung im Jahre 1970 wieder (vgl. VI 1.1.4) -gemessen in zeitlichem Programmieraufwand. Der verstärkte Einsatz problemorientierter Programmiersprachen erklärt sich aus einer Reihe von Eigenschaften, die eine Überlegenheit gegenüber den maschinenorientierten Programmiersprachen sichern. Zu den Vorteilen der problemorientierten Sprachen werden gezählt: a) minimale Kenntnisse des technischen Aufbaus eines Rechnersystems erforderlich b) weniger Aufwand beim Wechsel eines Computer-Modells und des Herstellers c) nur etwa 1/4 bis 1/3 des Zeitaufwandes für das Codieren und Testen eines Programms d) standardisierte und damit leichtere Dokumentation und Wartung der Programme e) leichteres Erlernen der Sprache infolge ihrer vertrauten Symbolik, gewohnten Formuliertechnik und logischen Struktur f) Die Programmierkenntnisse können zeitlich schrittweise mit zunehmendem Schwierigkeitsgrad erworben werden. g) Ein größerer Personenkreis kann für das Erlernen der Sprache gewonnen werden. Die Programmierarbeit dezentralisiert sich teilweise zu den Anwendern der Fachbereiche. Problemorientierte Programmiersprachen weisen gegenüber maschinenorientierten jedoch auch gewisse Nachteile auf: a) teure Kompilierer-Entwicklung b) größerer Hauptspeicherbedarf c) langsamere Zielprogramme (Maschinenprogramme) und damit höhere Laufzeit in der Zentraleinheit, aber auch im Gesamtsystem. Die aufwendige Entwicklung ausgereifter Kompilierer verursacht natürlich hohe Kosten. Diese Kosten treten aber für einen Maschinen typ nur einmalig auf. Die Entwicklungskosten werden entweder von Herstellerfirmen allein (PL/1) oder zusammen mit Hochschulinstituten (ALGOL, EXAPT) und Anwendern (COBOL, PEARL) gemeinsam getragen. Insbesondere existiert heute ein großer Wissensbestand bezüglich der Entwicklung von Übersetzerprogrammen. Jahrelang und bis heute war oft bei der Auswahl einer Programmiersprache der große
2. Programmierung
351
Speicherbedarf problemorientierter Programme bestimmend. Der Speicherbedarf der Zielprogramme, die aus problemorientierten Quellenprogrammen stammen, liegt etwa ein Drittel höher als bei Assembler-erzeugten Maschinenprogrammen. Der Speicherbedarf des Kompilierers ist auch größer als der des Assemblierers. Flexible Betriebssysteme und große reelle und virtuelle Hauptspeicherkapazität heutiger Rechnersysteme lassen diesen Nachteil problemorientierter Sprachen an Gewicht verliererl. Infolge der großen Arbeitsgeschwindigkeit gilt Ähnliches auch für die vergrößerte Laufzeit, obwohl nicht zu vernachlässigen ist, daß problemorientiert erzeugte Zielprogramme durchaus doppelt solange Laufzeiten aufweisen wie assemblierte Programme. Im Kap. V 2.4.1 über problemorientierte SpezialSprachen wurde bereits darauf verwiesen, daß bestimmte Dialogsprachen für die Entwicklung und den Test von Programmen in einem interaktiven Informationsaustausch zwischen den Programmierern und dem Computer eingesetzt werden. Diese Dialogprogrammierung liegt im Trend zur Dezentralisierung der Computer-Intelligenz. Teile der Programmierarbeiten werden an die Aufgabenquelle in den Fachbereichen abgetreten. Neben die quellennahe Datenerfassung (vgl. IV 3.2.5) tritt die räumlich- und funktional-quellennahe Programmierung. Die Entwicklung und der Test von Programmen im Stapelbetrieb hatten für den Programmierer den Nachteil, daß er - wollte er seine Arbeitszeit nutzen - von einem Programm zum anderen wechseln müßte. Jetzt kann er seine eigene Kapazität statt im ,Mehrprogramm- im Einprogrammbetrieb' nutzen. Die Kontinuität des Gedankenflusses und aktives Testen werden möglich.
2.5.2 Strukturierte Programmierung
Neben den drei genannten Ansätzen für Programmierunterstützung gewinnt eine Reihe von Programmierhilfen, die sich gegenseitig ergänzen, an Bedeutung. Verschiedene Begriffe beschreiben sie: Normierte, Vertikale, Hierarchische, Strukturierte und Modulare Programmierung, Entscheidungstabellen, Topdown- und Bottom-up-Konzept, Diagnose- und Dokumentationsprogramme, Entwicklungsbibliotheken. Vielfaltige Diagnoseprogramme sind heute bereits Bestandteil fortgeschrittener Betriebssysteme (vgl. V 4.3). Je größer die Zahl der Programme, je komplexer die Struktur der Programme, je breiter die Anwendungsgebiete und je größer die Zahl der beteiligten Personen, um so wichtiger ist eine systematische Dokumentation der Programme, die dynamisch fortgeschrieben wird. Das Organisationsbuch sollte für den DV-Leiter wichtiger sein als das Telefonverzeichnis ehemaliger Programmiermitarbeiter. Durch Dokumentation lernt außer dem Bearbeiter auch die betriebliche Organisation mit. Mit dem Dokumentations- und Diagnoseprogramm Quick-Draw, das in Amerika stark verbreitet und in der BRD inzwischen ebenfalls eingeführt ist,
352
Teil V: Betriebsorganisatorische Grundlagen
können Quellenprogramme automatisch dokumentiert werden. Die Statistik von etwa 100 amerikanischen Benutzern zeigt, daß etwa 1 /4 der Testzeit eingespart werden konnte. Um die begrenzte Speicherkapazität von Rechnern der ersten und zweiten Generation optimal nutzen zu können, war die kreative Leistung von Programmier-Individualisten besonders gefragt. Aus den oben bereits genannten Gründen wird seit der dritten Rechnergeneration eine stärkere Normierung der Programmierarbeiten gefordert. Ein Gleichgewicht ist zu suchen zwischen logischer Richtigkeit, kreativer Optimierung und einem Mindestmaß an Standardisierung der Programme. Bei der Bezeichnung Normierte Programmierung - bekanntgeworden insbesondere in der kommerziellen DV-Anwendung handelt es sich um ein von Maschinentypen und Programmiersprachen unabhängiges Verfahren zur vorbereitenden Beschreibung des Programmablaufs. Einfache Regeln schon sollen eine übersichtliche und standardisierte Gliederung von Programmen sichern. Die Regelungen beziehen sich auf sequentielle Verarbeitungsprozesse. Die Teilaufgaben eines Programms, wie Dateneingabe, Satzauswahl und Verarbeitung, werden in ein einheitliches funktionelles Schema eingegliedert. Die so erstellten Programmbeschreibungen werden über einen Generator bzw. Vorübersetzer in ein problemorientiertes Quellenprogramm (z.B. COBOL) überführt. Verschiedene DV-Beratungen, z.B. ADV/Orga, bemühen sich seit Jahren um die Verbreitung der Normierten Programmierung bei den Anwendern. Seit 1970 setzt die Firma UNIVAC das COBOL-orientierte NP-Programm EASYCOB ein. Zur Normierten Programmierung existiert auch ein Normentwurf: DIN 66220 mit dem Titel ,Programmablauf für die Verarbeitung von Dateien nach Satzgruppen'. Die Normierte Programmierung wird gelegentlich mit einem anderen Hilfsmittel zur Vorstrukturierung von Programmen gekoppelt: der Entscheidungslabellentechnik. Ein solcher Generator ist z.B. seit 1972 das Programmpaket GOAL (Generator for Optimized Application Languages). Die Entscheidungstabelle kann allerdings nicht nur als Programmierhilfe zur rechnergestützten Generierung von Programmen eingesetzt werden. Als allgemeine Problembeschreibungsmethode findet sie auch Anwendung bei Nichtprogrammierern, z. B. in der Qualitätskontrolle. In den USA ist die Entscheidungstabellentechnik bereits seit 1957 als Methode der Systemanalyse bekannt. In der BRD fand sie erst seit etwa 1970 einen breiteren Interessentenkreis. Die Struktur der Entscheidungstabelle wird von ihrer Grundidee bestimmt. Diese lautet: ein logischer Entscheidungs- oder Aktionsprozeß vollzieht sich nach Wenn-dann-Zusammenhängen. Wenn bestimmte Bedingungen bzw. Merkmale erfüllt sind, dann wird eine bestimmte Aktion in Gang gesetzt. Bei anderen Bedingungskombinationen dagegen werden andere Aktionen eingeleitet. Die Struktur der Entscheidungstabelle zeigt demnach eine obere Hälfte, in der die
2. Programmierung
353
Bedingungen eingetragen werden, und eine untere Hälfte, die die geforderten Aktionen enthält. Die Bedingungen und die Aktionen müssen präzise beschrieben sein. Dies geschieht in der linken Hälfte der Entscheidungstabelle. Die rechte Hälfte kombiniert mit Ja/Nein-Markierungen die Bedingungen und ordnet ihnen durch X-Markierungen die zugehörigen Aktionen zu. An dem folgenden, aus didaktischen Gründen vereinfachten Beispiel kann die Struktur der Entscheidungstabelle nachvollzogen werden. Beispiel Im Rahmen der Zahlungsüberwachung eingegangener Lieferantenrechnungen erstellt die Kreditorenbuchhaltung eine Zahlungs-Vorschlagsliste für die Finanzabteilung. In einer Art Simulationslauf soll ermittelt werden, wie hoch der Gesamtbetrag der auszustellenden Wechsel, Verrechnungsschecks und Überweisungen zu erwarten ist. Ferner interessieren noch die Beträge der nicht falligen Rechnungen. Von den falligen Rechnungen werden die Rechnungen der Stammkunden unabhängig vom Betrag jnit Wechsel bezahlt. Die Rechnungen der anderen Kunden sind mit einem Verrechnungsscheck zu begleichen, falls der Betrag über 5000,- DM liegt, ansonsten erfolgt eine Überweisung. In der Entscheidungstabelle sind drei binäre Bedingungen abzufragen: F = Fälligkeit S = Stammkunde B = Rechnungsbetrag > 5000 DM. Bei n = 3 Binärmerkmalen lassen sich durch J/N-Markierungen maximal 2" = 2 3 = 8 Merkmalskombinationen bilden. Dementsprechend enthält die rechte Entscheidungstabellenhälfte 8 sogenannte Entscheidungsregeln. Wenn die beschriebene Aufgabe automatisiert werden soll, so muß dafür ein Quellenprogramm erzeugt werden. Statt dieses Quellenprogramm in einer problemorientierten Sprache zu programmieren, kann der Programmierer auch die Entscheidungstabelle in den Rechner eingeben. Mit Hilfe eines Vorübersetzers (Pre-Kompilierer, z. B. DETAP oder VORELLE) erstellt der Computer sozusagen sein eigenes Programm. Der Vorübersetzer gibt dem Programmierer Hinweise auf Widersprüche und Redundanz der eingegebenen Entscheidungstabellen. Die ersten zwei und die letzten vier Spalten der Entscheidungstabelle sind redundant. Die verdichtete Form der Entscheidungstabelle enthält in diesem Fall nur noch vier Entscheidungsregeln. Die Entscheidungstabellen bilden die logische Struktur einer Aufgabenstellung in einer standardisierten Form ab. Sie erleichtern damit die Kommunikation, den Test, die Dokumentation und den Änderungsdienst. Strukturierende Techniken, wie die Entscheidungstabelle, bestimmen die heute
354
Teil V: Betriebsorganisatorische Grundlagen beschreiben
wenn:
Bedingungen
{
dann:
Aktionen
{
markieren
2n = 23 = 8
Nr. E7 B1 B2 B3 AI
Name Ausgleich von Eingangsrechnungen Fälligkeit Stammkunde Rechnungsbetrag > 5 TDM Rechnungsbetrag zur Summe der Wechselbeträge addieren
A2
Rechnungsbetrag zur Summe der Verrechnungsscheckbeträge addieren
A3
Rechnungsbetrag zur Summe der Überweisungsbeträge addieren
A4
Rechnungsbetrag zur Summe der offenen Rechnungsbeträge addieren
A5
Gesamtsumme bilden
Nr. E7 B1 B2 B3 AI
Entsche idungsregeln 1 2 3 J J J J J N J N J
Rechnungsbetrag zur Summe der Verrechnungsscheckbeträge addieren
A3
Rechnungsbetrag zur Summe der Überweisungsbeträge addieren
A4
Rechnungsbetrag zur Summe der offenen Rechnungsbeträge addieren
A5
Gesamtsumme bilden
Abb. 170: Beispiel für Entscheidungstabellen
J N
X X X X X X X X X X Verdichtungen 1 2 N J
3 4 J J J N N J N
Rechnungsbetrag > 5 TDM Rechnungsbetrag zur Summe der Wechselbeträge addieren
A2
7 8 N N N N
X X
Name Ausgleich von Eingangsrechnungen Fälligkeit Stammkunde
4 5 6 J N N N J J N J N
X X X X X X X
2. Programmierung
355
stark diskutierten Formen der Strukturierten Programmierung. Begrifflich wird die Strukturierte Programmierung auch mit der modularen oder hierarchischen "Programmierung in Verbindung gebracht. Gemeinsam ist ihnen die Idee, bei der Programmierung einen größeren Aufgabenkomplex stufenweise in kleinere Teilaufgaben zu zerlegen. Der Ausdruck Modularprogrammierung beschreibt mehrere Verwendungsarten des Baukastendenkens: a) In der Systemanalyse Ein Aufgabenbereich kann in Aufgabenpakete aufgespalten werden, die in mehreren hierarchischen Ebenen gegliedert sind. Diese Baumstruktur von Teilaufgaben entsteht in der DV-Praxis oft durch Zufall. Sie kann aber auch systematisch ermittelt, analysiert und strukturiert werden. Die Abwärtsstrukturierung (Top-Down-Design) bietet mehr Chancen, die Schnittstellenprobleme der daraus abgeleiteten Programmpakete vorab zu durchdenken als die Aufwärtsstrukturierung (Bottom-Up-Design). Die Kapitel VI 1.1.1 und 2.1.4 zeigen ein derartiges Verfahren der Abwärtsstrukturierung. b) Im Betriebssystem Gemeint ist die Fähigkeit des Betriebssystems Programmbausteine, die aus der Übersetzung von problemorientierten Quellprogrammen entstanden sind, miteinander zu einem Gesamtprogramm zu verbinden und dabei gegebenenfalls auch Bibliotheksmodule mit einzubeziehen (vgl. V 4.4.1). c) In der DV-Projektleitung Aufgaben und damit Programmpakete, die nach dem unter a) beschriebenen Ansatz entwickelt worden sind, können innerhalb des DV-Personals eigenverantwortlich erledigt werden (vgl. dazu VI 1.1.4). d) Innerhalb eines Programmbausteins Bezieht man das Prinzip der Modularprogrammierung auf die interne Strukturierung eines Programms oder Programmbausteins, so führt dies zur Strukturierten Programmierung. Ihre Regeln gehen auf ein Strukturtheorem zurück, das von Böhm und Jacobini beschrieben worden ist. Danach kann jedes Programm auf eine Kombination von drei logischen Elementarstrukturen zurückgeführt werden. Als Elementarstuktur treten auf: die lineare Befehlsfolge, die Auswahl und die Wiederholung. In einer Abwärtsstrukturierung kann jede Operation einer derartigen Elementarstruktur wiederum als Basisstruktur aufgegliedert werden. Umgekehrt kann in einer Aufwärtsstrukturierung ein Zusammenfügen der Elementarstrukturen sinnvoll sein. Dabei interessiert gelegentlich nicht mehr der Inhalt einer Elementarstruktur, sondern nur noch ihre Ein- und Ausgaben. Sie wird dann als blackbox betrachtet und als Prozedur (Unterprogramm) behandelt und aufgerufen. Solche Prozedur-Aufrufe in Form eines CALL-Befehls und die drei Elementarstrukturen - gegebenenfalls mit ihren modifizierten Formen bilden im wesentlichen die Strukturierte Programmierung. Die Unterscheidung zwischen einem bedingten Sprung und einem unbedingten ist bereits bekannt (vgl. I 3.3.1). Die Elementarstrukturen besitzen nur bedingte
356
Teil V: Betriebsorganisatorische Grundlagen
®
Nr.
®
©
je 1 Eingang
i—1-+ +—i—h pro Elementarstruktur
AI A2
je 1 Ausgang
KX Al
A2
T
—3—
4-1-4
Art:
Folge
Auswahl
Wiederholung
Wiederholung
Anweisungsklasse:
AI A2
JF B T H E N A 2 ELSE AI
DO A WHILE B
DO A UNTIL B
Abb. 171: 3 Elementarstrukturen, aus denen modular jedes logische Problem strukturiert aufgebaut werden kann.
Verzweigungen vom Typ IF . . . THEN . . . ELSE und DO . . . WHILE bzw. DO . . . UNTILL. Einen unbedingten Sprung vom Typ GO TO kennen sie nicht. Dieser Anweisungstyp ist bei konventioneller Programmierung oft die Ursache für eine schwere Lesbarkeit der Programme, eine damit verbundene große Fehlerquote und Schwierigkeiten beim Testen und Ändern des Programms. Mit der Anweisung GO TO kann ein Programmierer jeden beliebigen Vorwärtsoder Rückwärtssprung vornehmen und damit eine nahezu unbegrenzte .Unübersichtlichkeit' erzeugen. 1968 forderte E. W. Dijkstra, Eindhoven, den Verzicht auf GO TO in allen höheren Programmiersprachen, da dieser Anweisungstyp die Problemlogik verschleiere. Die Qualität eines Programms sei umgekehrt proportional zur Zahl der verwendeten GO TO-Befehle. Die Arbeitsanweisung der oben gezeigten Entscheidungstabelle kann als Programmablaufplan gezeichnet werden, in dem nur Elementarstrukturen verwendet werden. Die black-box-Bildung auf den verschiedenen Ebenen und die daraus bestehenden Elementarstrukturen können der Abb. 172 an Hand der punktierten Einrahmungen entnommen werden. Die Elementarstrukturen 1 und 2 treten je dreimal auf, die Wiederholung (Typ 3b) erscheint einmal. Insgesamt entsteht eine Baumstruktur mit 7 logischen Ebenen. Werden die im strukturierten Programmablaufplan enthaltenen Module durch Einrücken des Programms in 7 Stufen hervorgehoben, so kann sogar das Druckbild des geschriebenen Programms die Baumstruktur widerspiegeln. Eine weitere Programmierhilfe ist das Struktogramm. Es ersetzt einen strukturierten Programmablaufplan. Dabei zeigt es sehr deutlich die drei Elementar-
2. Programmierung
Abb. 172: Programmablaufplan für das Beispiel aus Abb. 170 mit eingezeichneten Elementarstrukturklassen
357
358
Teil V: Betriebsorganisatorische Grundlagen
Eröffnen der Datei „offene Eingangsrechnungen" Wiederhole für jeden Rechnungs-Datensatz (bis EOF) Lesen eines Datensatzes „Eingangsrechnung" Bl: Fälligkeit? Ja
Nein
B2: Stammkunde? Nein
Ja
B3: Rechng.-Betrag > 5 TDM Nein
A3: Betrag zur Summe der Überweisungsbeträge addieren
Ja
A2: Betrag zur Summe der Verrechnungsscheckbe träge addieren
AI: Betrag zur Summe der Wechselbeträge addieren
Gesamtsumme aus den Teilsummen A2, A3, A4 bilden Drucken: alle 5 Summen aktualisierte Datei „offene Eingangsrechnungen" schließen Abb. 173: Struktogramm für das Beispiel aus Abb. 170
A4: Betrag zur Summe der noch verbleibenden offenen Rechnungen addieren
2. Programmierung
359
strukturen, wie sie auf den verschiedenen logischen Ebenen eines Programms auftreten. Das Struktogramm in der Abb. 173 beschreibt die bereits mit der Entscheidungstabelle und dem Programmablaufplan beschriebene Aufgabenstellung aus dem oben formulierten Kreditbeispiel. Der Aufbau des Struktogramms führt den Leser automatisch durch die Logik der beschriebenen Aufgabenstellung. Die Entwurfsarbeit für strukturierte Programme gestaltet sich etwas aufwendiger als bei linearer Programmierung. Auch stellt der kombinierte Einsatz mehrerer Techniken größere Forderungen an die Selbstdisziplin der Programmierer. Der Nutzen durch die Strukturierte Programmierung überwiegt jedoch bei weitem. Anwender, Analytiker und Programmierer durchdenken die Aufgabenstellung und das Problem gründlicher als bei unsystematischer Vorgehensweise. Die Logik des zukünftigen Programms gewinnt an Klarheit und Übersichtlichkeit. Die möglichen Alternativen und Ausgänge werden vollständig erfaßt. Die Fehlerdiagnose wird leichter und schneller. Der Schreibtischtest ersetzt weitgehend die Maschinen-Testzeiten. Detaillierte Programmablaufpläne können häufig entfallen. Standardisierte Dokumentation erleichtert die Wartung und Kommunikation. Die Entwicklung von Programmierhilfen ist natürlich keineswegs abgeschlossen. Insbesondere dürften größere Grenznutzen durch die gezielte Kombination der vier zu Beginn des Kapitels genannten Ansätze zur Programmierunterstützung erreichbar sein: durch die Kombination von Programmierhilfen, Dialogprogrammierung, problemorientierten Programmiersprachen und entsprechender Programmier-Projektleitung. Aufgaben zu V 2.5 (1) Vier Ansätze zur Programmierunterstützung sind zu betonen, nämlich: (2) Welche Merkmale besitzen die problemorientierten Universalsprachen und Spezialsprachen gemeinsam und worin unterscheiden sie sich? (3) Bei einer Auswertung sollen in eine Statistik I alle Artikel aufgenommen werden, die von den drei Merkmalen A, B, C mindestens zwei erfüllen. Artikel, die keines der drei Merkmale aufweisen, werden nicht erfaßt. Die Statistik II nimmt die restlichen Artikel auf. Wie sieht die entsprechende Entscheidungstabelle aus? (4) Welche der Elementarstrukturen 1, 2, 3a, 3b (vgl. Abb. 171) findet man in dem Programmablaufplan Abb. 162? (5) Annahme: anders als im Programmablaufplan Abb. 172 würde der Ausgang von AI zum Eingang von A2 verlaufen. Was würde dies bezüglich der Strukturierung bedeuten?
360
Teil V: Betriebsorganisatorische Grundlagen
3. Betriebsarten 3.1 Klassifizierungsschema Von dem Relaisrechner Z3 von Zuse bis zu den komplexen Datenverarbeitungssystemen der heutigen Zeit führten viele Entwicklungsstufen. Nicht nur die Endgeräte, Schaltungstechniken und Programmiersprachen wurden verändert und verbessert. Auch die Komplexität der Rechnerstrukturen und der Betriebsarten der Computer stieg. Als Betriebsart seien die Bedingungen und Formen bezeichnet, nach denen ein Computer die Programme der Anwender bearbeitet. Verschiedene Betriebsarten bildeten sich heraus und verändern sich laufend. Sie unterscheiden oder überlappen sich bezüglich mehrerer Merkmale. Im Interesse des Überblicks und der gegenseitigen Verständigung - gerade auch mit Nicht-DV-Spezialisten - müßte eine mehrdimensionale Klassifikation gesucht werden. Die folgende Merkmalsanalyse ist ein solcher Versuch. Sie unterscheidet nach den Dimensionen: -
Ein-/Mehrprogrammbetrieb Ein-/Mehrprozessorbetrieb Echtzeit-/keine Echtzeitbetrieb mit/ohne (Programm-)Prioritäten mit/ohne Datenübertragung Anwender-/Operateurbetrieb
Einprogrammbetrieb
Mehrprogrammbetrieb
1
5
9
13
Einprozessorbetrieb
2
6
10
14
Mehrprozessorbetrieb
3
7
11
15
4
8
12
16
ohne Prior.
mit Prioritäten
nicht EZB
Echtzeitbetrieb (EZB) nicht EZB
o. P. Zeitteilung
Jede dieser 16 Kombinationen kann noch mit den letzten beiden der genannten Merkmale kombiniert werden. Somit entstehen 22 • 16 = 64 Merkmalsverbindungen.
3. Betriebsarten Anwenderbetrieb 13 Datenübertragungsbetrieb kein DÜ-Betrieb
16 13 16
Operateurbetrieb 1 C 4 1 D 4
361
13 16
13 16
Abb. 174: Merkmalsanalyse der Betriebsarten Die Betriebsart Dl charakterisiert zum Beispiel die Arbeitsweise: - mit Operateurbedienung - ohne Datenübertragung - stets nur ein Programm im Prozessor - Rechnerstruktur mit einem Prozessor - keine Echtzeitverarbeitung - Programmverarbeitung in der Anlieferfolge (ohne Prioritäten) Die einzelnen Rechnerstrukturen, installiert und projektiert, können in einem ersten Schritt mit diesem Klassifikationsschema kurz beschrieben werden. Gerade die erkennbaren Veränderungen in der Art des Rechnereinsatzes (z.B. dezentralisierte Computernetze) rechtfertigen solche Klassifizierungsversuche. Die folgenden Kapitel gehen auf bekannte Formen von Betriebsarten ein. Die dabei verwendeten Begriffe können eine oder mehrere der 4 x 16 Merkmalskombinationen überdecken.
3.2 Stapelverarbeitung
Unter Stapelverarbeitung (Batch-Processing) versteht man das sukzessive, schubweise Abarbeiten mehrerer vollständig gestellter Aufgaben. Man kann sich einen Stapel ,aufeinandergeschichteter' Programme vorstellen, die nacheinander einzeln abgearbeitet werden. Für das nachfolgende Programm stehen Zentraleinheit und Periphergeräte erst zur Verfügung, wenn das im ,Wartestapel' vorausgehende Programm vollkommen abgearbeitet ist. Stapelverarbeitung
ohne Prioritäten (Betriebsart
Dl)
Ist in der Betriebsweise keine Vorrangsteuerung vorgesehen, so werden alle anfallenden Programme gleichberechtigt behandelt. Es gibt keine Prioritäten, keine Vorrechte. Der Programmstapel wird in der Reihenfolge der zeitlichen Ankunft abgearbeitet. Die sequentielle Verarbeitung der anstehenden Probleme (Jobs) geht aus der Abbildung hervor.
362
Teil V : Betriebsorganisatorische Grundlagen
Im Stapelverfahren ohne Prioritäten arbeiteten bis vor wenigen Jahren alle DVA. Ein typisches Beispiel für eine derartige Betriebsweise ist der Arbeitsrhythmus eines kleinen Rechenzentrums. Die zahlreichen Benutzer geben ihre Programme in Lochkarten gestanzt ab, die Programme werden gestapelt und dann verarbeitet. Verarbeitung
Ergebnisausgabe
Betriebsart
Programmanlieferung
Dl Batch Processing (ohne Prioritäten)
P3 P2 PI
-P3 P2 P l - ^
P3 P2 PI
P3 P2 PI 9 3 4
-P2 PI P3-
P2 PI P3
D5 Batch Processing (mit Prioritäten)
A1 Remote Batch Processing (ohne Prioritäten)
PI P2
-HPi — P3 P2 PIP3
P3
A13, 14 Time Sharing (hier ohne Prioritäten)
PI
£ - P 3 P2 PI-,
P2
Lpi P3 PI
P3
- • P 3 P3 PI—'
->P1 HM L>{P3]
Abb. 175: Betriebsarten und die zeitliche Reihenfolge bei der Abfertigung der Programme Stapelverarbeitung
mit Prioritäten
(Betriebsart
D5)
Prioritäten bei der Verarbeitung von Programmen werden vorwiegend bei der Multiprogramming-Betriebsweise (vgl. 3.4) angewandt. Es gibt jedoch auch Rechner mit Stapelverarbeitung, die Prioritäten berücksichtigen. Die Priorität eines Programms wird durch eine Zahl gekennzeichnet - z.B. hohe Zahl = hohe Priorität. Die Stufung der Prioritäten kann grob oder fein sein - 100 Stufen und mehr sind durchaus möglich. Der Stapel der wartenden Programme wird
3. Betriebsarten
363
(etwa im Plattenspeicher) nicht mehr in der Reihenfolge zeitlichen Eintreffens, sondern in der Reihenfolge der Prioritäten .aufgebaut'. Damit bleibt gesichert, daß stets das Programm mit der höchsten Priorität vorrangig behandelt wird (vgl. Abb. 175). Teilnehmer-Stapelverarbeitung
(Betriebsart
AI,
A5)
Eine Variante bietet die Stapelverarbeitung über Teilnehmerbetrieb. Auch hier werden die Programme sequentiell abgearbeitet. Die Eingabe der Programme und Daten und die Ergebnisausgaben erfolgen aber über Endgeräte (terminal, remote) mit Hilfe der Datenübertragung. Man spricht deshalb von remote job entry, also der Eingabe (entry) eines Auftrags (job) über eine Station (remote). Auch die Bezeichnung remote batch processing findet sich. Den einzelnen Stationen können unterschiedliche Prioritäten zugeordnet werden. Die vollständige Abarbeitung vorausgehender Programme des Wartestapels kann für die nachfolgenden Benutzer erhebliche Wartezeit (einige Minuten) bewirken. Die Antwortzeiten (response time), d.h. die Wartezeiten für die Ergebnisse, können also für manche Benutzer relativ hoch werden.
3.3 Time-Sharing Die subjektive Belastung des Teilnehmers durch Wartezeit kann mit Hilfe der Betriebsart Time-Sharing praktisch verhindert werden. Die spezifische Betriebsart der Zeitteilung erweckt beim dezentralen Teilnehmer den Eindruck, der Computer arbeite ausschließlich für ihn. In Wirklichkeit steht der Rechner reihum jedem Teilnehmer nur periodisch für kurze Zeit zur Verfügung. Dies gelingt mit dem technischen Trick des time-slicing (Zeitteilung). Ein zeitlicher Grundzyklus T wird in n Zeitsegmente aufgeteilt, wenn n Teilnehmerstationen (remote) angeschlossen sind. In jedem Grundzyklus T steht jedem der n Programme für das Zeitsegment t = T/n die Zentraleinheit zur Verfügung. Das Zeitsegment t liegt bei o,l bis 1 Sekunde. Ist ein Programm während eines Zeitsegments t nicht vollständig verarbeitet, so setzt der Rechner im folgenden Zyklus die Bearbeitung fort. Die n Aufträge T
^
Grundzyklus: T = n •t Teilnehmerzahl: n Zeitsegment: t Abb. 176: Prinzip des time-slicing
364
Teil V: Betriebsorganisatorische Grundlagen
(job), d.h. Programme und zugehörige Daten, bleiben in Peripherspeichern in Warteposition. Die Kontrolle über den Prozessor und die notwendigen Bereiche des Hauptspeichers hat stets nur der jeweils für das Zeitsegment t aktivierte Auftrag. Ein- und Ausgabeoperationen können über die Kanalsteuerung auch außerhalb der Zeit t ablaufen. Nach der Zeit t, die ein interner Zeitgeber kontrolliert, lagert der Prozessor den betreffenden Auftrag (Programm, Daten, Zwischenergebnis) aus dem Hauptspeicher aus und aktiviert einen neuen Auftrag (job). Voraussetzung für die Anwendung der Betriebsart Time-Sharing ist eine hohe interne Rechnergeschwindigkeit. Sie vermittelt dem Teilnehmer im Vergleich zu seiner eigenen Reaktionsgeschwindigkeit den subjektiven Eindruck, im steten Kontakt mit dem Prozessor zu stehen. Reale Time-Sharing-Systeme verwenden keine streng gleichlangen Zeitsegmente t. Vielmehr errechnet ein Betriebssteuerprogramm (vgl. V 4.) anhand verschiedener Kriterien (z.B. Speicherbedarf, Mindest- und Maximalzeiten) das zulässige Zeitsegment t je Auftrag. Auch koordiniert dieses Programm den Gesamtzeitbedarf aller Teilnehmerstationen mit dem Rechenzeitbedarf gleichzeitig' ablaufender Stapelprogramme. Der interne Verwaltungsaufwand bei dieser Betriebsart der Zeitteilung (A 13, 14, 15,16) ist groß.
3.4 Multiprogramming Während Time-Sharing-Systeme die Prozessorzeit mittels der Zeitteilung zuordnen, erfolgt die Zuordnung beim Multiprogramming-Betrieb über eine Prioritätssteuerung. Anstoß zur Entwicklung von Rechnersystemen mit Multiprogramming-Betriebsarten gab die Problematik der stark unterschiedlichen Geschwindigkeiten von Zentraleinheit und Periphergeräten, wie sie in Kap. IV 3.1 angesprochen worden ist. Bei der Stapelverarbeitung wurde stets nur ein Programm im Prozessor bearbeitet. Sind Ergebnisse über ein Endgerät auszugeben, so wird die schnelle Zentraleinheit durch das weitaus langsamere Endgerät gehemmt. Die teure Zentraleinheit (Prozessor und Hauptspeicher) wird also nicht optimal ausgenutzt. Diesen Nachteil vermeidet die Multiprogramming-Betriebsart. Hierbei werden verschiedene Programme gleichzeitig innerhalb des Prozessors bearbeitet. Die Zentraleinheit und die Periphergeräte arbeiten weitgehend unabhängig voneinander. Der Datentransfer erfolgt über die Kanalsteuerung. Dadurch kann etwa der Prozessor ein Programm bearbeiten, während die Ausgabeeinheit die Ergebnisse eines anderen Programms druckt und die Eingabeeinheit Daten für ein neues Programm einliest. In Abb. 177 ist das Multiprogramming-Verfahren vereinfacht dargestellt. Die Prioritäten der Programme beziehen sich stets auf die Verarbeitungsreihenfolge im Prozessor. Ein Programm gibt den Prozessor nur dann frei, wenn:
3. Betriebsarten
365
entweder: von ihm ein Ein-/Ausgabe-Gerät benötigt wird oder: ein Programm höherer Priorität die Zentraleinheit anfordert. In der Abb. 177 steht der Prozessor dem Programm P2 nur solange zur Verfügung, bis Programm PI (mit höherer Priorität!) die Ausgabe abgeschlossen hat und ihn wieder beansprucht. Es ist zu entnehmen, daß mit der Multiprogramming-Betriebsart die Zentraleinheit und die Periphergeräte zeitlich weitaus besser ausgenutzt sind als bei der Stapelverarbeitung.
Stapelverarbeitung (z. B.: DS) E
Multiprogramming (z. B.: D9)
ZE
E
Pr PI P2
1 PI
PI
]
P3
1
I
A PI P2 » P2
I EE | P2
v
PI
I-
! |
P2 P3
P2
: 1
P3
E = Eingabegeräte ZE = Zentraleinheit (Pr + Hauptspeicher) A = Ausgabegeräte Pr = Prozessor Programme: PI, P2, P3 Prioritätsvereinbarung: PI > P2 > P3
Abb. 177: Unterschiedliche Geräteausnutzung bei Stapelverarbeitung und Multiprogramming
366
Teil V: Betriebsorganisatorische Grundlagen
Wird ein Programm, das gerade den Prozessor beschäftigt, unterbrochen, so muß der derzeitige Verarbeitungsstand irgendwie abgespeichert werden. Dieser Verarbeitungsstand ist gekennzeichnet durch den Inhalt der einzelnen Register (Akkumulator, Befehlszähler, Indexregister usw.). Dieser Inhalt muß also bei Programmunterbrechung abgespeichert und bei Programmfortsetzung wieder in die Register eingelesen werden. Das Multiprogramming erfordert somit eine ausgefeilte Unterbrechungstechnik (interrupt) - ähnlich dem Time-Sharing. Diese und ähnliche Verwaltungsaufgaben übernimmt das Betriebssystem.
3.5 Echtzeitverarbeitung Den verschiedenen Formen der Echtzeitverarbeitung (realtime processing) ist gemeinsam, daß ein Rechnersystem in einem Kommunikationsvorgang: - auf einen elektrisch direkt angeschlossenen Regelprozeß schritthaltend einwirken - von diesem Rückmeldungen empfangen - den internen Modellzustand (Programm, Daten) entsprechend anpassen und - erneut Einfluß nehmen, d. h. antworten können muß. In einer Prozeßregelung ist der Echtzeitrechner an eine technische Anlage gekoppelt. Dies können beispielsweise Radaranlagen, Walzstraßen, Raffinerieoder Kraftwerksanlagen sein (vgl. VI 2.1.6). Sind in den Regelprozeß Menschen aktiv einbezogen, so spricht man von einem Dialogbetrieb. Dialogvorgänge treten zum Beispiel bei Platzbuchungssystemen, Lagerhaltung, Kontodispositionen, aber auch bei pädagogischen Anwendungen auf. Schon die wenigen Beispiele zeigen, daß das Merkmal,schritthaltend' nicht für alle Regelprozesse gültig quantifiziert werden kann. Die Antwortzeit (response time), also die Reaktionszeit des Echtzeitrechners, bedarf in jedem konkreten Anwendungsfall der Präzisierung. Prozeßregelung
Dialogbetrieb
Abb. 178: Echtzeitrechner zur Prozeßregelung und zum Dialogbetrieb
3. Betriebsarten
367
Bei der Dialog-Kontendisposition einer Bank bestimmt die Wartegeduld der Kunden die obere Grenze der Antwortzeit. Bei automatisierten Produktionsprozessen und erst recht bei Radarsystemen muß die Antwortzeit weitaus kürzer sein. Das Merkmal ,Echtzeit' (vgl. Abb. 174) kann mit einem EinprozessorComputer im Einprogrammbetrieb ohne Datenübertragung (D2) realisiert werden, z.B. Vor-Ort-Regelung einer technischen Anlage mit einem Mikrocomputer. Das gleiche kann natürlich auch mit Datenübertragung (C2) praktiziert werden. Sollen neben der Regelung eines technischen Prozesses auch Verwaltungsprogramme verarbeitet werden, so bietet sich ein Mehrprogrammbetrieb an, wobei dem Prozeßprogramm die höchste Prioritätskennzahl zugeordnet bleibt (Echtzeit-Multiprogramming: D10, CIO). Zur quasisimultanen Prozeßrechnung bietet sich das Time-Sharing an (D14, C14), wobei die Zeitelemente (time slices) im Interesse einer kurzen Antwortzeit klein gewählt werden. Eine echte Simultanregelung mehrerer technischer Prozesse ermöglicht ein Mehrprozessor-Computer (D15, C15). Ähnliche Überlegungen, wie sie hier für die Prozeßregelung (im Operateurbetrieb) angestellt wurden, gelten auch für die verschiedenen Dialogbetriebsarten (Anwenderbetrieb A, B aus Abb. 174).
3.6 Teilnehmerbetrieb und Datenfernverarbeitung Bei Rechnern der ersten Generation und zum Teil der 2. Generation konnten die Anwender ihre Programme und Daten noch selbst in den Rechner eingeben, sie testen, den Rechner bedienen und die Ergebnisse eigenhändig aus dem Drucker, Lochstreifen- oder Lochkartenstanzer entnehmen (Betriebsarten Bl, B2). Der Anwender war gleichzeitig noch Operateur. Diese offene Betriebsart (open shop) mußte zugunsten der geschlossenen Betriebsweise (closed shop) aufgegeben werden, je mehr sich die Rechnerstruktur vergrößerte (z. B. mehr Periphergeräte), je teurer die Rechnerstunde wurde, je mehr Programme pro Arbeitsschicht infolge erhöhter Rechnergeschwindigkeit bearbeitet werden konnten und je mehr Wert auf Datenschutz gelegt werden mußte. Der Maschinensaal gilt als geschlossener Bezirk, zu dem nur Wartungs- und Bedienungspersonal (Operateure) Zugang haben. Die Programme und zugehörigen Daten werden, soweit sie nicht schon im System gespeichert sind, von den Anwendern in einem eigenen Raum als .Aufträge' (job) abgeliefert. In größeren Rechenzentren gruppieren speziell ausgebildete .Arbeitsvorbereiter' die Programmaufträge vor der Eingabe in den Rechner - ähnlich der Arbeitsvorbereitung im Produktionsbetrieb. Auch ordnen sie gegebenenfalls den Programmaufträgen Prioritätskriterien zu. Das Rechenzentrum also erbringt im ,Operateurbetrieb' Dienstleistungen für die Anwender (Betriebsarten D l , D5). Ein derartiger Operateurbetrieb verhindert allerdings den direkten Kontakt,
368
Teil V: Betriebsorganisatorische Grundlagen
den Dialog von Anwender und Computer. Der Schreibtischtest von Programmen ist kein vollwertiger Ersatz. Der Wunsch, Programme schrittweise zu entwickeln und zu prüfen, bleibt. Der Weg zurück zur Bedienung des Rechners durch den Anwender, wie er bei den Kleinrechnern heute erfolgreich beschritten wird, bleibt beim Großcomputer versperrt. Eine andere Lösung bietet der Teilnehmerbetrieb (z. B. A9,10,13,14). Hundert und mehr Teilnehmerstationen (remote) sind über je ein Endgerät (terminal), z.B. Bildschirm, und über eine Datenübertragungsleitung an einen zentralen Rechner angeschlossen. Die Teilnehmerstationen können im Rechenzentrum, am gleichen Ort oder dezentral über viele Kilometer entfernt, installiert sein. Jeder Teilnehmer kann mit Steuerungsbefehlen im Rechner gespeicherte Programme aktivieren, Daten eingeben, aber auch eigene neue Programme in das Teilnehmersystem einbringen. Häufig verbreitet sind Teilnehmersysteme im Hochschulbereich, andere Beispiele nennen die Kapitel in VI. Solche universellen Teilnehmersysteme entstanden vor allem aufgrund der breiten Erfahrungen, die seit 1961 mit dem MAC-System (Multiple-AccessComputer bzw. Machine-Aided-Cognition) am Massachusetts Institute of Technology (MIT) gesammelt worden sind. Über 300 Teilnehmer aus 15 Laboratorien verfügten unabhängig über die Kapazität eines Großrechners. Voraus gingen jedoch Erfahrungen mit einfacheren ,Teilnehmersystemen', die im Teilhaberbetrieb arbeiteten. Die Anwender, auch Teilhaber genannt, kommunizieren bei dieser Betriebsart nicht mit unabhängigen Programmen, vielmehr arbeitet der zentrale Rechner im Einprogrammbetrieb (z.B. A2, 6). Die Teilhaber sind voneinander abhängig, arbeiten am gleichen Problem und mit den gleichen Datenbeständen, wobei sich die Datenbank als Form der Datenorganisation anbietet. Typisch für den Teilhaberbetrieb sind Platzbuchungsund sonstige Auskunftssysteme. Der Teilnehmerbetrieb läuft anwendergesteuert, der Teilhaberbetrieb eher rechnergesteuert ab. Der Teilnehmer- und Teilhaberbetrieb setzen die Datenfernverarbeitung voraus. Die Datenfernverarbeitung (teleprocessing, telecomputing) entsteht, wenn Datenverarbeitung mit Computer und Datenübertragung (vgl. IV 3.5) gleichzeitig und gekoppelt betrieben werden. Bewußt wurde nicht der Ausdruck Datenfernübertragung benutzt. Kennzeichnendes Merkmal der Datenfernverarbeitung ist nämlich keineswegs die Überbrückung großer Entfernungen, wie es der Name anzudeuten scheint. Als entscheidend vielmehr erweist sich die Möglichkeit, Ein- bzw. Ausgabestationen am Ursprungs- oder Bestimmungsort der Daten (und ggf. Programme) einzurichten - unabhängig vom Standort des zentralen Rechners. Bestimmende Komponenten eines Datenfernverarbeitungsnetzes sind: - Datenverarbeitungsanlage(n) - Übertragungsleitungen - Endgeräte
3. Betriebsarten
369
Der Teilnehmerbetrieb kann somit als Sonderfall der Datenfernverarbeitung angesehen werden - insofern, als die Endgeräte von den Anwendern selbst bedient werden. Datenfernverarbeitungsnetze können aber auch aus Verbindungen zwischen mehreren Rechnern - z.B. Haupt- und Satellitenrechner (vgl. Abb. 179) - bestehen, die nur den Eingriff von Operateuren erforderlich machen und zulassen (z.B. C3, 7,11). Beim Teilnehmer- bzw. Teilhaberbetrieb per Datenübertragung ist ein Computer, beim Rechnerverbundsystem sind mindestens zwei Computer, direkt mit den Datenübertragungsleitungen verbunden. Man spricht von online-Betrieb. Bei der indirekten Datenfernverarbeitung (offline) erfolgt das Senden und Empfangen über Zwischenspeicher, wie Magnetbänder, -platten, Disketten oder Lochstreifen. Die Zentraleinheit bleibt von der Datenübertragungsstrecke entkoppelt. Auf verschiedene Anwendungsgebiete der Teilnehmersysteme und der Datenfernverarbeitung weisen die Kapitel in VI hin.
Abb. 179: Beispiel für die Struktur einer Datenfernverarbeitung
370
Teil V: Betriebsorganisatorische Grundlagen
3.7 Rechnerstrukturen 3.7.1 Mehrprozessorbetrieb Aus der Beobachtung der Arbeitsweise eines menschlichen Informationsverarbeiters konnten bereits in I 3.1 die wichtigsten Funktionsanforderungen an eine maschinelle Anlage zur automatischen Datenverarbeitung, d.h. an einen Computer, abgeleitet werden. Eine Rechnerstruktur mit den 5 bautechnischen Grundeinheiten Leitwerk, Rechenwerk, Hauptspeicher, Ein- und Ausgabegeräten entstand. Die Abb. 180 versucht, diese und die im folgenden genannten Rechnerstrukturen schematisch festzuhalten und vergleichend gegenüberzustellen. Erhebliche Leistungssteigerung und größere Flexibilität bewirkte der Einsatz verschiedenartiger Peripherspeicher (IV 2.). Strukturelle Verfeinerungen ergaben sich auch aus dem Angebotsspektrum von Ein- und Ausgäbegeräten (IV 3.). Eine Gruppierung der fünf Grundeinheiten in die Zentraleinheit (mit Prozessor und Hauptspeicher) und in Peripherie erwies sich in Kap. 13.5.3 als sinnvoll. Dem Datentransfer zwischen Zentraleinheit und Peripherie kam eine besondere Bedeutung zu. Eine funktions- und bautechnisch weitgehend autonome Komponente entstand, der Kanal (auch E/A-Werk oder E/A-Prozessor, IV 3.6). Die Periphergeräte, insbesondere die vielfaltigen Endgeräte, können dank der Datenübertragung einige hundert Kilometer von der Zentraleinheit entfernt installiert werden. Die Betriebsarten der Datenfernverarbeitung entstehen (V 3.6). Aus der Erfahrung mit neuen Betriebsarten entstehen neue Wünsche und Anforderungen an die Rechnerstruktur. So steigt beispielsweise das Sicherheitsbedürfnis bei Prozeß- und Dialogrechnern. Neben den Hauptprozessor und den E/A-Prozessor tritt bei einigen Anlagen ein eigener Wartungsprozessor, der Wartungsprozeduren bei laufendem Betrieb abwickelt, zum Teil mikroprogrammiert. Anstelle der quasisimultanen Betriebsart des Multiprogramming oder des Time-Sharing bei einem Einprozeßrechner, werden ferner Wege zu einer echt parallelen Mehrprogrammarbeit gesucht. Der Schritt zu einer Rechnerstruktur mit doppelter Prozessorausstattung in der Zentraleinheit liegt nahe. Die Betriebsart ,Multiprocessing' (also der Mehrprozessorbetrieb vgl. Abb. 174) entsteht, wenn zwei (oder mehr) gleichartige und (meistens) gleichberechtigte Prozessoren in einem Rechnersystem einen gemeinsamen Hauptspeicher beschreiben und lesen können. Beide Prozessoren unterliegen den Steuerbefehlen und der Kontrolle desselben Betriebssystems (vgl. n. Kap.). Diese Betriebsprogramme regeln auch den Ablauf, wenn Konflikte beim gleichzeitigen Zugriff beider Prozessoren auf dieselben Speicherzellen auftreten. Modulare, d.h. baukastenförmige Strukturierung des Hauptspeichers mit besonderer indirekter Adressierung (Interleving) vermindert diese Konfliktgefahr. Jedem Prozessor ist üblicherweise über einen eigenen E/A-Prozessor (Kanal) eine Reihe von
3. Betriebsarten a) klassische Rechnerstruktur L = Leitwerk R = Rechenwerk H = Hauptspeicher E = Endgeräte (Ein-/Ausgabe) S = Peripherspeicher
L R H
/e\
CO Peripherie
Zentraleinheit
/e\
K
CO
b) Prozessor- und Kanalstruktur P = Prozessor = L + R K = Kanal ( = EA-Werk = EA-Prozessor)
P H
H
/e\
CO
I
MP
M
HM
371
c) Mehrprozessorstruktur (multiprocessing)
d) Mikro-Computer "I MP = Mikroprozessor I integrierte HM = Hauptspeicher-Modul r Schaltkreis IM = Interface-Modul J Baugruppen
e) Rechner-Verbundnetz (schematisiertes Strukturbeispiel)
m = Mikrocomputer k = Knoten-Prozessor b = Back-End-Prozessor Abb. 180: Rechnerstrukturen
f = Front-End-Prozessor M = Massenspeicher (ggf. als Datenbank) MDT = Rechner der Mittleren Datentechnik
372
Teil V: Betriebsorganisatorische Grundlagen
Periphergeräten, d.h. Endgeräte und Peripherspeicher, zugeordnet. Die Periphergeräte können demnach durch geeignete Kanalnennung in den Befehlen von jedem Prozessor aus angesprochen werden. Der teure Hauptspeicher und die Vielzahl der Periphergeräte werden besser genutzt. Das (allerdings größere) Betriebssystem wird nur einmal gespeichert. Das Betriebssystem koordiniert den Kapazitätsausgleich zwischen den Prozessoren automatisch. Dem Anwender ist nicht bekannt, welcher Prozessor welche Befehlsfolgen seiner Programme im Mehrprogrammbetrieb bearbeitet hat. Folgende Verbundformen werden bereits erprobt: a) Duplex-Rechnersysteme, d.h. zwei Rechner arbeiten unabhängig aber gekoppelt b) Verbundnetze mit Hauptrechner und mehreren dezentralen Vorfeldprozessoren, die Format- und Plausibilitätsprüfungen vor der Datenweitergabe in die Zentrale vornehmen c) hierarchische Verbundnetze mit Leitrechner und dezentralen Satellitenrechnern d) vermaschte Verbundnetze mit gleichberechtigten Rechnern und unterstützenden Vermittlungsrechnern e) Informations-Verbundnetze: Sende- und Empfangerteilnehmer sind während der Informationsübertragung nicht mehr mit einer Leitung direkt verbunden. Der Sendeteilnehmer schickt vielmehr ein ,Informationspaket' mit genauer Adressierung in ein Datenübertragungsnetz. Vermittlungsrechner dirigieren die adressierten Pakete zum jeweiligen Empfanger. Seit 1975 betreibt die britische Post das Experimental Package Switching System (EPSS).
3.7.2 Rechner-Verbundnetze Die Rechnerstrukturen mit zwei und mehreren Prozessoren weisen, wie andere Entwicklungen, auf die Tendenz zur stärkeren Dezentralisierung der Datenverarbeitungsprozesse hin. Rechner-Verbundnetze (distributed processing) kündigen sich an. Verbundnetze begrenzten Umfangs arbeiten bereits erfolgreich in der Praxis, zum Beispiel als Datenfernverarbeitungssysteme im Handel, bei Großbanken und in dezentralisierten Produktionsbetrieben. Eine über den Hauptprozessor und den E/A-Prozessor hinausgehende Dezentralisierung und Spezialisierung der Prozessoren, ausgelegt als Minirechner, bietet sich an. Innerhalb eines DV-Verbundnetzes verknüpfen und überwachen Vermittlungsprozessoren (Knotenprozessoren) die dynamischen Datenübertragungsnetzwerke. Back-End-Prozessoren verwalten verselbständigte Datenbank-Massenspeicher. Front-End-Prozessoren koordinieren und kontrollieren eine Vielzahl
3. Betriebsarten
373
intelligenter Endgeräte (Terminals). Man spricht auch von Vorverarbeitungsoder Vorfeldrechnern. Impulse zur Differenzierung von Rechnerstrukturen bis hin zu den genannten komplexen Rechner-Verbundnetzen kommen aus sehr unterschiedlichen Anlässen : - flexiblere Betriebsarten der Universalrechner - verbessertes Angebot an Datenübertragungsnetzen - benutzerfreundlichere Programmiersprachen (z.B. Dialogsprachen) - härtere Forderungen der Anwender, z.B. nach funktional und räumlich quellennaher Datenerfassung - erweiterte Leistungsfunktionen der Mittleren Datentechnik (MDT) - Einsatz der Minirechner (Prozeßrechner) auch für kommerzielle Aufgaben (z. B. durch Entwicklung ihrer Cobol-Compiler). - äußerst dynamische Entwicklung von Mikroprozessoren bzw. Mikrorechnern. Integrierte Schaltkreistechnik ermöglicht die Massenproduktion von sogenannten Mikroprozessoren. In funktionaler Sicht bildet ein Mikroprozessor eine monolithische Mikrobaugruppe, die als programmierbare Rechnerlogik dient. Dieses elementare Leit- und Rechenwerk kann Befehle entschlüsseln, arithmetische Operationen an Digitaldaten ausführen und Signale in vordefinierter Weise verknüpfen. Das heute schon breite Spektrum des praktischen Einsatzes von Mikroprozessoren weitet sich noch laufend aus. Für 1978 erwartet eine Prognose den weltweiten Einsatz von 2,5 Millionen Mikroprozessoren. Schon heute dienen Mikroprozessoren als modulare Steuerungskomponenten in MDT-, Mini- und Universalrechnersystemen. Ein zweites Einsatzfeld bietet der Ersatz verdrahteter Logik durch die programmierbaren Mikroprozessoren in technischen Gebrauchsgütern (Waschmaschinen-, Fernseh-, Autoelektronik) und in der Werkzeugmaschinensteuerung. Eine besondere Bedeutung erlangten Mikroprozessoren bereits, um verschiedene Endgeräte mit ,dezentraler Intelligenz' auszustatten. Darunter versteht man die Fähigkeit, vor Ort an Daten einfache Auswertungen (z.B. Quersummenprüfung), Verdichtungen (z.B. Summen-, Saldobildung) und Umstrukturierungen (z.B. Datenreihenfolge ändern) vorzunehmen. Derartige .Intelligente Terminals' existieren als Bildschirm- und Datenerfassungsgeräte in Produktionsbetrieben, als elektronische Kassenterminals im Handel und als Bankterminals in dezentralisierten Großbanken und Sparkassen. In allen drei Einsatzgebieten werden Mikroprozessoren auch schon als echte Mikro-Computer angewandt. Ein Mikro-Computer entsteht, wenn ein Mikroprozessor mit anderen Halbleiterbausteinen (Modul) gekoppelt wird, d. h. wenn mindestens eine Speicherbaugruppe angeschlossen wird. Das Speichermodul kann ein Festwertspeicher (ROM), ein vom Anwender programmierbarer
374
Teil V: Betriebsorganisatorische Grundlagen
Nur-Lese-Speicher (PROM) oder ein Direktzugriffsspeicher für Daten und Zwischenergebnisse (RAM) sein. Auch modulare Koppelglieder (interface) für den Anschluß von Periphergeräten benötigt ein vollwertiger Mikro-Computer. Einfache Ausführungen sind als elektronische Taschen- und Tischrechner weithin bekannt. Insgesamt sollte betont werden, daß der breite Einsatz von Mikroprozessoren oder gar Mikrorechnern in einem Verbund mit Mini-, MDT-, Universalrechnern und verschiedenen Endgeräten die Dezentralisierung der Datenverarbeitung überaus fördern kann. Der Datenschutz mag etwas schwieriger werden. Die Rechnerausfallgefahrdung aber wird verringert gegenüber einem zentralen Großrechnerbetrieb. Die quellennahe Datenerfassung und Datentei 1 Verarbeitung bringt Kosteneinsparungen, die höher als die Datenübertragungsgebühren liegen dürften. Vor allem aber könnte eine Arbeitsorganisation geschaffen werden, die der Entqualifizierung und der extremen Arbeitsteilung bei den Mitarbeitern der betrieblichen Anwendungsabteilungen Einhalt gebietet. Der Computer wird eines unter mehreren Betriebsmitteln. Die Anwender werden definierte RechnerDienstleistungen auf einem Markt mit vermutlich mehr Konkurrenten als heute fordern können. Aufgaben zu V 3 (1) Im Rechenzentrum eines großen Betriebes steht in einem eigenen Anwendersaal etwa ein Dutzend Bildschirmeinheiten bereit, mit denen die DV-Anwender der Fachabteilungen in einer Dialogsprache ihre Programme testen. Die Kapazität der beiden gekoppelten Großrechner mit gemeinsamem Hauptspeicher wird über Prioritäten zwischen den testenden Anwendern und sonstigen Programmen aufgeteilt. Welche Betriebsart entsprechend dem Klassifikationsschema Abb. 174 liegt hier vor? (2) Multiprogramming hilft den größten Geschwindigkeitsunterschied zwischen der ZE und den E/A-Geräten zu überblicken. Welche anderen Maßnahmen dienen dem gleichen Zweck? (3) In welcher Betriebsart des Klassifikationsschemas aus Abb. 174 betreibt man einen normalen Taschenrechner? (4) Bei welcher der beiden Betriebsarten: Teilnehmer- und Teilhabersystem arbeiten die Benutzer nicht an jeweils eigenen Programmen, sondern mit einem gemeinsamen?
4. Betriebssysteme
375
4. Betriebssysteme* 4.1 Hardware und Software 4.1.1 Komponenten eines Rechnersystems Die Datenverarbeitung mit dem elektronischen Taschenrechner ermöglicht noch einen direkten Kontakt zwischen dem DV-Anwender und dem Gerät. Bei Rechnersystemen der 3. und 4. Generation dagegen muß sich ein DV-Anwender der Hilfe mehrerer technischer und organisatorischer Zwischenstellen bedienen, um die Leistungen der Computer-Zentraleinheit nutzen zu können. Schon bei der Aufgabenanalyse benötigt er oft die Hilfe von Beratern, von Spezialisten der Herstellerfirmen oder des internen DV-Personals. Sie beherrschen die Methode der Systemanalyse, die Programmierhilfen und die Interpretation der Programmdokumentationen. Das personelle Potential (Manware) und die Gesamtheit DV-bezogenen Organisationswissens (Orgware) im Betrieb bezeichnet man gelegentlich auch als Brainware (Abb. 181). Neben der Brainware unterstützen heute viele komplexe technische Komponenten die Kommunikation zwischen dem DV-Anwender und der Zentraleinheit, die aus Hauptspeicher und Prozessor besteht. Die flexiblen Ein-/Ausgabegeräte und großen Peripherspeicher sind über eigene Gerätesteuerungen und über E/A-Werke (Kanäle) mit der Zentraleinheit verbunden. Der Einsatz, die Koordinaten und die Kontrolle der Peripherie wurden weitgehend automatisiert, um die technischen Fähigkeiten der Peripherie dem DV-Anwender gut nutzbar zu machen. Die Gesamtheit der technischen Komponenten eines Rechnersystems bezeichnet man als Hardware. Der Begriff Mixed Hardware kennzeichnet die Kombination von mehreren Geräten und technischen Komponenten von verschiedenen Herstellern zu einem Rechnersystem mit günstigem Nutzen-/KOstenverhältnis. Die bedeutsamste Hilfe erbringt dem DV-Anwender bei der Computer-Nutzung die zwischen Hardware und Brainware einzustufende Software. Die Software kann vereinfacht als Programmbibliothek zur Nutzung der Rechnerkapazität verstanden werden. Die Anwendungs-Software umfaßt standardisierte Programmpakete des Computer-Herstellers oder eines Software-Hauses und fremdoder eigenerstellte Anwenderprogramme. Die Funktion und das Zusammenspiel der vielen Hardware-Komponenten eines heutigen Rechnersystems erfordern eine abgestufte Strategie der Steuerung und Kontrolle. Komplexe Betriebsarten, wie sie im letzten Kapitel behandelt wurden, setzen erst recht eine solche abgestufte Strategie voraus. Die HardwareKomponenten: Leitwerk, Kanäle und Gerätesteuerungen teilen sich einen * unter Mitarbeit von Hermann Gehring.
376
Teil V: Betriebsorganisatorische Grundlagen
Abb. 181: Komponenten des Datenverarbeitungs-Anwendungssystems
4. Betriebssysteme
System-Software
AnwendungsSoftware
Orgware
377
Manware
Betriebssystem
internes Personal
Arbeitsprogramme
?CT ö& N
CS 9(A M ST ff e eCTCT
2 £2 £
c s
CL
a
5' D.
Io. I
Q» C oA
W
g CT
3CT
?
ö » f? S
S 3p
ta > I
ö
IP
CA
w 2" 3 9
ö O ff 3 CT 13 I. O a
S 3g
e.
O
CT o s EL
D < I
>
s i CT o o.
ö < i CT 3
ff
a
Isïi 5&S-S ENi
i lI s I s Ss sS 3 W 11 Z. & »is lejggg S 2« J gîisSî
=>9 B ä § S i i f i l i s S Eg ¡ I I •Sä S-S-SilJi'á"ï 111 | 1 AS E i l S « i l i l i s i 1«S-à l i l i Iff I f ¡ i Sa s i ? | S ¡ àia ai i i < i i
III
2. Datenverarbeitungs-Anwendungsbereiche
|I3
m
si
111 11? ©I
a =5 SS af-a limi If.fill S.ajf ȓ
441
111 E2p3 5
Pitti
Hill s i g l i Sl'H-S •3 a ; a ii-SS! SS-89« •a a a a-g s e3 no-SSpio i r a sìa Ssssì sa. i ii
8 3
l ì aJ a | l l 1 111111¡1 •c a g § « » I s l l l l l l ^ : ! ••Psio n n t i s i ì ì ì gg^iis I t i l i l ì J f f s l 111 s i | I | | | | l m m t u f f i l i riti lill^l Ipllllllili 0 ;
1 1fili« 1« l i I m m C 3 5 Si^f = •»"Sa