Quelle: dotnetpro
Das eigene Betriebssystem, Teil 11 16.10.2023, 00:00 Uhr

Anwendungsprogramme

Anwendungen laden und in einem virtuellen Adressraum ausführen.
Wie Sie mithilfe des Timer Interrupts ein einfaches softwarebasierendes Multitasking implementieren können, haben Sie in den beiden zurückliegenden Folgen dieser Serie erfahren [1] [2]. In der heutigen Ausgabe soll das Multitasking weiterentwickelt und die Möglichkeit geschaffen werden, Anwendungsprogramme von der Festplatte zu laden, um diese dann in einem eigenen virtuellen Adressraum auszuführen. Zudem werden in der kommenden Folge dann System-Calls implementiert, damit Anwendungsprogramme mit dem Kernel zusammenarbeiten können.
Am Ende der zurückliegenden Folge wurde ein Meilenstein erreicht: Mithilfe des Timer-Interrupts ist das Betriebssystem jetzt in der Lage, mehrere Tasks parallel auf einem CPU-Kern auszuführen. Dazu wird im Rahmen des Timer Interrupts ein sogenanntes Kontext-Switching durchgeführt: Es werden die Registerinhalte des aktuellen Tasks im Hauptspeicher gespeichert und danach werden die Registerinhalte des nächsten Tasks geladen und dieser dann an der Stelle ausgeführt, wo er zuvor unterbrochen wurde. Da das Kontext-Switching sehr oft pro Sekunde ausgeführt wird, ergibt sich daraus die Illusion, dass mehrere Tasks parallel laufen.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar