Kai Brims, Paul Klimsa (Hrsg.) Informatik für Ingenieure kompakt Mit 186 Abbildungen vieweg
VII Inhaltsverzeichnis 1 Betriebssysteme 1 1.1 Einführung in Betriebssysteme 1 1.1.1 Aufgaben 1 1.1.2 Betriebsarten 2 1.1.3 Genealogie der Betriebssysteme 4 1.2 Aufbauformen von Betriebssystemen 4 1.2.1 Kategorien von Aufbauformen 4 1.2.2 Systemaufrufe 6 1.2.3 Der Kern 7 1.3 Komponenten von Betriebsystemen 9 1.3.1 Prozessverwaltung 9 1.3.2 Dateiverwaltung 13 1.3.3 Speicherverwaltung 16 1.3.4 Geräteverwaltung 20 1.4 Parallelität bei Betriebssystemen 22 1.4.1 Parallelität und Synchronisierung 22 1.4.2 Elementare Synchronisierung 26 1.4.3 Synchronisierung mit Semaphoren 28 1.4.4 Deadlocks bei der Synchronisierung 29 1.5 Leistungsbewertung bei Betriebssystemen 30 1.6 Literatur 33 2 Rechnerarchitektur 35 2.1 Einfache Rechenwerke 35 2.2 Freiprogrammierbare Rechenmaschine 36 2.3 Stored Program-Computer 38 2.4 von Neumann-Architektur 39 2.5 Register-Architekturen 41 2.6 Maschinenprogrammierung 42 2.7 Befehlssatz-Architektur 44 2.8 CPU und System 49 2.9 Leistungssteigerung durch Pipelining 50
VIII Inhaltsverzeichnis 2.10 Vektorrechner 55 2.11 Superskalare und andere Techniken 57 2.12 Speicherhierarchie und Caches 61 2.13 Parallelrechner 64 2.14 Literatur 69 3 Algorithmen 71 3.1 Einführung 71 3.2 Divide-and-conquer Algorithmen 73 3.3 Dynamische Programmierung 77 3.4 Branch-and-bound Algorithmen 80 3.5 Greedy Algorithmen 83 3.6 Lokale Suche 85 3.7 Approximationsalgorithmen 87 3.8 Randomisierte Algorithmen 91 3.9 Zusammenfassung 96 3.10 Literatur 97 4 Datenbanken 99 4.1 Die Aufgabe einer Datenbank 99 4.2 Das Entity-Relationship Modell 101 4.3 Das relationale Modell 104 4.3.1 Relationen 105 4.3.2 Nullwerte 105 4.3.3 Schlüssel 106 4.3.4 Fremdschlüssel und referentielle Integrität 107 4.3.5 Operationen der relationalen Algebra 108 4.3.6 Zusätzliche Operationen 111 4.3.7 NF 2 -Algebra 113 4.3.8 Der tupel-relationale Kalkül 114 4.4 Die Datenbanksprache SQL 115 4.4.1 Datendefinitionsanweisungen 116 4.4.2 Datenmanipulationsanweisungen 119 4.4.3 Die SQL3-Entwicklung 121 4.5 Der Entwurf relationaler Datenbanken 121 4.5.1 Abhängigkeiten 121 4.5.2 Normalformen 125 4.5.3 BCNF versus 3NF 127 4.6 Das Transaktionsprinzip 128 4.6.1 Das ACID-Transaktionsprinzip 128 4.6.2 Sicherung vor Datenverlust 129 4.6.3 Kontrolle der Nebenläufigkeit 130 4.7 Netzwerk-und hierarchisches Modell 132 4.7.1 Das Netzwerkmodell 133
Inhaltsverzeichnis IX 4.7.2 Das hierarchische Datenmodell 133 4.8 Objekt-orientierte Datenmodelle 134 4.9 Datenbanken und das WWW 136 4.10Literatur 137 5 Softwaretechnik 139 5.1 Einführung 139 5.2 Lebenszyklusmodelle 141 5.3 Prinzipien, Konzepte, Methoden 144 5.4 Basistechniken 148 5.4.1 Datenmodellierung 148 5.4.2 Prozessmodellierung 151 5.5 Strukturierter Ansatz für Analyse und Entwurf 155 5.6 Objektorientierter Ansatz für Analyse und Entwurf 159 5.6.1 Konzepte 159 5.6.2 Basismodell 162 5.6.3 Statisches Modell 164 5.6.4 Dynamisches Modell 167 5.6.5. Modell der Systemnutzung 168 5.7 Implementieren 170 5.8 Dokumentieren 177 5.9 Testen 179 5.9.1 Allgemeine Bemerkungen 179 5.9.2 Statisches Testen 181 5.9.3 Dynamisches Testen 182 5.9.4 Back-to-Back-Testen 184 5.10 Werkzeuge 184 5.11 Literatur 185 6 Rechnernetze und Verteilte Syteme 187 6.1 Einleitung und Überblick 187 6.2 Physikalische Übertragung 192 6.2.1 Theoretische Grundlagen 192 6.2.2 Übertragungsmedien 195 6.2.3 Signalaufbereitung 199 6.3 Netztechnologien 204 6.3.1 Weitverkehrsnetze 204 6.3.2 Lokale Netze 212 6.3.3 Zugangsnetze 215 6.4 Transportorientierte Dienste/Protokolle 217 6.4.1 Routing 217 6.4.2 Internetprotokoll 218 6.4.3 Transportprotokoll 221 6.4.4 Reservierungstechniken 222
Inhaltsverzeichnis 6.5 Internetdienste und Verteilte Systeme 223 6.5.1 Internetdienste 223 6.5.2 Verteilte Systeme 227 6.6 Zusammenfassung 233 6.7 Literatur 234 7 World Wide Web 237 7.1 Die Arbeitsweise des WWW 237 7.1.1 Das Protokoll HTTP 237 7.1.2Mime-Typen. 240 7.1.3 Web-Server 240 7.1.4 Auszeichnungssprachen 241 7.1.5 Web-Clients 242 7.1.6 Web-basierte Anwendungen 243 7.1.7 Sicherheit 244 7.2 Server-seitige Anwendungen 245 7.2.1 Common Gateway Interface 245 7.2.2 Web-Server-APIs 247 7.2.3 Server-Side Includes 250 7.2.4 Server-seitige Skripte 250 7.2.5 Active Server Pages 252 7.2.6 Java Server Pages 253 7.2.7 Sitzungsorientierte Anwendungen 255 7.2.8 Eingebettete Web-Server 258 7.3 Client-seitige Anwendungen 259 7.3.1 Persistent gespeicherte Anwendungen 259 7.3.2 Temporär gespeicherte Anwendungen 260 7.3.3 Sicherheit Client-seitiger Anwendungen 265 7.4 Literatur 266 8 Künstliche Intelligenz 269 8.1 Aufgaben und Sichtweisen der Künstlichen Intelligenz 269 8.2 Methoden der symbolorientierten Verarbeitung von Wissen 272 8.2.1 Hierarchische Listen, Semantische Netze und Frames 273 8.2.2 Regeln und Produktionssysteme 274 8.2.3 Logikkalküle und Systeme des automatischen Schließens 275 8.2.4 Constraintsysteme 279 8.2.5 Begriffsverbände 280 8.3 Heuristische Suchverfahren 282 8.3.1 Strategien 282
Inhaltsverzeichnis XI 8.3.2 Formale Problemdarstellungen und Suchräume 283 8.3.3 Greedy-Algorithmen und Dynamische Programmierung 284 8.3.4 Graphsearch-Algorithmen 286 8.3.5 Spielbäume 288 8.3.6 Lokale Suche 289 8.4 Softcomputing 291 8.4.1 Merkmale nichtanalytischer Lösungsverfahren 291 8.4.2 Fuzzy-Technik 292 8.4.3 Neuronale Netze 295 8.4.4 Probabilistische Techniken 298 8.4.5 Evolutionäre Verfahren 300 8.5 Systeme der Anwendung 302 8.6 Literatur 303 9 Modellbildung und Simulation 305 9.1 Einführung in die Simulation 305 9.1.1 Zweck und Werkzeuge 305 9.1.2 Simulation ist alltäglich 306 9.1.3 System, Modell, Experiment 307 9.1.4 Vorgehen bei der Simulation 310 9.1.5 Eignung von Programmen für die Simulation 310 9.1.6 Simulation mit Tabellenkalkulation 311 9.1.7 Eignung der Tabellenkalkulation 314 9.2 Deterministische Simulation 315 9.2.1 Zustandsraumdarstellung und Diskretisierung 315 9.2.2 Numerische Integration 316 9.2.3 Beispiel: Das mathematische Pendel 318 9.3 Stochastische Simulation 322 9.3.1 Methode 322 9.3.2 Wichtige Verteilungen 323 9.3.3 Zufallszahlengeneratoren 325 9.3.4 Ergebnisbeurteilung: Vertrauensintervalle 327 9.3.5 Varianzreduktion 329 9.3.6 Beispiel: Montagerampe 329 9.3.7 Die Methode der Stapelmittelwerte 331 9.4 Ereignisorientierte Simulation 332 9.4.1 Methode und Programmierung 332 9.4.2 Beispiel: Ein einfaches Wartesystem 334 9.5 Literatur 336
XII Inhaltsverzeichnis 10 Grundlagen der Computergrafik 337 10.1 Mathematische Grundlagen 338 10.1.1 Darstellung geometrischer Daten 338 10.1.2 Transformationen 338 10.2 Modellbeschreibungen 344 10.2.1 Oberflächenmodelle 344 10.2.2 Volumenmodelle 348 10.2.3 Andere Modellierungsansätze 350 10.3 Computergraphische Grundprobleme 351 10.3.1 Rasterung 351 10.3.2Füllen 354 10.3.3 Clipping 355 10.3.4 Antialiasing 358 10.4 Rendering 360 10.4.1 Ansatz mittels lokaler Beleuchtungsmodelle 360 10.4.2 Raytracing 366 10.4.3 Radiosity 367 10.5 Graphiksoftware und -Standards 369 10.5.1 Fenstersystem-Bibliotheken 369 10.5.2 Graphik-Engines 370 10.5.3 Szenengraph-Bibliotheken 370 10.6 Graphikhardware 370 10.6.1 Grundlegender Aufbau 371 10.6.2 Hardwareunterstützte Bilderzeugung 372 10.7 Literatur 375 11 Kryptologie 377 11.1 Historische Entwicklung 377 11.2 Basismechanismen im Überblick 381 11.2.1 Symmetrische Verschlüsselung 382 11.2.2 Asymmetrische Verschlüsselung 384 11.2.3 Kryptographische Hashfunktionen 386 11.2.4 Digitale Signaturen 387 11.3 Blockchiffren 389 11.3.1 Feistel-Chiffre-DES- AES 390 11.3.2 Betriebsarten 392 11.4 Asymmetrische Kryptosysteme 398 11.4.1 Einwegfunktionen 398 11.4.2 Schlüssel Vereinbarung nach Diffie und Hellman 400 11.4.3 RS A-Verfahren 401 11.4.4 ElGamal-Verfahren.404 11.4.5 Digital Signature Standard - DSS 407 11.5 Basismechanismen und Abhängigkeiten 408 11.5.1 Pseudozufallsgeneratoren 408
Inhaltsverzeichnis XIII 11.5.2 Benutzerauthentifikation 410 11.5.3 Vereinbaren authentischer Sitzungsschlüssel 412 11.5.4 Abhängigkeiten zwischen Basismechanismen 414 11.6Literatur 415 12 Multimedia 417 12.1 Was bedeutet Multimedia? 417 12.1.1 Grundbegriffe: Multimedia und Digitale Medien 417 12.1.2 Datentypen und Medientypen 419 12.1.3 Abstraktionsschichten 421 12.2 Entwicklungsebenen und Benutzerschnittstellen 423 12.2.1 Entwicklungsebenen 423 12.2.2 Dialoge für multimediale Applikationen: Richtlinien versus Metaphern 425 12.2.3 Multimediale Präsentation 427 12.3 Datenformate für Multimedia 428 12.3.1 Medienbezogene Datenformate 429 12.3.2 Hybride Formate 430 12.3.3 Datenreduktion und Datenkompression 433 12.3.4 Streaming 439 12.4 Multimediale Werkzeuge 439 12.4.1 Medienspezifische Produktionswerkzeuge 440 12.4.2 Entwicklungssysteme für die Integration und Präsentation digitaler Medien 443 12.5 Bessere Informationsvermittlung mit Multimedia? 444 12.6 Zusammenfassung 446 12.7 Literatur 447 Sachwortverzeichnis 449