Table Of ContentSpringers Lehrbücher der Informatik
Herausgegeben von
o. Univ.-Prof. Dr.-Ing. Gerhard-Helge Schildt
Technische Universität Wien
Springer-Verlag Wien GmbH
J. Blieberger, G.-H. Schildt,
U. Schmid, S. Stöckler
Informatik
Zweite, neubearbeitete Auflage
Springer-Verlag Wien GmbH
Univ.-Ass. Dr. Johann Blieberger
o. Univ.-Prof. Dr.-Ing. Gerhard-Helge Schildt
Univ.-Ass. Dr. Ulrich Schmid
Univ.-Ass. Dipl.-Ing. Stefan Stöckler
Institut für Automation
Technische Universität Wien, Österreich
Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbe
sondere die der Übersetzung, des Nachdruckes, der Entnahme von Abbildungen, der
Funksendung, der Wiedergabe auf photomechanischem oder ähnlichem Wege und der
Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser
Verwertung, vorbehalten.
© 1990 and 1992 by Springer-Verlag Wien
Ursprünglich erschienen bei Springer-Verlag Wien New York 1992
Gedruckt auf säurefreiem Papier
ISSN 0938-9504
ISBN 978-3-211-82389-7 ISBN 978-3-7091-4052-9 (eBook)
DOI 10.1007/978-3-7091-4052-9
Vorwort
Fur euch, Kinder der Wissenschaft und der Weisheit,
haben wir dieses geschrieben. Erforschet das Buch
und suchet euch unsere Ansicht zusammen, die wir
verstreut und an mehreren Orten dargetan haben;
was euch an einem Orte verborgen bleibt, das haben
wir an einem anderen offengelegt,
damit es faßbar werde fur eure Weisheit.
Heinrich Cornelius Agrippa von Nettesheim,
"De occulta philosophia".
Angesichts einer wahren Flut von Büchern über Informatik erhebt sich die berechtig
te Frage, was vier in der Informatiker-Ausbildung an der Technischen Universität
Wien tätige Autoren veranlaßt, beinahe ein ganzes Jahr ihrer ohnedies knappen Zeit
zu opfern und ein weiteres zu schreiben ". .. damit es faßbar werde für eure Weisheit"?
Initiales Moment für die Beschäftigung mit dieser Idee war das Problem, den
Hörern der für das erste Semester vorgesehenen Vorlesung "Einführung in die Informa
tik I" geeignete schriftliche Unterlagen empfehlen zu müssen. Die Ziele dieser insge
samt sechsstündigen Lehrveranstaltung haben, im Gegensatz zu der parallel stattfin
denden "Einführung in das Programmieren", jedoch kaum etwas mit der Entwicklung
von Software zu tun. Vielmehr werden hier genau jene Aspekte der Informatik abge
deckt, die nicht die eigentliche Programmierung betreffen.
Nun erwies sich aber ein Großteil der in der letzten Zeit erschienenen (guten)
Bücher über Informatik als zu anspruchsvoll beziehungsweise zu spezialisiert; etwa
80% der in technischen Buchhandlungen zu findenden Werke sind eigentlich Pro
gramm- oder Hardware-Beschreibungen. Im Endeffekt konnten wir daher kein
deutschsprachiges Buch finden, das eine dem Niveau des ersten Semesters angemesse
ne Einführung in die moderne Informatik bietet - und dabei die eigentliche Program
mierung ausklammert.
Der stoffliche Aufbau unserer INFORMATIK ist daher zunächst einmal darauf
ausgerichtet, einige der wesentlichen theoretischen Grundlagen zu erarbeiten. Dadurch
werden nicht zuletzt auch die Voraussetzungen für die anschließenden Kapitel geschaf
fen, die sich mit der Funktionsweise moderner Computersysteme beschäftigen. Die
Lektüre des Buches soll den Leser letztendlich in die Lage versetzen, zu verstehen,
was bei der Ausführung eines Programmes auf einem Computer nun tatsächlich vor
sich geht. Auf diese Weise kann das Flair des "Mysteriösen", das der - im Zuge der
eigentlichen Programmierung notwendigen - Verwendung eines Computers anfänglich
anhaftet, im Laufe eines Semesters durch ein dem Informatiker eher anstehendes
Wissen um die tieferen Zusammenhänge ersetzt werden.
Das Buch ist streng hierarchisch aufgebaut, das heißt, der Inhalt späterer Kapitel
setzt den Inhalt früherer Kapitel voraus, nicht aber umgekehrt. Im Vordergrund steht
dabei ein umfassender Überblick über die einzelnen Themen, aber natürlich unter
Berücksichtigung des für das Verständnis notwendigen und zurnutbaren Detaillierungs
grades. Die Intention war, eine Art "studienbegleitende Übersicht" zu schaffen, also ein
einführendes Werk, dessen Gültigkeit nicht mit dem ersten Semester endet; diese
Absicht äußert sich nicht zuletzt schon in dem 19 Seiten umfassenden Index. Daß dies
aber in Anbetracht der ungeheuer schnell vor sich gehenden Weiterentwicklung der
Informatik nur ein Versuch sein kann, liegt auf der Hand.
vi Vorwort zur 2. Auflage
Was den Stil und die Aufmachung des Ganzen betrifft, haben wir versucht, den
normalerweise üblichen, trockenen Sachbuchcharakter von Definition- Satz -Beweis
zugunsten einer lockeren und das intuitive Verständnis fördernden Darstellung aufzuge
ben. In den Text eingestreut finden sich etwa, neben vielen Abbildungen, auch diverse
Literaturzitate aus den verschiedensten Bereichen. Diese zu suchen haben wir nicht nur
auf uns genommen, um Ihnen etwas von dem Spaß zu vermitteln, den uns die
Beschäftigung mit informatischen Belangen bietet, sondern auch, um anzudeuten, wie
viele Assoziationsmöglichkeiten mit nicht minder wichtigen und interessanten Gebieten
der menschlichen Kultur eine angeblich trockene Materie bieten kann.
Es bleibt uns nur mehr, jenen Studenten Dank zu sagen, die mit ihren Kommentaren
und Verbesserungsvorschlägen dazu beigetragen haben, daß das Buch in der vorliegen
den Form präsentiert werden kann. Ferner gebührt unser Dank Monika Stöckler für
den Entwurf des Titelbildes und nicht zuletzt Martina Lunzer für die Erstellung vieler
Abbildungen und die Erledigung so mancher Tipparbeit.
Altenmarkt, St. Andrä, Steinakirchen und Lochau, Juni 1990
J. Blieberger, G.H. Schildt, U. Schmid, S. Stöckler
Vorwort zur 2. Auflage
Der unerwartet hohe Absatz der ersten Auflage, der nicht allein aus dem Verkauf
für die Lehrveranstaltung 'Einführung in die Informatik I' erklärbar ist, machte eine
vorgezogene Neuauflage des vorliegenden Buches notwendig. Obwohl sich die Autoren
einerseits ob der Tatsache, daß sie offensichtlich in eine Nische des informatischen
Buchmarktes vorgestoßen sind, geschmeichelt fühlten, versetzte sie andererseits der
nicht unbeträchtliche Zeitdruck bei der Erstellung der zweiten Auflage in eine Zwangs
lage: Es war neben der absolut notwendigen Korrektur fehlerhafter Stellen genau
abzuwägen, welche Kapitel umstrukturiert, gänzlich entfernt oder sogar neu geschrie
ben werden sollten. Die vorliegende zweite Auflage ist diesbezüglich als Kompromiß zu
sehen: Sie beläßt bewährte Teile unverändert und unterwirft manche Abschnitte einer
neuen Gliederung. Auf das Einfügen neuer Kapitel, die den Aufbau des Buches besser
strukturiert hätten oder die durch den Fortschritt innerhalb der Informatik notwendig
geworden wären, wurde aufgrund der zeitlichen Gegebenheiten verzichtet. Sie werden
in einer künftigen Auflage Niederschlag finden.
Die Autoren wollen außerdem die Gelegenheit benutzen, darauf hinzuweisen, daß
beim Springer-Verlag eine Aufgabensammlung erscheint, die parallel zu unserem
Buch gelesen eine wahre Bereicherung darstellt und das Verständnis der in der
INFORMATIK behandelten Konzepte erleichtern soll. Der Autor der Aufgabensamm
lung mit dem Titel "INFORMATIK -Aufgaben und Lösungen" ist Atilla Bezirgan.
Abschließend wollen wir uns bei allen Lesern und bei allen Studierenden bedanken,
die durch ihre Kritik zur Realisierung dieser Auflage beigetragen haben.
Altenmarkt, St. Andrä, Steinakirchen und Lochau, Juli 1992
J. Blieberger, G.H. Schildt, U. Schmid, S. Stöckler
Inhaltsverzeichnis
Einführung 1
1 Berufsbild . 3
2 Inhaltsübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Theoretische Grundlagen 11
3 Informationstheorie . . . . . . . 13
3.1 Der Begriff Information und seine Entstehung 13
3.2 Der nachrichtentechnische Informationsbegriff 15
3.3 Grundlagen der Codierung . . . . . 17
3.4 Informationstheorie nach Shannon . . . . . . . 19
4 Codierungstheorie . . . 23
4.1 Datenverdichtung ........... . 23
4.1.1 Der Hufiman-Code ..... . 23
4.1.2 Ein adaptiver Hufiman-Code . 25
4.1.3 Arithmetisches Codieren .... 26
4.2 Fehlererkennende und fehlerkorrigierende Codes . 27
4.2.1 Die Hammingdistanz .... 28
4.2.2 Fehlererkennende Codes .. 30
4.2.3 Fehlerkorrigierende Codes . 32
4.3 Zifferncodierung . . . . . . . . . . . 34
4.3.1 BCD-Code ........ . 34
4.3.2 Gray-Code ........ . 35
4.4 Codierung alphanumerischer Zeichen . 35
4.5 Cryptographie . . . . . . . . . . . . . . 36
4.5.1 Traditionelle Verschlüsselungsmethoden. 36
4.5.2 Ersetzungsmethoden ..... . 38
4.5.3 Verschiebungsmethoden ... . 39
4.5.4 Der Data Encryption Standard 40
4.5.5 Public Key Cryptosystems 42
4.5.6 Die RSA-Methode . 43
4.5.7 Authentisierung . 45
5 Zahlendarstellungen 47
5.1 Zahlensysteme ............. . 47
5.2 Der ideelle Zahlenbegriff ....... . 49
5.3 Zahlenumwandlungen ......... . 50
5.3.1 Konversion von ganzen Zahlen . . . . 50
5.3.2 Konversion von Zahlen mit Nachkommastellen ..... . 52
5.3.3 Konversion zwischen binärer und hexadezimaler Zahlendarstellung 53
5.4 Rechnen im binären System ............ . 53
5.4.1 Die Addition im binären Zahlensystem .. 53
5.4.2 Die Subtraktion im binären Zahlensystem. 55
viii Inhaltsverzeichnis
5 Zahlendarsteilungen
5.4.3 Die Multiplikation im binären Zahlensystem . 56
5.4.4 Die Division im binären Zahlensystem . . . . . 57
5.5 Das Spiel N"unm . . . . . . . . . . . . . . . . . . . . . . 58
5.5.1 Die Spielregeln ............... . 58
5.5.2 Eine spezielle Operation für binäre Zahlen 58
5.5.3 Eine Spielstrategie ..... 59
5.6 Rechnen im hexadezimalen System . . . . . . . . . 60
5.7 Rechnen mit überlangen Zahlen . . . . . . . . . . . . 60
5.8 Potenzieren . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.9 Darstellung negativer Zahlen . . . . . . . . . . . . . . . 63
5.9.1 Darstellung durch Vorzeichen und Betrag ... 64
5.9.2 Exzeßdarstellung ......... . 64
5.9.3 Einerkomplementdarstellung ... . 65
5.9.4 Zweierkomplementdarstellung. . . 66
5.10 Darstellung reeller Zahlen . . . . . . . . . . . . . . . . 67
5.10.1 Festkommadarstellung ............ . 67
5.10.2 Gleitkommadarstellung . . . . . . . . . . . . . . 67
5.10.3 IEEE-Formate zur Darstellung von Gleitkommazahlen 69
5.10.4 Normalisieren von Gleitkommazahlen ....... . 70
5.10.5 Addition und Subtraktion von Gleitkommazahlen. 70
5.10.6 Multiplikation und Division für Gleitkommazahlen 71
5.10.7 Genauigkeitsbetrachtungen .... 71
6 Algorithmen . . . . . . . . . . . . 74
6.1 Analyse von Algorithmen . . ... 75
6.2 Präludium und Fuge über ein Thema von Hoare 78
7 Bootesche Algebra . . . . . . . . . . . . . . . . 87
7.1 Operationen der Booteschen Algebra . . 87
7.2 Gesetze der Booteschen Algebra . . . . 88
7.3 Funktionen über der Booteschen Algebra . 90
7.4 Normalformen . . . . . . . . . . . . 92
7 .4.1 Disjunktive Normalform . . . ... . 93
7.4.2 Konjunktive Normalform ..... . 93
7.5 Vereinfachen von Funktionen ....... . 94
7. 5.1 Verfahren nach Quine und McCiuskey . 94
7 .5.2 Verfahren nach Karnaugh und Veitch 101
Computersysteme 105
8 Logische Schaltungen 110
8.1 Grundgatter . . . . . . 110
8.2 Funktionen als Gatterschaltungen . 113
8.2.1 Addierschaltungen ....... . 114
8.2.2 Codierer-Decodierer ... . 117
8.2.3 Multiplexer-Demultiplexer 120
8.3 Sequentielle Logik . . . . . . . 122
8.3.1 Latches (Flip-Flops) .. 123
8.3.2 Register . . . . . . . . . . . . . . 128
8.3.3 Zähler . . . . . . . . . . . . 133
8.4 Speicher . . . . . . . . . . . . . . . . . . 136
8.5 ASICs (PLA, PLD, Gate Array) .......... . 140
InhaltsverzeicluUs ix
9 Micro-Codes 143
•• 0 •••••
9.1 Endliche Automaten 143
9.2 Prozessoren . . . . . . 148
9.2.1 Arithmetic Logic Unit . . . . 149
9.2.2 Register File und Busverbindungen . 152
9.2.3 Datenspeicher . . . . . 155
9.2.4 Micro-Architektur .. 158
9.2.5 Micro-Programm ... 162
9.2.6 Component Packaging 166
10 Maschinen-,Codes . . . . 168
10.1 Zentraleinheiten 168
10.1.1 Prozessoren. 169
10.1.2 Speicher .. 195
10.1.3 Controller und Co-Prozessoren . 203
10.1.4 Interconnection 205
10.2 Periphere Geräte . . . . 205
10.2.1 Externspeicher . 205
10.2.2 Dialoggeräte 213
11 Betriebssysteme ...... 221
11.1 ffistorische Entwicklung . 222
11.2 Prozesse .......... 226
11.2.1 Objekte ...... 227
11.2.2 Parallelität .... 230
11.2.3 Prozeßhierarchien 234
11.2.4 Prozeßzustände .. 235
11.2.5 Scheduling 239
11.2.6 Speicherverwaltung 243
11.3 Interprozeß-Kommunikation 264
11.3.1 Server-Prozesse ... 264
11.3.2 Synchrone Methoden 269
11.3.3 Asynchrone Methoden 276
11.4 Betriebssystem-Struktur 277
11.4.1 System,-Calls . . . . . . 279
11.4.2 Netzwerke ....... .281
11.4.3 Security-Aspekte ... 301
11.5 Resource-Management . . . . . . . . . . . 304
11.5.1 Objektorientierung in Betriebssystemen 305
11.5.2 Resource-Klassen . 311
11.5.3 Deadlocks ....... 332
11.6 Human Interface . . . . . . . . 336
11.6.1 User-IDs ........ 337
11.6.2 Login . . . . . . . . . . 339
11.6.3 Job Control Languages 341
12 Assemblersprachen 350
12.1 Assembler ... 350
12.2 Macro-Assembler 351
13 Höhere Programmiersprachen 353
13.1 Wichtige Konzepte höherer Programmiersprachen . 353
13 .1.1 Kontrollstrukturen . . . . . . . . . . . . . . . 354
13.1.2 Routinen und Parameter 355
13.1.3 Modulkonzepte . . . . . . 357
13.1.4 Entwicklungstendenzen . 358