O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Betriebssysteme, 2nd Edition

Book Description

  • aktuell: behandelt die neuesten Handheld-Betriebssysteme und Sicherheitsaspekte+ didaktisch anspruchsvoll (viele Abbildungen, Beispiele etc.)+ "class room proofed"+ umfangreiches Begleitmaterial auf der Website: http://unix.hsr.ch

Table of Contents

  1. Cover
  2. Titel
  3. Widmung
  4. Impressum
  5. Vorwort
  6. Inhaltsverzeichnis
  7. 1 Einführung
    1. 1.1 Zweck
    2. 1.2 Definitionen
    3. 1.3 Einordnung im Computersystem
    4. 1.4 Betriebssystemarten
      1. 1.4.1 Klassische Einteilungen
    5. 1.5 Betriebssystemarchitekturen
      1. 1.5.1 Architekturformen
      2. 1.5.2 Benutzer-/Kernmodus
      3. 1.5.3 Monolithische Systeme
      4. 1.5.4 Geschichtete Systeme
      5. 1.5.5 Mikrokernsysteme
      6. 1.5.6 Beispiele von Systemarchitekturen
      7. 1.5.7 Abstraktionen aus Benutzer- und Entwicklersicht
  8. 2 Grundlagen der Programmausführung und Systemprogrammierung
    1. 2.1 Programmausführung und Hardware
      1. 2.1.1 Rechner- und Prozessorgrundlagen
      2. 2.1.2 Grundlagen des Adressraums
      3. 2.1.3 Grundlagen der Programmausführung
      4. 2.1.4 Unterprogrammmechanismen
    2. 2.2 Systemprogrammierung
      1. 2.2.1 Wahl der Systemprogrammiersprache
      2. 2.2.2 Laufzeitsystem der Programmiersprache C
      3. 2.2.3 Unterprogrammtechniken
      4. 2.2.4 Grundlagen der Systemprogrammierung
      5. 2.2.5 Systemprogrammierschnittstellen
  9. 3 Prozesse und Threads
    1. 3.1 Parallelverarbeitung
      1. 3.1.1 Darstellung von parallelen Abläufen
      2. 3.1.2 Hardware-Parallelität
      3. 3.1.3 Software-Parallelität
      4. 3.1.4 Begriffe
    2. 3.2 Prozessmodell
      1. 3.2.1 Grundprinzip
      2. 3.2.2 Prozesserzeugung und Terminierung
      3. 3.2.3 Prozesse unter Unix
      4. 3.2.4 Funktionsweise der Unix-Shell
      5. 3.2.5 Prozesse & Jobs unter Windows
      6. 3.2.6 Vererbung unter Prozessen
      7. 3.2.7 Prozesshierarchie
      8. 3.2.8 Systemstart
    3. 3.3 Threads
      1. 3.3.1 Thread-Modell
      2. 3.3.2 Vergleich Prozesse zu Threads
      3. 3.3.3 Implementierung des Multithreading
      4. 3.3.4 Threads & Fibers unter Windows
      5. 3.3.5 Threads unter Unix
    4. 3.4 Prozessorzuteilungsstrategien
      1. 3.4.1 Quasiparallelität im Einprozessorsystem
      2. 3.4.2 Prozess- und Thread-Zustände
      3. 3.4.3 Zuteilungsstrategien
      4. 3.4.4 Multiprozessor-Scheduling
      5. 3.4.5 POSIX-Thread-Scheduling
      6. 3.4.6 Java-Thread-Scheduling
      7. 3.4.7 Scheduling unter Windows
      8. 3.4.8 Scheduling unter Unix
  10. 4 Synchronisation von Prozessen & Threads
    1. 4.1 Synchronisationsbedarfe und Lösungsansätze
      1. 4.1.1 Problem der Ressourcenteilung
      2. 4.1.2 Verlorene Aktualisierung (lost update problem)
      3. 4.1.3 Inkonsistente Abfrage (inconsistent read)
      4. 4.1.4 Absicherung mit Selbstverwaltung – naiver Ansatz
      5. 4.1.5 Absicherung mit Selbstverwaltung – korrekter Ansatz
      6. 4.1.6 Absicherung mit Systemmitteln
    2. 4.2 Semaphore
      1. 4.2.1 Semaphortypen
      2. 4.2.2 Implementierungsfragen
    3. 4.3 Anwendung der Semaphore
      1. 4.3.1 Absicherung kritischer Bereiche (mutual exclusion)
      2. 4.3.2 Synchronisation von Abläufen (barrier synchronization)
      3. 4.3.3 Produzenten & Konsumenten (producer and consumer)
      4. 4.3.4 Leser & Schreiber (readers and writers)
      5. 4.3.5 Problem der Prioritätsumkehrung (priority inversion)
      6. 4.3.6 Weitere Anwendungsprobleme
    4. 4.4 Implementierungen von Semaphoren
      1. 4.4.1 Semaphore unter Unix
      2. 4.4.2 Semaphore unter Windows
    5. 4.5 Unix-Signale
      1. 4.5.1 Idee & Grundprinzip der Unix-Signale
      2. 4.5.2 Programmierung der Signale
      3. 4.5.3 Signale im Multithreading
      4. 4.5.4 Realtime-Signale
    6. 4.6 Verklemmungsproblematik (deadlocks)
      1. 4.6.1 Ursache
      2. 4.6.2 Deadlock-Bedingungen
      3. 4.6.3 Lösungsansätze und ihre Beurteilung
    7. 4.7 Vermeidung von Synchronisationsengpässen
      1. 4.7.1 Granularität der Absicherung
      2. 4.7.2 Replikation der abgesicherten Ressource
  11. 5 Kommunikation von Prozessen & Threads
    1. 5.1 Überblick über Synchronisation und Kommunikation
    2. 5.2 Nachrichtenbasierte Verfahren
      1. 5.2.1 Allgemeine Aspekte
      2. 5.2.2 Unix-Pipes
      3. 5.2.3 Windows-Pipes
      4. 5.2.4 Unix Message Queues
      5. 5.2.5 Windows-Messages
      6. 5.2.6 Windows-Mailslots
    3. 5.3 Speicherbasierte Verfahren
      1. 5.3.1 Gemeinsamer Speicher unter Windows
      2. 5.3.2 Gemeinsamer Speicher unter Unix
    4. 5.4 Monitor
      1. 5.4.1 Grundprinzip
      2. 5.4.2 Java-Monitor
      3. 5.4.3 Monitornachbildung mit Bedingungsvariablen
    5. 5.5 Rendezvous
      1. 5.5.1 Grundprinzip
      2. 5.5.2 Synchronisation in Client/Server-Systemen (barber shop)
    6. 5.6 Rechnerübergreifende Interprozesskommunikation
      1. 5.6.1 Netzwerksoftware
      2. 5.6.2 Berkeley-Sockets
      3. 5.6.3 Remote Procedure Call (RPC)
      4. 5.6.4 Überblick über Middleware
  12. 6 Ein- und Ausgabe
    1. 6.1 Peripherie
      1. 6.1.1 Einordnung im Rechnermodell
      2. 6.1.2 Begriffsdefinitionen
    2. 6.2 Ein-/Ausgabeabläufe
      1. 6.2.1 Programmgesteuerte Ein-/Ausgabe
      2. 6.2.2 Ein-/Ausgabe mittels Programmunterbrechungen
      3. 6.2.3 Ein-/Ausgabe mittels DMA
      4. 6.2.4 Ein-/Ausgabearten im Vergleich
    3. 6.3 Ein-/Ausgabesystem
      1. 6.3.1 Treiber
      2. 6.3.2 Geräteverwaltung
      3. 6.3.3 Treiberschnittstelle
      4. 6.3.4 Ein-/Ausgabeschnittstelle
      5. 6.3.5 Ein-/Ausgabepufferung
      6. 6.3.6 Treibermodell in Linux
      7. 6.3.7 Treibermodelle in Windows (WDM & WDF)
    4. 6.4 Massenspeicher
      1. 6.4.1 Verfahren der Datenaufzeichnung
      2. 6.4.2 Wichtigste Massenspeicher
      3. 6.4.3 Eigenschaften von Plattenspeichern
      4. 6.4.4 Eigenschaften von Festkörperlaufwerken (SSD)
      5. 6.4.5 Zugriffsplanung für Plattenspeicher (disk I/O scheduling)
      6. 6.4.6 Pufferung von Plattendaten (disk cache)
    5. 6.5 Benutzerinteraktion aus Systemsicht (Benutzeroberflächen)
      1. 6.5.1 Allgemeines
      2. 6.5.2 Systemarchitekturen
      3. 6.5.3 Programmiermodelle
      4. 6.5.4 Die Unix-Shell als Kommandointerpreter
      5. 6.5.5 Funktionsweise & Programmierung des X-Window-Systems
      6. 6.5.6 Funktionsweise und Programmierung des Windows-GUI
  13. 7 Speicherverwaltung
    1. 7.1 Speichersystem
      1. 7.1.1 Einordnung im Rechnermodell
      2. 7.1.2 Grundlegende Speicherprinzipien
      3. 7.1.3 Speicherhierarchie & Lokalitätsprinzip
      4. 7.1.4 Cache-Funktionsweise
    2. 7.2 Verwaltungsgrundlagen
      1. 7.2.1 Abstraktionen mittels Abbildungsfunktionen
      2. 7.2.2 Aufgaben der Systemsoftware
      3. 7.2.3 Dynamische Speicherbereitstellung
    3. 7.3 Verwaltung von Prozessadressräumen
      1. 7.3.1 Adressraumnutzung durch Programme
      2. 7.3.2 Adressraumverwaltung durch das Betriebssystem
    4. 7.4 Realer Speicher
      1. 7.4.1 Monoprogrammierung
      2. 7.4.2 Multiprogrammierung mit Partitionen
      3. 7.4.3 Verfahren für knappen Speicher
    5. 7.5 Virtueller Speicher
      1. 7.5.1 Adressumsetzung
      2. 7.5.2 Seitenwechselverfahren (demand paging)
      3. 7.5.3 Speicherabgebildete Dateien
      4. 7.5.4 Gemeinsamer Speicher (shared memory)
  14. 8 Dateisysteme
    1. 8.1 Aufgaben des Dateisystems
    2. 8.2 Dateisystemkonzepte
      1. 8.2.1 Logische Organisation
      2. 8.2.2 Dateisystemfunktionen
      3. 8.2.3 Gemeinsame Dateinutzung
      4. 8.2.4 Speicherabgebildete Dateien
    3. 8.3 Realisierung von Dateisystemen
      1. 8.3.1 Konzeptionelles Modell
      2. 8.3.2 Blockspeicher als Grundlage
      3. 8.3.3 Organisationsprinzipien
    4. 8.4 UFS – traditionelles Unix-Dateisystem
    5. 8.5 FAT– traditionelles Windows-Dateisystem
      1. 8.5.1 Struktur der Gesamtplatte
      2. 8.5.2 Aufbau der Belegungstabelle (FAT)
      3. 8.5.3 Verzeichnisdaten
      4. 8.5.4 Lange Dateinamen (VFAT)
    6. 8.6 NTFS – modernes Windows-Dateisystem
    7. 8.7 Netzwerkdateisysteme
      1. 8.7.1 Logische Sicht
      2. 8.7.2 Implementierung
      3. 8.7.3 NFS – Network File System in Unix
      4. 8.7.4 SMB – Netzwerkdateisystem in Windows
    8. 8.8 Spezielle Dateisystemtechnologien
      1. 8.8.1 Protokollierende Dateisysteme
      2. 8.8.2 Schattenkopie
      3. 8.8.3 Disk Scheduling
    9. 8.9 Festplattenpartitionierung
      1. 8.9.1 Anwendungsbereiche
      2. 8.9.2 Festplattenpartitionierung der PC-Systeme
  15. 9 Programmentwicklung
    1. 9.1 Software-Entwicklungswerkzeuge
      1. 9.1.1 Ablauf der Programmübersetzung
      2. 9.1.2 Darstellung von Übersetzungsvorgängen mittels T-Notation
      3. 9.1.3 Automatisierte Übersetzung
      4. 9.1.4 Versionenkontrolle
    2. 9.2 Adressraumbelegung und Relokation
      1. 9.2.1 Storage Class
      2. 9.2.2 Programmorganisation in Sektionen
      3. 9.2.3 Relokation von Programmen
    3. 9.3 Programmbibliotheken
      1. 9.3.1 Grundlagen und Begriffe
      2. 9.3.2 Programmbibliotheken unter Unix
      3. 9.3.3 Programmbibliotheken unter Windows
    4. 9.4 Skriptprogrammierung unter Unix
      1. 9.4.1 Anwendungsbereiche
      2. 9.4.2 Die Shell als Programminterpreter
      3. 9.4.3 Portabilität und Kompatibilität
      4. 9.4.4 Erstellung von Skriptprogrammen
      5. 9.4.5 Elemente der Skriptsprache
      6. 9.4.6 Shell-Befehle
      7. 9.4.7 Shell-Variablen
      8. 9.4.8 Metazeichen
      9. 9.4.9 Synonyme und Funktionen
      10. 9.4.10 Bedingte Tests (conditional tests)
      11. 9.4.11 Arithmetik
      12. 9.4.12 Kontrollstrukturen für Skripte
  16. 10 Sicherheit
    1. 10.1 Schutzziele
    2. 10.2 Autorisierung und Zugriffskontrolle
      1. 10.2.1 Grundlagen und Begriffe
      2. 10.2.2 Schutzdomänenkonzept
      3. 10.2.3 Schutzstrategien
    3. 10.3 Hochsichere Betriebssysteme
    4. 10.4 Sicherheit unter Unix
    5. 10.5 Sicherheit unter Windows
  17. 11 Spezielle Technologien
    1. 11.1 Multiprozessorsysteme
      1. 11.1.1 Einprozessorsysteme
      2. 11.1.2 Multiprozessorsysteme (Klassifikation nach Flynn)
      3. 11.1.3 Rechenleistung paralleler Prozessoren (Amdahl’s Law)
      4. 11.1.4 Strukturen von Multiprozessorsystemen
      5. 11.1.5 Leistungsbewertung von Computern
    2. 11.2 Handheld-Computing
      1. 11.2.1 Allgemeines
      2. 11.2.2 Spezielle Anforderungen an das Betriebssystem
      3. 11.2.3 Windows CE
      4. 11.2.4 Embedded Linux
      5. 11.2.5 Android, Maemo und WebOS
      6. 11.2.6 Symbian OS
    3. 11.3 Virtualisierungskonzepte und ihre Anwendung
      1. 11.3.1 Anwendungsbereiche
      2. 11.3.2 Virtuelle Prozessoren
      3. 11.3.3 Virtuelle Prozessumgebungen
      4. 11.3.4 Virtuelle Ressourcen
      5. 11.3.5 Virtuelle Computer (Stufe Computerhardware)
      6. 11.3.6 Virtuelle Sekundärspeicher (storage virtualization)
      7. 11.3.7 Virtuelle Netzwerke (network virtualization)
  18. A Anhang
    1. A.1 Maßeinheiten und Darstellungen
      1. A.1.1 Maßeinheiten in der Informatik
      2. A.1.2 Darstellung von Bitmustern
      3. A.1.3 Oktal- und Hexadezimalzahlen
      4. A.1.4 Kennzeichnung der Zahlensysteme
      5. A.1.5 Rechnerinterne Zahlendarstellungen
      6. A.1.6 Textzeichensätze
    2. A.2 Instruktionssatz der Intel iA32-Prozessoren
  19. Literaturhinweise
  20. Index