Moderne Betriebssysteme

Ähnliche Dokumente
Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Rechnernutzung in der Physik. Betriebssysteme

8.4 Das Andrew File System Ausblicke Zusammenfassung 410 Übungen 411

Technische Informa/k II

William Stallings. Betriebssysteme. Prinzipien und Umsetzung. 4., überarbeitete Auflage. Pearson Studium

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Operating System Kernels

Grundkurs Betriebssysteme

Kommunikation und Kooperative Systeme

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Steffen Heinzl Markus Mathes. Middleware in Java

Inhaltsverzeichnis XII

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Betriebssystemschichten ( )

Modellgestützte strategische Planung von Produktionssystemen in der Automobilindustrie

8. Swapping und Virtueller Speicher

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssystem-Architekturen. Prof. Dr. Margarita Esponda Freie Universität Berlin

PPS bei tourenorientiertem Prozessmanagement

Technische Informatik II. SoSe Jörg Kaiser IVS EOS

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Projektmanagement in der Automobilindustrie

Blätter zur Vorlesung Sommersemester Betriebssysteme. Prof. Dr. P. Schulthess Dr. M. Schöttner & al.

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Was ist ein Betriebssystem? Geschichte der Betriebssystemen Klassifizierung der Betriebssystemen Aufgaben des Betriebssystems

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Strategisches Beschaffungsmanagement in der Bauindustrie

Lehrveranstaltung Speichersysteme Sommersemester Kapitel 13: Parallele Dateisysteme. André Brinkmann

NT-Unix-Integration ,06,0*4. Administrierbare Netze aufbauen mit Windows NT und Unix. dpunkt.verlag. Andreas Röscher

S hel I-S kri pt- Program m ieru ng

Kundenorientierte Warenplatzierung

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

SAP -Datenbankadministration. Microsoft SQL Server 2000

Inga Langenhorst. Shop-Logistik in der Bekleidungswirtschaft

Kapitel 2. Betriebssysteme

Betriebssysteme Kap A: Grundlagen

Rechnerarchitektur. 11. Betriebssysteme und Prozesse. Inhalt. Ziele von Betriebssystemen. Betriebssystemkomponenten. Betriebssystemkomponenten

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Cyrus B. Bark. Integrationscontrolling bei Unternehmensakquisitionen

Auf einen Blick. Vorwort Einführung Sprachgrundlagen von VBScript Objektorientierte Programmierung mit. dem Windows Script Host 115

Betriebssysteme I WS 2014/2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Statistische Verfahren zur Maschinen- und Prozessqualifikation

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Windows Vista Windows Phone 7

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

Anwendungspotenziale synchroner Multimediakommunikation

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

ARM-Rechnerarchitekturen für System-on-Chip-Design

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Vorlesung Betriebssysteme Hochschule Niederrhein, Prof. Pohle-Fröhlich, SS 2015

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Vorlesung 11: Netze. Sommersemester Peter B. Ladkin

Computerarchitektur. Andrew S.Tanenbaum James Goodman BIBLIOTHEK. Strukturen Konzepte Grundlagen. Pearson Studium

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

Technische Grundlagen. Betriebssystem, Mac, GoLive

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Kosten- und Prozesscontrolling in der Versicherungswirtschaft

Datenbanken unter Linux

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik

Vorlesung: Betriebssysteme

Betriebssysteme I. Anmerkungen zur Vorlesung. Zielsetzungen. Voraussetzungen. Claudius Schnörr. Hochschule München FK 7: Informatik und Mathematik

Domänenmodell: Fadenkommunikation und -synchronisation

Prozessor (CPU, Central Processing Unit)

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

Handbuch der Fertigungstechnik

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 17. Kapitel 2 Architekturen 51. Kapitel 3 Prozesse 91

Vorlesung Betriebssysteme

Journalistische Ethik

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Kapitel I Betriebssysteme: Aufgaben und Überblick Betriebssysteme: VO Betriebssysteme 2

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Katrin Lieber. Six Sigma in Banken

