Schlüsseltechnologie

Die IT hat unser Leben in den letzten Jahrzehnten von Grund auf verändert. Aber wie funktioniert sie wirklich? Das möchte ttimeless mal erklärt bekommen. Zum Glück hat Xyrill Antworten.

https://schluesseltechnologie-podcast.de/

subscribe
share






episode 15: STP015: Multitasking in Betriebssystemen


Um viele Dinge gefühlt gleichzeitig tun zu können, ist die Computertechnik einen weiten Weg gegangen. In der heutigen Folge halten wir viele lose Fäden in der Hand und ständig merkt Xyrill, dass dies und jenes ja auch noch notwendig ist, um zum Ziel zu kommen: Zu Multitasking.

Shownotes
  • Vorbemerkung: Begriffsklärung Programm vs. Prozess

    • Programm: ein bestimmtes Stück Maschinencode, das zumeist auf der Festplatte vorgehalten wird
    • Prozess: eine bestimmte Laufzeitinstanz eines Programms
    • Prozess = Programm + zugehörige Daten im Speicher + zugehörige Berechtigungen etc.
  • Multitasking: Ausführung mehrerer Aufgaben zur selben Zeit oder abwechselnd in kurzen Zeitabschnitten

    • konkurrente Ausführung: abwechselnd in kurzen Zeitabschnitten
    • parallelle Ausführung: zur selben Zeit (z.B. Parallelbearbeitung mehrerer Daten in der GPU, Parallelität in mehreren CPU-Kernen); heute nicht so sehr im Fokus
  • Analogie: Multitasking beim Menschen

    • Idee 1: tatsächlich parallele Ausführung, z.B. gehen und gleichzeitig sprechen
    • Idee 2: Teilaufgaben an einer jeweils sinnvollen Stelle unterbrechen und während der Wartezeiten etwas anderes machen, z.B. Kochen/Backen (entspricht dem kooperativen Multitasking)
    • Idee 3: Teilaufgaben nach einer bestimmten Zeit oder bei äußeren Ereignissen unterbrechen, z.B. Büroarbeit (entspricht dem präemptiven Multitasking)
  • kooperatives Multitasking: Prozesse unterbrechen sich selbst, wenn sich abzeichnet, dass sie warten müssen

    • z.B. auf das Lesen von Daten von der Festplatte oder eine Antwort aus dem Netzwerk
    • Problem 1: jedes Programm muss Unterbrechungspunkte enthalten
    • Problem 2: unkooperative Programme (z.B. fehlerhafte oder Schadsoftware) können das gesamte System blockieren
    • weit verbreitet in der Ära der frühen Heimcomputer (C64, DOS-PCs, Macs bis Mac OS 9)
    • heute nicht mehr im Einsatz, da moderne Prozessoren interruptfähig sind und somit präemptives Multitasking möglich ist
  • präemptives Multitasking: Prozesse werden nach dem Ablauf ihrer zugeteilten Zeitscheibe unterbrochen, damit jemand anderes drankommen kann

    • bevor der Prozess drankommt, stellt das Betriebssystem einen Hardware-Timer in der CPU
    • nach Ablauf des Timers löst die CPU einen Interrupt (eine Unterbrechung) aus
    • CPU unterbricht die Arbeit am Prozess und führt eine vom Betriebssystem definierte ISR (Interrupt Service Routine) aus
    • ISR speichert den Zustand des Prozesses (insb. die Inhalte aller Prozessor-Register) und gibt die Ausführung zurück an den Scheduler
    • um Prozess später wiederherzustellen, werden im Prinzip einfach alle Prozessor-Register auf die gesicherten Werte zurückgesetzt
  • Scheduler (Zeitplaner): Komponente des Betriebssystems, die den jeweils nächsten Prozess wählt, der laufen darf

    • interne Buchführung des Schedulers unterscheidet zwischen lauffähigen und nicht lauffähigen Prozessen
    • ist ein laufender Prozess nicht mehr lauffähig (weil auf I/O gewartet werden muss), kann er auch selbst einen Interrupt auslösen und wird dann im Scheduler als nicht lauffähig markiert
    • nächster Prozess wird immer aus der Liste der lauffähigen Prozesse gewählt, nach Kriterien wie Priorität (z.B. Audio-Prozesse)
    • gibt es keinen lauffähigen Prozess, kann die CPU bis zum nächsten Interrupt angehalten werden
  • Wie werden Prozesse wieder lauffähig?

    • Eingabe von der Hardwareseite (z.B. Netzwerk, Festplatte) erzeugt ebenfalls Interrupts, auf die das Betriebssystem reagiert
    • Eingabe von anderen Prozessen (z.B. via Pipes) landet direkt beim Betriebssystem
    • Betriebssystem stellt die Daten dem entsprechenden Prozess bereit und markiert diesen wieder als lauffähig
    • analog bei vollgelaufenen Ausgabepuffern


fyyd: Podcast Search Engine
share








 February 17, 2022  1h10m