Quelle: dotnetpro
Das eigene Betriebssystem, Teil 10 18.09.2023, 00:00 Uhr

Multitasking

Das Eigenbau-Betriebssystem lernt Multitasking.
Nachdem in der vorangegangenen Folge dieser Serie [1] die wichtigsten Vorarbeiten durchgeführt worden sind – insbesondere wurde der Datentyp der doppelt verketteten Listen eingeführt, die unter anderem für das Page Frame Tracking erforderlich sind –, geht es jetzt darum, das Multi­tasking innerhalb des Eigenbau-Betriebssystems wirklich umzusetzen. Sie haben gesehen, wie Sie doppelt verkettete Listen verwenden können, auf der anderen Seite wurde die Global Descriptor Table für die Ringe 0 und 3 initialisiert.
Zunächst soll in dieser Folge der Serie erklärt werden, was Multitasking wirklich bedeutet und welche Funktionen ein Betriebssystem dafür implementieren muss. In der aktuellen Fassung des OS-Kernels wird durch den Loader KLDR64.BIN einfach die Funktion KernelMain() im Kernel aufgerufen, welche dann von der CPU Befehl für Befehl abgearbeitet wird. Aktuell wird hier das Initialisieren des Betriebssystems vorgenommen, danach wird eine einfache Meldung am Bildschirm ausgegeben und anschließend in eine Endlosschleife verzweigt, weil der Rechner abstürzen würde, sobald weitere CPU-Instruktionen im Hauptspeicher gefunden würden.

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