OS/2 System- und Netzwerkprogrammierung

Softwarestrukturen. Anwendungssoftware: Löst ein spezielles Problem. Systemsoftware: Unterstützt die Erstellung von Anwendungssoftware.

Informatik I Modul 6: Betriebssysteme

Raimund Heuser Integrierte Planung mit SAP. Konzeption, Methodik, Vorgehen. Galileo Press

Linux-Kernel- Programmierung

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Susanne Horstmann. Vertikale Vertriebskooperationen Bekleidungswirtschaft

Betriebssysteme Studiengang Informatik

Der Zeitfaktor im Change Management

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Projektseminar Parallele Programmierung

Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen.

Der SUN-Pool. 64 Arbeitsplätze, reine Terminals

Interneteinsatz in der betriebswirtschaftlichen Aus- und Weiterbildung

Operatives Controlling

Technische Informatik II

Business-Lösungen mit Handy PC ISDN

Fachreferat. EFI -BIOS Nachfolger-

Programmierbare Logik mit GAL und CPLD

Betriebssystemschichten ( )

Transkript:

Andrew S. Tanenbaum 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Moderne Betriebssysteme 2., verbesserte Auflage Die deutsche Ausgabe besorgten Ralph Radermacher und Uwe Baumgarten Carl Hanser Verlag München Wien

Inhaltsverzeichnis I Traditionelle Betriebssysteme 1 1 Einführung 3 1.1 Was ist ein Betriebssystem? 5 1.1.1 Das Betriebssystem als eine erweiterte Maschine 5 1.1.2 Das Betriebssystem als Betriebsmittelverwalter 7 1.2 Geschichte der Betriebssysteme 7 1.2.1 Die erste Generation 8 1.2.2 Die zweite Generation 9 1.2.3 Die dritte Generation 11 1.2.4 Die vierte Generation 15 1.3 Betriebssystem-Konzepte.. 16 1.3.1 Prozesse 17 1.3.2 Dateien 19 1.3.3 Systemaufrufe 22 1.3:4 Die Shell 23 1.4 Betriebssystemstrukturen 24 1.4.1 Monolithische Systeme 25 1.4.2 Geschichtete Systeme 27 1.4.3 Virtuelle Maschinen 28 1.4.4 Client-Server-Modell 29 1.5 Übersicht über den Rest dieses Buches 31 1.6 Zusammenfassung 33 2 Prozesse 35 2.1 Einführung 35 2.1.1 Das Prozeßmodell 36 2.1.2 Implementierung der Prozesse 40 2.2 Prozeßkommunikation 42 2.2.1 Zeitkritische Abläufe 42 2.2.2 Kritische Bereiche 44 2.2.3 Wechselseitiger Ausschlußmit aktivem Warten 45 2.2.4 Schlafen und Aufwecken 50

XII Inhaltsverzeichnis 2.2.5 Semaphore 53 2.2.6 Ereigniszähler 56 2.2.7 Monitore 58 2.2.8 Nachrichtenaustausch 62 2.2.9 Die Äquivalenz der Primitive 66 2.3 Klassische Prozeßkommunikationsprobleme. 71 2.3.1 Das Philosophenproblem 71 2.3.2 Das Leser-Schreiber-Problem 73 2.3.3 Das Problem des schlafenden Friseurs 75 2.4 Prozeß-Scheduling 78 2.4.1 Round-Robin-Scheduling 80 2.4.2 Prioritäts-Scheduling 81 2.4.3 Mehrere Schlangen 82 2.4.4 Shortest-Job-First 84 2.4.5 Garantierendes Scheduling 85 2.4.6 Strategie und Mechanismus 86 2.4.7 Zweistufiges Scheduling 87 2.5 Zusammenfassung 88 Speicherverwaltung 93 3.1 Speicherverwaltung ohne Swapping und Paging 93 3.1.1 Einprogrammbetrieb ohne Swapping und Paging 94 3.1.2 Mehrprogrammbetrieb und Speicherbenutzung 95 3.1.3 Mehrprogrammbetrieb mit fixierten Partitionen 98 3.2 Swapping 101 3.2.1 Mehrprogrammbetrieb mit variablen Partitionen 101 3.2.2 Speicherverwaltung mit Bitmaps 104 3.2.3 Speicherverwaltung mit verknüpften Listen 105 3.2.4 Speicherverwaltung mit dem Buddy-System 107 3.2.5 Allokation des Swap-Bereichs 109 3.2.6 Analyse der Swapping-Systeme 110 3.3 Virtueller Speicher 111 3.3.1 Paging 111 3.3.2 Seitentabellen 114 3.3.3 Beispiele der Paging-Hardware 120 3.3.4 Assoziativspeicher 127 3.4 Seitenersetzungsalgorithmen 133 3.4.1 Der optimale Seitenersetzungsalgorithmus 133 3.4.2 Der Seitenersetzungsalgorithmus Not-Recently-Used 134 3.4.3 Der Seitenersetzungsalgorithmus First-In, First-Out 135 3.4.4 Der Seitenersetzungsalgorithmus Second-Chance 136

