Skip to main content
main-content

Über dieses Buch

Das Buch vermittelt in kompakter und leicht verständlicher Form wichtige Grundkonzepte, Verfahren und Algorithmen, die in modernen Betriebssystemen eingesetzt werden. Nach einer Einführung in grundlegende Konzepte und Betriebssystemarchitekturen wird auf die Interruptverarbeitung aus Sicht von Betriebssystemen eingegangen und es werden gängige Techniken zur Verwaltung wichtiger Betriebsmittel wie Prozesse, Threads, Hauptspeicher, Geräte und Dateien sowie wichtige Mechanismen der Koordination, Synchronisation und Kommunikation zwischen Prozessen und Threads vertieft. Ebenso werden die grundlegenden Problemstellungen und Techniken der Betriebssystemvirtualisierung erläutert. Es wird anschaulich mit vielen Bildern dargestellt, welche komplexen Aufgaben ein Betriebssystem zur Verwaltung von Betriebsmitteln sowie für den konkurrierenden Zugriff auf diese bewältigen muss.

Der Stoff wird mit vielen Beispielen aus aktuell relevanten Betriebssystemen und Programmiersprachen angereichert. Als Beispiel-Betriebssysteme werden vorwiegend Windows, Unix und Linux herangezogen. Synchronisationsprobleme werden vor allem in der Sprache Java beschrieben. Zu jedem Kapitel ist eine Sammlung von Kontrollfragen zur Nachbearbeitung des Stoffes beigefügt.

Inhaltsverzeichnis

Frontmatter

1. Einführung

Zusammenfassung
Dieses Kapitel geht auf die grundlegenden Aufgaben von Betriebssystemen ein. Das Kapitel beginnt mit einer Einführung in den Aufbau eines Computersystems, das aus Software und Hardware besteht. Ausgehend von der Von-Neumann-Maschine als Basis unserer heutigen Rechnersysteme wird ein einfaches Hardwaremodell für unsere weitere Betrachtung eingeführt. Weiterhin wird ein kurzer Abriss der Geschichte der Betriebssystementwicklung vor allem am Beispiel von Windows und Unix gegeben. Betriebssysteme stellen gewissermaßen Betriebsmittelverwalter dar, welche die Anwendungen mit den verfügbaren Betriebsmitteln wie Speicher und Prozessorzeit sowie Geräte und Dateien versorgen. Darauf wird in diesem Kapitel ebenfalls eingegangen.
Peter Mandl

2. Betriebssystemarchitekturen und Betriebsarten

Zusammenfassung
Dieses Kapitel führt in Betriebssystemarchitekturen und typische Betriebsarten von Betriebssystemen ein. Dazu ist es zunächst notwendig, die Zugriffsschutzkonzepte von Betriebssystemen zu erläutern und Begriffe wie Benutzermodus und Kernelmodus einzuführen. Häufig verwendete Begriffe zu historischen und aktuell üblichen Betriebsarten wie Multitasking und Timesharing werden gegeneinander abgegrenzt. Spezielle Betriebsarten wie Teilnehmer- und Teilhaberbetrieb sowie der Application-Server-Betrieb werden eingeführt. Der heute wieder an Bedeutung gewinnende Terminalbetrieb, allerdings im Gegensatz zu früher mit grafischer Oberfläche anstelle von blockorientierten, alphanumerischen Terminals, wird ebenfalls kurz vorgestellt. Dabei wird erläutert, was ein Terminalserver ist. Ebenso wird auf die sich immer weiter verbreitenden Konzepte der Virtualisierung, insbesondere auf die Virtualisierung von Betriebssystemen eingegangen. Eine kurze Einführung zu Cloud Computing, das zunehmend an Bedeutung gewinnt, rundet diese Einführung ab.
Peter Mandl

3. Interruptverarbeitung

Zusammenfassung
Heutige Betriebssysteme unterstützen verschiedenste externe Geräte wie Festplatten, Netzwerkkarten usw. und ermöglichen den Anwendungen einen komfortablen Zugriff auf diese. Externe Geräte müssen schnell bedient werden, wofür das Betriebssystem zuständig ist. Wenn ein Gerät Signale oder Daten an die CPU übertragen möchte, erzeugt es zunächst eine Unterbrechungsanforderung, die der richtigen Bearbeitungsroutine im Betriebssystem übergeben werden muss. Dazu müssen aktuell ablaufende Aktivitäten ggf. unterbrochen werden. Nach der Abarbeitung muss wieder der alte Zustand hergestellt werden. Ähnliches geschieht bei der Bearbeitung von Systemdiensten, wie etwa dem Lesen einer Datei. Systemdienste werden über sog. Systemcalls durch die Programme aktiv initiiert. Man spricht hier allgemein von Unterbrechungsanforderungen (Interrupt-Anforderung oder Interrupt-Request) und der zugehörigen Unterbrechungsbearbeitung (Interrupt-Bearbeitung).
Peter Mandl

4. Prozesse und Threads

