Betriebssysteme - die Ressourcenmanager

Betriebssysteme machen die Computer bedienbar

Die modernen Betriebssysteme wie Microsoft Windows, Apple's OSX oder UNIX- bzw. LINUX-Derivate weisen viele Parallelen auf. So verwalten sie alle die Ressourcen von Computern und stellen diese dem Endbenutzer über geeignete Benutzer-Oberflächen zur Verfügung. Die darunter liegende Hardware (Prozessoren, Arbeitsspeicher, Festplattenspeicher, Speicherkarten, Bildschirme, Drucker usw.) ist für den Benutzer abstrakt.

Die Definition eines Betriebssystems umfasst folgende 4 Schwerpunkte:
  1. Ein Betriebssystem soll die Benutzer-Welt auf die Maschinenwelt abbilden, es bildet die Schnittstelle zwischen Mensch und Maschine
  2. Das Betriebssystem hat die Organisation und Kontrolle über den Betriebsablauf der Programme
  3. Das Betriebssystem steuert und protokolliert den Programmablauf
  4. Ein Betriebssystem ermöglicht die Nutzung von unterschiedlichen Betriebsmitteln

Als ein Betriebssystem bezeichnet man deshalb die Gesamtheit der Programme oder Software-Module, welche zusammen mit der Computeranlage (Hardware) die Grundlage für mögliche Betriebsarten bilden. Betriebssysteme überwachen und steuern den Ablauf von Programmen.

Unter Programmen werden folgende Kategorien zusammengefasst
  • Dienstprogramme
  • Werkzeuge (Editor, Rechner)
  • Übersetzungsprogramme (Compiler, Interpreter)
  • Organisationsprogramme (Ressourcenverwaltung)
  • Benutzerschnittstelle (zeichen- oder grafisch basiert)

Betriebssystem-Familien
Alle Betriebssysteme haben unterschiedliche Eigenschaften und sind für dein einen oder anderen Einsatzzweck besser oder schlechter geeignet. Die Betriebssysteme können in folgende 3 Familien eingeteilt werden:

Batch-Mode-Betriebssystem
Beim Stapelbetrieb (Batch-Mode) werden die Aufgaben (Jobs) sequentiell abgearbeitet. Das heisst, dass beispielsweise der Job Nr. 2 erst nach der Ausführung von Job 1 abgearbeitet wird. Es erfolgt keine Interaktion zwischen dem Benutzer und seinem Job während der Ausführung. Der Anwender erhält allenfalls eine Quitting über den Status nach dem Abschluss.

Realtime-Betriebssysteme
Bei einem Echtzeit-Betriebssystem erfolgt die Antwort auf eine I/O-Anforderung - oder eine andere Aufgabe des Betriebssystems - in genau vorgegeben Zeitabständen. Die Zeitabstände bewegen sich im Milli- oder Mikrosekundenbereich. Realtime-System werden häufig bei der industriellen Fertigung, beispielsweise bei CNC-Fräsen, eingesetzt.

Multitasking-Betriebssysteme / Timesharing
Multitasking-Betriebssysteme können verschiedene Prozesse / Tasks gleichzeitig ausführen. Die Gleichzeitigkeit ist ein subjektiver Eindruck des Benutzers, objektiv verarbeitet der Prozessor die Tasks zwar auch parallel jedoch nur einen Task gleichzeitig, er wechselt laufend zwischen den einzelnen Prozessen hin und her und ermöglicht so das Multitasking. Das Prinzip des Multitasking kann grundsätzlich in zwei Arten unterschieden werden:

Preemptives Multitaskting:
Das preemptive Multitasking wird auch als als Zeitscheiben-Multitasking bezeichnet. Es handelt sich um die Form des Multitaskings, bei der das Betriebssystem periodisch die Ausführung eines Programms unterbricht und die Steuerung des Systems an ein anderes, wartendes Programm übergibt. Preemptives Multitasking verhindert, dass ein einzelnes Programm das System für sich allein beansprucht.