Inhaltsverzeichnis XIII 3.4.5 Der Uhr-Seitenersetzungsalgorithmus 137 3.4.6 Der Seitenersetzungsalgorithmus Least-Recently-Used 138 3.4.7 Die Simulation von LRU durch Software 139 3.5 Modellieren von Paging-Algorithmen 141 3.5.1 Belady's Anomalie 141 3.5.2 Stack-Algorithmen 141 3.5.3 Die Distanzzeichenkette... 145 3.5.4 Annahmen über Seitenfehlerraten 145 3.6 Designprobleme bei Paging-Systemen 147 3.6.1 Das Arbeitsbereich-Modell 147 3.6.2 Lokale gegen globale Allokationstrategien 148 3.6.3 Seitengröße. 151 3.6.4 Implementierungsprobleme 152 3.7 Segmentierung 157 3.7.1 Implementierung von reiner Segmentierung 162 3.7.2 Segmentierung mit Seitenersetzung: MULTICS 162 3.7.3 Segmentierung mit Paging: Der Intel 386 166 3.8 Zusammenfassung 172 Dateisysteme 179 4.1 Dateien 180 4.1.1 Benennung von Dateien 180 4.1.2 Dateistruktur 182 4.L3 Dateitypen 184 4.1.4 Dateizugriff 186 4.1.5 Dateiattribute 187 4.1.6 Dateioperationen 188 4.1.7 Speicherabgebildete Dateien 192 4.2 Verzeichnisse 194 4.2.1 Hierarchische Verzeichnissysteme 194 4.2.2 Pfadnamen 196 4.2.3 Verzeichnisoperationen 198 4.3 Dateisystemimplementierung 199 4.3.1 Die Implementierung von Dateien 200 4.3.2 Implementierung von Verzeichnissen 203 4.3.3 Gemeinsam benutzte Dateien 206 4.3.4 Plattenplatzmanagement 209 4.3.5 Die Zuverlässigkeit des Dateisystems 213 4.3.6 Dateisystemperformance 218 4.4 Sicherheit 222 4.4.1 Die Sicherheitsumgebung 222