Zusammenfassung
Das Prozess- und das Threadmodell sind wesentliche Konzepte der Betriebssystementwicklung und dienen als grundlegende Bausteine der Parallelverarbeitung. In diesem Kapitel wird ein Überblick über diese beiden Modelle und deren allgemeine sowie spezielle Einbettung in Betriebssysteme gegeben. Prozesse sind Betriebsmittel, die vom Betriebssystem verwaltet werden. Threads werden je nach Implementierung entweder direkt vom Betriebssystem oder von einem Laufzeitsystem einer höheren Programmiersprache (wie etwa der JVM) verwaltet.
Peter Mandl

5. CPU-Scheduling

Zusammenfassung
Die verfügbare Rechenzeit muss vom Betriebssystem an die parallel ablaufenden bzw. nebenläufigen Aktivitäten (Prozesse und Threads) zugewiesen werden. Bei Einprozessormaschinen wird eine einzige CPU (ein Rechnerkern oder Rechenkern) für mehrere Aktivitäten genutzt. Bei Mehrprozessormaschinen und heutigen Multicore-Prozessoren stehen mehrere CPUs oder Rechnerkerne zur Verfügung. Im letzteren Fall spricht man von echter Parallelität, da so viele Aktivitäten ausgeführt werden können wie CPUs oder Rechnerkerne zur Verfügung stehen.
Peter Mandl

6. Synchronisation und Kommunikation

Zusammenfassung
Bei der Parallelverarbeitung mit gleichzeitiger Nutzung gemeinsamer Betriebsmittel durch Prozesse bzw. durch Threads sind einige Herausforderungen zu bewältigen. Wenn man Prozesse oder Threads ohne Abstimmung mit gemeinsam genutzten Betriebsmitteln wie z. B. gemeinsam genutzte Speicherbereiche, arbeiten lässt, kann es zu Inkonsistenzen oder sog. Race Conditions kommen. Lost-Updates oder andere Anomalien können die Folge sein.
Peter Mandl

7. Hauptspeicherverwaltung

Zusammenfassung
Dieses Kapitel befasst sich mit der Speicherverwaltung und zwar insbesondere mit der Verwaltung des Hauptspeichers. In Multitasking-Betriebssystemen nutzt man heute meist die virtuelle Speichertechnik mit diversen Optimierungsmöglichkeiten im Demand-Paging-Verfahren. Deshalb bildet die virtuelle Speichertechnik den Schwerpunkt des Kapitels, aber auch auf ältere Verfahren wie Overlay-Technik und auf Swapping wird eingegangen.
Peter Mandl

8. Geräte- und Dateiverwaltung

Zusammenfassung
Dieses Kapitel befasst sich mit der Geräteverwaltung und mit der Dateiverwaltung sowie mit heute üblichen Storage-Systemen. Zunächst wird auf die Geräteverwaltung eingegangen. Es wird dargestellt, wie die Geräteansteuerung ins Betriebssystem eingebettet ist. Geräte sind heute üblicherweise über Bussysteme an die CPU angeschlossen. Daher wird auch ein kurzer Blick auf heutige Busssysteme geworfen. Ein klassischer Gerätetyp, die Festplatte, wird etwas intensiver betrachtet. Die Einbettung der Geräteansteuerung unter Unix wird kurz skizziert, und es wird rudimentär erläutert, was unter DMA und Memory-Mapped-Ein-/Ausgabe zu verstehen ist.
Peter Mandl

9. Betriebssystemvirtualisierung

Zusammenfassung
Virtualisierung ist eines der Grundkonzepte in der Informatik. Einige Virtualisierungstechniken wie das Prozessmodell, der virtuelle Speicher und die Virtualisierung von Dateisystemen haben wir in den vorangegangenen Kapiteln bereits kennengelernt. Auch das Konzept der virtuellen Maschinen für Programmiersprachen (z. B. Java mit der JVM) wurde bereits erwähnt. Nicht behandelt wurden z. B. die Techniken der Netzwerkvirtualisierung (vLAN), die den Rahmen dieses Buches sprengen würden.
Peter Mandl

10. Schlussbemerkung

Zusammenfassung
Dieses Buch sollte eine Einführung in die Grundlagen moderner Betriebssysteme geben. Es wurden vor allem die Betriebsmittel Prozess, Thread, Speicher, Datei und Gerät sowie Maßnahmen für ihre effiziente Verwaltung erläutert. Weiterhin wurde auf die Synchronisation nebenläufiger Prozesse bzw. Threads, die um Betriebsmittel konkurrieren, sowie auf die Kommunikation dieser eingegangen. Betriebsmittel sind zwar heute nicht mehr so knapp wie noch vor 30 Jahren, jedoch benötigen heutige Anwendungssysteme wesentlich mehr davon (vor allem externen und internen Speicher und CPU-Zeit), weshalb man auch heute noch auf eine vernünftige Nutzung der verfügbaren Ressourcen achten muss. Im Fokus unserer Betrachtung stand die Sichtweise eines Informatikers, der betriebliche Steuerungs- und Informationssysteme realisiert und auf Betriebssystemen zum Ablauf bringt. Weniger betrachtet wurden realzeitnahe Anwendungen.
Peter Mandl

11. Lösungen zu den Übungsaufgaben

Zusammenfassung
Folgende Scheduling-Algorithmen für Realtime-Systeme sind u. a. bekannt:
Peter Mandl

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise