Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann
Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender, übertragender oder speichernder Operationen definiert ist. DIN 44.300
Aufbau Computer Dr. Heidrun Kolinsky - Programmieren in Fortran 90/95
Rechnerstruktur / gemeinsamer Adressraum W. Nowicki, CC BY-SA 3.0
Aufbau PC Industrial Computers, Inc.
Zyklus einer CPU Holger Kreissl
Interrupt Unterbricht den aktuellen Programmablauf Wird von externer Peripherie ausgelöst Uhren Netzwerkkarte Ermöglicht das Abarbeiten von zeitkritischen, außerplanmäßigen oder seltene Aktionen
Grundlegender Aufbau CPU Prof. Jürgen Plate
Programmieren direkt auf der Hardware Vorteile Volle Kontrolle Determinismus Hohe Effizienz Nachteile Hoher Aufwand Alle Funktionen müssen selbst implementiert werden Hardware muss initialisiert werden Programm abhängig von der HW
Hardware-Abstraktion Hardwareinitialisierung vom Betriebssystem übernommen Häufig genutzte Funktionen können bereitgestellt werden Programm übernimmt zur Laufzeit (fast) vollständige Kontrolle Beispiele: DOS Kernal (C64) AUTOSAR DOS Anwendung BIOS Hardware
Programmieren mit Hardwareabstraktion Vorteile Viel Kontrolle Hohe Effizienz Nachteile Nur ein Programm zur selben Zeit aktiv
Mehrere Anwendungen Anwendung Anwendung Anwendung Betriebssystem? Hardware
Kernfunktionen eines Multitasking-Betriebssystem Hardwareabstrahierungsschicht Verwaltung von geteilten Ressourcen Anwendung Anwendung Arbeitsspeicher Standard-Bibliotheken CPU Kernel-API Festplatte Netzwerk Speicherverwaltung Scheduler Treiber Bereitstellung von definierten APIs Hardware-Abstrahierung Typischerweise auch Standard-Bibliotheken Hardware
Speicherverwaltung / Virtueller Speicher Jedes Programm verwendet logisch gesehen den gleichen Speicher wie bei der HW- Abstraktion: Beginnt bei Adresse 0 Benutzter Speicher muss vom Betriebssystem angefordert werden Enthält Programm, Bibliotheken, Daten Schnittstellen zum Kernel über definierte Speicherbereiche Betriebssystem bildet mit Hardware Memory Management Unit (MMU) im Betrieb die logisches Adressen auf die echten ab Betriebssystem kann auch teile auf Festplatte auslagern
Beispiel Speicherverwaltung Programm A Bibl. B Bibl. A Arbeitsspeicher Betriebssystem Programm B Bibl. A Festplatte BS-API BS-API
Beispiel Speicherverwaltung / Auslagerung Programm A Arbeitsspeicher Betriebssystem Programm B Festplatte BS-API BS-API
CPU-Ringe Anwendung darf (u. A.) Speicherverwaltung nicht stören => Anwendung darf z.b. MMU Konfiguration nicht ändern oder an der vorbei auf Speicher zugreifen Prozessoren unterscheiden verschieden Privilegien bei bestimmten Operationen Nur Betriebssystem darf beliebig auf Speicher zugreifen Nur Betriebssystem kann MMU umkonfigurieren
Multitasking Periodischer Wechsel zwischen den Anwendungen => für Benutzer gleichzeitige Ausführung mehrerer Programme auf einen CPU-Kern Wechsel: Sichern der Werte der Register des laufenden Programms Wiederherstellen der Register des wieder zu startenden Programms Sprung an die richtige Speicheradresse Varianten: Kooperativ Zeitscheiben-Verfahren
Kooperativen Multitasking Jede Anwendung unterbricht sich selbst: Falls auf externe Ereignisse gewartet wird Nach einiger Berechnungszeit Anwendung ruft dazu eine Betriebssystemroutine auf, die eine Liste der aktiven Anwendungen führt und die nächste aufruft.
Zeitscheiben-Multitasking Jede Anwendung unterbricht sich selbst, falls auf externe Ereignisse gewartet wird Das Betriebssystem unterbricht jede Anwendung mit einem Interrupt, falls eine definierte Zeitdauer abgelaufen ist Betriebssystemroutine wählt in beiden Fällen nächste Anwendung aus: Round-Robin Priority Weighted-Round-Robin Deadline
Virtualisierung In der Theorie unnötig: Betriebssystem isoliert Anwendungen Betriebssystem erlaubt gleichzeitigen Betrieb von mehreren Anwendungen Betriebssystem koordiniert geteilte Ressourcen In der Praxis: Anwendungen benötigen unterschiedliche Betriebssysteme Anwendungen benötigen zueinander inkompatible Konfigurationen Einzelne Ressourcen werden vom Betriebssystem nicht so gut verwaltet z. B. Grafikkarten Netzwerk-Ports
Umsetzung Virtualisierung Meta-Betriebssystem Verwaltet statt Anwendungen Betriebssysteme Emuliert Peripherie für die Gäste um Ressourcen wie Netzwerk und Festplatte zu teilen Läuft in Ring -1 bei moderner Hardware oder verschiebt das Gast-Betriebssystem in Ring 1 (Anpassungen notwendig)