XIV Inhaltsverzeichnis 4.4.2 Berühmte Sicherheitsmängel 224 4.4.3 Der Internet-Wurm 226 4.4.4 Generische Sicherheitsattacken 229 4.4.5 Entwurfsprinzipien für die Sicherheit 231 4.4.6 Benutzerauthentifikation 232 4.5 Schutzmechanismen 237 4.5.1 Schutzdomänen 237 4.5.2 Zugriffskontrollisten 241 4.5.3 Capabilities 242 4.5.4 Schutzmodelle 244 4.5.5 Verdeckte Kanäle 246 4.6 Zusammenfassung 248 Input/Output 253 5.1 Eigenschaften der I/O-Hardware 253 5.1.1 I/O-Geräte 254 5.1.2 Steuerwerke 255 5.1.3 Direkter Speicherzugriff 257 5.2 Eigenschaften der I/O-Software 259 5.2.1 Ziele der I/O-Software 259 5.2.2 Unterbrechungsbehandlung 261 5.2.3 Gerätetreiber 261 5.2.4 Geräte-unabhängige Software 262 5.2.5 Benutzer-I/O-Software 264 5.3 Festplatten 266 5.3.1 Festplatten-Hardware 266 5.3.2 Plattenarm-Scheduling-Algorithmen 267 5.3.3 Fehlerbehandlung 270 5.3.4 Spur-Caching 272 5.3.5 RAM-Platten 272 5.4 Uhren 273 5.4.1 Uhr-Hardware 274 5.4.2 Uhr-Software 275 5.5 Terminals 278 5.5.1 Terminal-Hardware 278 5.5.2 Speicher-basierte Terminals 280 5.5.3 Input-Software 283 5.5.4 Output-Software 288 5.6 Zusammenfassung 290 Deadlocks 295 6.1 Betriebsmittel 296

Inhaltsverzeichnis XV 6.2 Deadlocks 297 6.2.1 Bedingungen für Deadlocks 298 6.2.2 Modellierung von Deadlocks 298 6.3 Der Vogel-Strauß-Algorithmus 301 6.4 Deadlock-Erkennung und -Behebung 302 6.4.1 Deadlock-Erkennung mit einem Betriebsmittel jeder Klasse... 303 6.4.2 Deadlock-Erkennung mit mehreren Betriebsmitteln in jeder Klasse 305 6.4.3 Deadlock-Behebung 308 6.5 Deadlock-Verhinderung 310 6.5.1 Betriebsmittelflugbahnen 310 6.5.2 Sichere und unsichere Zustände 312 6.5.3 Der Bankieralgorithmus für eine Betriebsmittelklasse 313 6.5.4 Der Bankieralgorithmus für mehrere Betriebsmittelklassen 315 6.6 Deadlock-Vermeidung 316 6.6.1 Die Bedingung des wechselseitigen Ausschlusses 316 6.6.2 Die Belegungs- und Wartebedingung 317 6.6.3 Die Ununterbrechbarkeitsbedingung 318 6.6.4 Die zyklische Wartebedingung 318 6.7 Verwandte Fragestellungen 320 6.7.1 Zwei-Phasen-Sperren 320 6.7.2 Nicht-Betriebsmittel-Deadlocks 320 6.7.3 Verhungern 321 6.8 Zusammenfassung 321 Fallbeispiel 1: UNIX 325 7.1 Geschichte von UNIX 325 7.1.1 UNICS 326 7.1.2 PDP-11 UNIX 327 7.1.3 Portables UNIX 328 7.1.4 Berkeley UNIX 329 7.1.5 Standard UNIX 330 7.2 Überblick über UNIX 332 7.2.1 Ziele von UNIX 332 7.2.2 Schnittstellen zu UNIX 334 7.2.3 Zugang zu UNIX 335 7.2.4 Die UNIX Shell 336 7.2.5 Dateien und Verzeichnisse in UNIX 339 7.2.6 UNIX Hilfsprogramme 341 7.3 Grundlegende Konzepte in UNIX 342 7.3.1 Prozesse in UNIX 344 7.3.2 Das Speichermodell von UNIX 349

XVI Inhaltsverzeichnis 7.3.3 Das UNIX Dateisystem 352 7.3.4 Ein-/Ausgabe in UNIX 356 7.4 UNIX Systemaufrufe 360 7.4.1 Systemaufrufe zur Prozeßverwaltung in UNIX 360 7.4.2 Systemaufrufe für die Speicherverwaltung in UNIX 365 7.4.3 Systemaufrufe für Dateien und Verzeichnisse in UNIX 365 7.4.4 Systemaufrufe zur Ein-/Ausgabe in UNIX 367 7.5 Implementierung von UNIX 368 7.5.1 Implementierung der Prozesse in UNIX 368 7.5.2 Implementierung der Speicherverwaltung in UNIX 372 7.5.3 Implementierung des Dateisystems in UNIX 378 7.5.4 Implementierung der Ein-/Ausgabe in UNIX 382 7.6 Zusammenfassung 384 8 Fallbeispiel 2: MS-DOS 389 8.1 Geschichte von MS-DOS 389 8.1.1 Der IBM PC 390 8.1.2 MS-DOS Version 1.0 392 8.1.3 MS-DOS Version 2.0 393 8.1.4 MS-DOS Version 3.0 393 8.1.5 MS-DOS Version 4.0 395 8.1.6 MS-DOS Version 5.0 395 8.2 Überblick über MS-DOS 397 8.2.1 Einsatz von MS-DOS 397 8.2.2 Die MS-DOS-Shell 400 8.2.3 Konfigurieren von MS-DOS 403 8.3 Grundlegende Konzepte in MS-DOS 404 8.3.1 Prozesse in MS-DOS 405 8.3.2 Das Speichermodell von MS-DOS 410 8.3.3 Das MS-DOS Dateisystem 420 8.3.4 Eingabe/Ausgabe in MS-DOS 422 8.4 MS-DOS Systemaufrufe 423 8.4.1 Prozeßverwaltende Systemaufrufe in MS-DOS 425 8.4.2 Speicherverwaltende Systemaufrufe in MS-DOS 425 8.4.3 Systemaufrufe für Dateien und Verzeichnisse in MS-DOS 426 8.4.4 Systemaufrufe für die Eingabe/Ausgabe in MS-DOS 427 8.5 Die Implementierung von MS-DOS 427 8.5.1 Die Implementierung von Prozessen in MS-DOS 429 8.5.2 Die Implementierung der Speicherverwaltung in MS-DOS 430 8.5.3 Die Implementierung des MS-DOS Dateisystems 433 8.5.4 Die Implementierung der Ein-/Ausgabe in MS-DOS 437 8.6 Zusammenfassung 440 L

Inhaltsverzeichnis XVII II Verteilte Betriebssysteme 445 9 Einführung in verteilte Systeme 447 9.1 Ziele 448 9.1.1 Vorteile verteilter Systeme gegenüber zentralen Systemen 448 9.1.2 Vorteile verteilter Systeme gegenüber Personalcomputern 449 9.1.3 Nachteile verteilter Systeme 451 9.2 Hardware-Konzepte 452 9.2.1 Bus-basierte Multiprozessorsysteme 454 9.2.2 Schalter-basierte Multiprozessorsysteme 456 9.2.3 Bus-basierte Multicomputersysteme 457 9.2.4 Schalter-basierte Multicomputersysteme 458 9.3 Software-Konzepte 459 9.3.1 Netzwerkbetriebssysteme und NFS 460 9.3.2 Echte verteilte Systeme 469 9.3.3 Mehrprozessor-Timesharing-Systeme 471 9.4 Entwurfsentscheidungen 474 9.4.1 Transparenz 474 9.4.2 Flexibilität 476 9.4.3 Zuverlässigkeit 478 9.4.4 Leistung 480 9.4.5 Skalierbarkeit 481 9.5 Zusammenfassung 483 10 Kommunikation in verteilten Systemen 485 10.1 Schichtenprotokolle 486 10.1.1 Die physikalische Schicht 489 10.1.2 Die Verbindungsschicht 489 10.1.3 Die Netzwerkschicht 491 10.1.4 Die Transportschicht 492 10.1.5 Die Sitzungsschicht 492 10.1.6 Die Präsentationsschicht 493 10.1.7 Die Anwendungsschicht 493 10.2 Das Client-Server-Modell 493 10.2.1 Clients und Server 494 10.2.2 Ein Client- und Server-Beispiel 495 10.2.3 Die Adressierung 499 10.2.4 Blockierende und nicht blockierende Primitive 501 10.2.5 Puffernde und nicht puffernde Primitive 505 10.2.6 Zuverlässige und unzuverlässige Primitive 507 10.2.7 Implementierung des Client-Server-Modells 508 10.3 Entfernter Unterprogrammaufrufmechanismus 511

XVIII Inhaltsverzeichnis 10.3.1 Ein entfernter Unterprogrammaufruf 512 10.3.2 Parameterübergabe 516 10.3.3 Dynamisches Binden 521 10.3.4 Die RPC-Semantik beim Auftreten von Fehlern 524 10.3.5 Implementationsaspekte 529 10.4 Gruppenkommunikation 544 10.4.1 Einführung in die Gruppenkommunikation 545 10.4.2 Entwurfsentscheidungen 546 10.4.3 Gruppenkommunikation in ISIS 557 10.5 Zusammenfassung 561 11 Synchronisation in verteilten Systemen 565 11.1 Uhrensynchronisation 566 11.1.1 Logische Uhren 568 11.1.2 Physikalische Uhren 571 11.1.3 Algorithmen zur Uhrensynchronisation 574 11.2 Wechselseitiger Ausschluß 580 11.2.1 Ein zentraler Algorithmus 580 11.2.2 Ein verteilter Algorithmus 582 11.2.3 Ein Token-Ring Algorithmus 585 11.2.4 Ein Vergleich der drei Algorithmen 586 11.3 Wahlalgorithmen 587 11.3.1 Der Bully-Algorithmus 588 11.3.2 Ein Ringalgorithmus 589 11.4 Atomare Transaktionen 590 11.4.1 Einführung in atomare Transaktionen 591 11.4.2 Das Transaktionsmodell 592 11.4.3 Implementierung 597 11.4.4 Nebenläufigkeitskontrolle 601 11.5 Deadlocks in verteilten Systemen 605 11.5.1 Verteilte Deadlock-Erkennung 607 11.5.2 Verteilte Deadlock-Vermeidung 611 11.6 Zusammenfassung 613 12 Prozesse und Prozessoren in verteilten Systemen 617 12.1 Threads 617 12.1.1 Einführung in die Threads 618 12.1.2 Benutzung von Threads 619 12.1.3 Entwurfskriterien für Thread-Pakete 622 12.1.4 Implementierung eines Thread-Pakets 627 12.1.5 Threads und entfernte Unterprogrammaufrufe 630 12.1.6 Ein Beispiel Thread-Paket 632 L

Inhaltsverzeichnis XIX 12.2 Systemmodelle 636 12.2.1 Das Workstation-Modell 637 12.2.2 Benutzung ungenutzter Workstations 640 12.2.3 Ein Mischmodell 648 12.3 Prozessorzuteilung 648 12.3.1 Zuteilungsmodelle 649 12.3.2 Entwurfskriterien für Prozessorzuteilungsalgorithmen 650 12.3.3 Implementierung von Prozessorzuteilungsalgorithmen... 653 12.3.4 Beispiele für Prozessorzuteilungsalgorithmen 655 12.4 Scheduling in verteilten Systemen 661 12.5 Zusammenfassung 663 13 Verteilte Dateisysteme 667 13.1 Entwurf verteilter Dateisysteme 668 13.1.1 Die Schnittstelle des Dateidienstes 668 13.1.2 Die Schnittstelle des Verzeichnisservers 670 13.1.3 Semantiken der gemeinsamen Nutzung von Dateien 675 13.2 Implementierung verteilter Dateisysteme 679 13.2.1 Dateinutzung 679 13.2.2 Systemstruktur 681 13.2.3 Caching 685 13.2.4 Replikation 692 13.2.5 Ein Beispiel: Das Andrew Dateisystem 697 13.2.6 Gelernte Lektionen 704 13.3 Trends im Bereich der verteilten Dateisysteme 705 13.3.1 Neue Hardware 705 13.3.2 Skalierbarkeit 708 13.3.3 Weitbereichsnetze 709 13.3.4 Mobile Benutzer 710 13.3.5 Fehlertoleranz 711 13.4 Zusammenfassung 712 14 Fallbeispiel 3: Amoeba 715 14.1 Einführung in Amoeba 715 14.1.1 Geschichte von Amoeba 715 14.1.2 Forschungsziele 716 14.1.3 Die Systemarchitektur von Amoeba 717 14.1.4 Der Amoeba-Mikrokern. 719 14.1.5 Die Amoeba-Server 722 14.2 Objekte und Capabilities in Amoeba 723 14.2.1 Capabilities 724 14.2.2 Schutz von Objekten 725

