Betriebssystem/Abstraktion

Aus Foxwiki

Betriebsmittelverwaltung und Abstraktion

Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Hardware eines Computers zur Verfügung gestellten Komponenten, also den Prozessor (bei Mehrprozessorsystemen die Prozessoren), den physischen Speicher und alle Geräte wie Festplatten-, Disketten- und CD-ROM-Laufwerke, Netzwerk- und Schnittstellenadapter und andere.

  • Die Hardware Compatibility List enthält alle Hardware-Produkte, die im Zusammenhang mit einem bestimmten Betriebssystem auf ihre Funktionalität hin getestet wurden.

Beispiel: Zeitgeberbausteine

Moderne Rechnersysteme besitzen Zeitgeberbausteine (Timer).

  • In frühen PCs wurde z. B.
  • der Baustein 8284 des Unternehmens Intel eingesetzt.
  • Dieser Baustein muss zunächst initialisiert werden.
  • Er kann dann nach Ablauf einer Zeitspanne oder periodisch den Prozessor unterbrechen und ihn zur Abarbeitung einer eigenen Routine veranlassen.
  • Neben der Initialisierung ist eine Unterbrechungsroutine zu erstellen, deren Aufruf in einer dafür geeigneten Sprache (meist Assembler) programmiert werden muss.
  • Da Unterbrechungen asynchron auftreten, sind komplexe Verhältnisse hinsichtlich der Datenstrukturen zu berücksichtigen.
  • Genaue Kenntnisse des Bausteins (Datenblatt), der Computerhardware (Unterbrechungsbehandlung) und des Prozessors sind erforderlich.
  • Die einzelnen Komponenten, die an diesem Prozess beteiligt sind, fasst man unter dem Begriff Rechnerarchitektur zusammen.

Virtuelle Prozessoren

Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein, um den normalerweise einzigen Prozessor periodisch (normalerweise im Millisekundenbereich) zu unterbrechen und eventuell mit einem anderen Programm fortzufahren (sogenanntes präemptives Multitasking).

  • Die Initialisierung und die Unterbrechungsroutine werden dabei vom Betriebssystem implementiert.
  • Auch wenn nur ein einzelner Prozessor zur Verfügung steht, können mehrere Programme ausgeführt werden, jedes Programm erhält einen Teil der Prozessorzeit (Scheduling).
  • Jedes Programm verhält sich, bis auf die verlangsamte Ausführungszeit, so, als hätte es einen eigenen virtuellen Prozessor.

Virtuelle Zeitgeber

Über einen Systemruf, zum Beispiel alarm, wird jedem Programm darüber hinaus ein eigener virtueller Zeitgeber zur Verfügung gestellt.

  • Das Betriebssystem zählt die Unterbrechungen des Original-Zeitgebers und informiert Programme, die den alarm-Systemruf verwendeten.
  • Die einzelnen Zeitpunkte werden über eine Warteschlange verwaltet.

Abstraktion

Die Hardware des Zeitgebers ist damit vor den Programmen verborgen.

  • Ein System mit Speicherschutz erlaubt den Zugriff auf den Zeitgeberbaustein nur über den Kernel und nur über exakt definierte Schnittstellen (meist Systemrufe genannt, die über spezielle Prozessorbefehle wie TRAP, BRK, INT realisiert werden).
  • Kein Programm kann somit das System gefährden, die Verwendung des virtuellen Zeitgebers ist einfach und portabel.
  • Der Anwender oder Programmierer braucht sich nicht um die (komplexen) Details zu kümmern.

Virtualisierung weiterer Betriebsmittel

So wie Prozessoren und Zeitgeber virtualisiert werden, ist dies auch für alle anderen Betriebsmittel möglich.

  • Dabei werden einige Abstraktionen teilweise nur als Software implementiert, andere erfordern spezielle Hardware.

Dateisysteme

Über Dateisysteme werden die Details der externen Speichersysteme (Festplatten-, Disketten- oder CD-ROM-Laufwerke) verborgen.

  • Dateinamen und Verzeichnisse erlauben den bequemen Zugriff, die eigentlich vorhandene Blockstruktur und die Geräteunterschiede sind vollkommen unsichtbar.

Interner Speicher

Der interne Speicher (RAM) wird auch Arbeitsspeicher genannt und vom Betriebssystem in Blöcke (Kacheln) aufgeteilt, die den geladenen Programmen auf Anforderung zur Verfügung gestellt werden.

  • Meist wird der Speicher initialisiert, das bedeutet, dass dabei allenfalls noch vorhandene Daten zuvor gelöscht werden. Über virtuellen Speicher wird bei vielen Systemen jedem Programm ein kontinuierlicher (zusammenhängender) Bereich zur Verfügung gestellt.
  • Die Virtuelle Speicherverwaltung erlaubt einen flexiblen Ansatz, bei dem der reale physisch vorhandene Speicher weder zusammenhängend sein muss (Segmentierung), noch muss er in Summe real wirklich so groß sein, wie es aus Sicht der Programme scheint.
  • Stattdessen werden einzelne Speicherblöcke, , nach Bedarf zwischen Arbeitsspeicher (RAM) und externem Speicher (z. B.
  • die Auslagerungsdatei) hin und her geschoben (Paging).

Netzwerk

Die Details der Netzwerkzugriffe werden verborgen, indem auf die eigentliche Hardware (Netzwerkkarte) ein Protokollstapel aufgesetzt wird.

  • Die Netzwerksoftware erlaubt beliebig viele virtuelle Kanäle.
  • Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen unsichtbar, das Netzwerk hat viele neue Fähigkeiten (bidirektionale, zuverlässige Datenströme, Adressierung, Routing) bekommen.

Bildschirm

Als Grafische Benutzeroberfläche (GUI, Abk.

  • für engl. Graphical User Interface) wird generell eine Bildschirmausgabe beschrieben, wenn sie über eine Eingabeaufforderung hinausgeht.

Mit den richtigen Grafikkarten und Bildschirmen ist die Darstellung von geometrischen Objekten (Linien, Kreisen, Ellipsen, aber auch Schriftattributen und Farben) auf dem Bildschirm möglich, aus denen sich komplexere geometrische Elemente wie Knöpfe, Menüs, Benutzeroberflächen etc.

  • zum einfachen Steuern von Programmen erstellen lassen.

Die Grafikkarte als Hardware ist für den Programmierer und Anwender vollkommen verborgen.