Kooperatives Multitasking:
Eine Form des Multitaskings, bei der ein oder mehrere Hintergrundtasks nur dann Verarbeitungszeit erhalten, wenn sich der Vordergrundtask im Leerlauf befindet und die Hintergrundbearbeitung zulässt, sich also gewissermassen kooperativ verhält. Ein berühmter Vertreter des kooperativen Multitaskings war Windows 3.1 bzw. Windows 9x.

Multiuser-Betriebssysteme
Bei einem Multiuser-Betriebssystem können mehrere Benutzer gleichzeitig mit dem System arbeiten. Ein Multitasking wird für diesen Betriebssystemkonzept implizit vorausgesetzt, da ein Benutzer nicht warten kann, bis ein anderer Benutzer seine Arbeit erledigt hat.

Betriebssystemstrukturen
Typischerweise besteht ein Betriebssystem aus den folgenden Komponenten:
  • Prozessverwaltung
  • Dateiverwaltung
  • Speicherverwaltung
  • I/O-Geräteverwaltung

Diese Komponenten können nach verschiedenen Strukturen aufgebaut sein.

Prozedursammlung
Eine Prozedursammlung ist eine einfache Form eines Betriebssystems das zwar Schnittstellen beinhalten kann, ein Programmierer muss sich aber nicht an diese Schnittstellen halten. Direkte Hardware-Zugriffe sind möglich, der Entwickler kann selbst Systemprozeduren entwickeln. Es finden auch oft kaskadierte Prozeduraufrufe statt.


Schema einer Prozedursammlung
Ein ziemlich bekannter Vertreter des Modells der Prozedursammlung ist das Betriebssystem MS-DOS von Microsoft.

Schichtenmodell
Ein Zugriff von einer anderen Schicht - beispielsweise einer Benutzeranwendung wie Excel oder Word - auf eine andere Schicht ist nur über eine definierte Schnittstelle (API) möglich. Ebenso kann beispielsweise ein Kommunikationsprogramm nicht direkt auf den COM-Port zugreifen. Die Applikation stellt eine Anfrage an das Betriebssystem, ob der COM-Port verfügbar ist.

Schichtenmodell für Betriebssysteme

Wird ein Betriebssystem nach dem Schichtenmodell konzipiert, kann ein Benutzerprozess nicht direkt auf die Hardware zugreifen. Die Schicht der Hardware-Abstraktion wird auch als HAL (Hardware Abstraction Layer) bezeichnet, sie ist im Client/Server-Modell ebenfalls vorhanden.

Client/Server-Modell
Betriebssysteme die nach dem Client/Server-Modell aufgebaut sind, sind in Bezug auf die Architektur flexibel und entsprechend leicht auf andere Plattformen portierbar. Client/Server-Betriebssysteme bestehen aus kleinen Einzelteilen die autonom arbeiten können den sogenannten Servern. Der Betriebssystemkern ist klein (Mikrokernel) und sorgt für die Kommunikation zwischen den Servern und den Clients welche in Form von Applikationen die Dienste der Server beanspruchen.

clientserver

Der Betriebssystem Kern arbeitet in einem so genannten privilegierten Modus, er verwaltet alle Hardware-Ressourcen und weist diese auch den Clients zu. Die Server greifen nur via Kernel auf Ressourcen zu, so können Ressourcenkonflikte weitgehend vermieden werden. Der Kernel übernimmt nebst der Kommunikation auch die Prozess- und Hauptspeicherverwaltung. Für Applikationen stellen die Server die Dienste über ein sogenanntes API zur Verfügung.

Das Client/Server-Betriebssystem-Modell ist mit dem Client/Server-Applikationsmodell nicht zu verwechseln. Ein Beispiel für eine Client/Server-Applikations-Architektur stellt das 3-Tier-Modell dar.