XX Inhaltsverzeichnis 14.2.3 Standardoperationen 726 14.3 Prozeßverwaltung in Amoeba 728 14.3.1 Prozesse 728 14.3.2 Threads 730 14.4 Speicherverwaltung in Amoeba 731 14.4.1 Segmente 732 14.4.2 Eingeblendete Segmente 733 14.5 Kommunikation in Amoeba 734 14.5.1 Entfernter Unterprogrammaufruf 734 14.5.2 Gruppenkommunikation in Amoeba 738 14.5.3 Das Fast-Local-Internet-Protokoll 747 14.6 Die Amoeba-Server 755 14.6.1 Der Bullet-Server 756 14.6.2 Der Verzeichnis-Server 760 14.6.3 Der Replikations-Server 766 14.6.4 Der Rechen-Server 766 14.6.5 Der Boot-Server 768 14.6.6 Der TCP/IP-Server 768 14.6.7 Weitere Server 769 14.7 Zusammenfassung 769 15 Fallbeispiel 4: Mach 773 15.1 Einführung in Mach 773 1.5.1.1 Historische Entwicklung von Mach 773 15.1.2 Ziele von Mach 775 15.1.3 Der Mach-Mikrokern 775 15.1.4 Der Mach-BSD-UNIX-Server 777 15.2 Prozessverwaltung in Mach 778 15.2.1 Prozesse 778 15.2.2 Threads 782 15.2.3 Scheduling 785 15.3 Speicherverwaltung in Mach 788 15.3.1 Virtueller Speicher 789 15.3.2 Gemeinsam benutzter Speicher 792 15.3.3 Externe Speicherverwalter 796 15.3.4 Verteilter gemeinsamer Speicher in Mach 800 15.4 Kommunikation in Mach 802 15.4.1 Ports 802 15.4.2 Senden und Empfangen von Nachrichten 808 15.4.3 Der Netzwerknachrichtenserver 814 15.5 BSD-UNIX-Emulation in Mach 816

Inhaltsverzeichnis XXI 15.6 Vergleich von Amoeba und Mach 818 15.6.1 Philosophie 818 15.6.2 Objekte 820 15.6.3 Prozesse 820 15.6.4 Speichermodell 821 15.6.5 Kommunikation 822 15.6.6 Server 824 15.7 Zusammenfassung 824 Literaturempfehlungen und Bibliographie 829 A.l Empfehlungen für weitere Studien 829 A.l.l Einführungen und allgemeine Arbeiten 829 A.l.2 Prozesse 830 A.l.3 Speicherverwaltung 831 A.l.4 Dateisysteme 831 A.1.5 Input/Output 832 A.l.6 Deadlocks 832 A.1.7 MS-DOS 833 A.l.8 Einführung in verteilte Systeme 834 A.l.9 Kommunikation in verteilten Systemen 835 A.l. 10 Synchronisation in verteilten Systemen 836 A.l. 11 Prozesse und Prozessoren in verteilten Systemen 836 A.l.12 Verteilte Dateisysteme 837 A.l.13 Amoeba 837 A.1.14 Mach 838 A.2 Alphabetische Bibliographie 839 B Einführung in C 855 B.l Grundlagen in C 855 B.2 Einfache Datentypen 856 B.3 Zusammengesetzte Datentypen 857 B.4 Anweisungen 859 B.5 Ausdrücke 862 B.6 Programmstruktur 864 B.7 Der C-Präprozessor 865 B.8 Idiome 865