Was ist Multitasking?
Multitasking ist die Fähigkeit eines Betriebssystems, mehrere Programme scheinbar gleichzeitig auszuführen. Du kannst gleichzeitig Musik hören, in einem Browser surfen und ein Dokument bearbeiten – das fühlt sich an, als ob alles gleichzeitig passiert.
Aber führt eine CPU wirklich alles gleichzeitig aus?
Auf einem Computer mit nur einem CPU-Kern können Programme nicht wirklich gleichzeitig ausgeführt werden. Der Prozessor wechselt so schnell zwischen den Programmen, dass es für den Benutzer wie gleichzeitiges Ausführen wirkt. Das nennt man Kontextwechsel.
Wie funktioniert Multitasking?
Das Betriebssystem teilt die CPU-Zeit in kleine Zeitscheiben auf. Jedes laufende Programm bekommt abwechselnd kurze Zeitfenster (typisch wenige Millisekunden):
Zeit: |--Word--|--Browser--|--Musik--|--Word--|--Browser--|--Musik--|
Da die Umschaltung extrem schnell passiert (tausende Male pro Sekunde), merkt der Benutzer keine Unterbrechung.
Prozesse und Threads
| Begriff | Beschreibung |
|---|---|
| Prozess | Ein laufendes Programm mit eigenem Speicherbereich |
| Thread | Ein Ausführungsstrang innerhalb eines Prozesses |
Ein Browser (ein Prozess) kann mehrere Threads haben: einer lädt eine Seite, einer spielt ein Video ab, einer wartet auf Benutzereingaben.
CPU-Scheduling
Das Scheduling bestimmt, welches Programm als nächstes CPU-Zeit bekommt. Das Betriebssystem berücksichtigt dabei:
- Priorität: Systemaufgaben haben oft höhere Priorität als normale Programme
- Fairness: Jedes Programm soll regelmäßig CPU-Zeit bekommen
- Reaktionszeit: Wichtig für interaktive Programme (schnelle Reaktion auf Klicks)
Im Task-Manager (Windows) oder Aktivitätsanzeige (Mac) kannst du alle laufenden Prozesse sehen, wie viel CPU und RAM sie verwenden, und nicht reagierende Programme beenden.
Echtes Multitasking mit mehreren Kernen
Mit mehreren CPU-Kernen können Programme wirklich gleichzeitig ausgeführt werden – jeder Kern verarbeitet einen anderen Prozess. Bei 4 Kernen können 4 Programme gleichzeitig laufen, ohne Zeitscheiben aufteilen zu müssen.
import threading
import time
def aufgabe(name, dauer):
print(f"{name} gestartet")
time.sleep(dauer)
print(f"{name} beendet")
# Zwei Threads gleichzeitig starten (simuliertes Multitasking)
t1 = threading.Thread(target=aufgabe, args=("Aufgabe A", 2))
t2 = threading.Thread(target=aufgabe, args=("Aufgabe B", 1))
t1.start()
t2.start()
t1.join()
t2.join()
print("Alle Aufgaben abgeschlossen!")
Probleme beim Multitasking
Deadlock
Zwei Programme warten jeweils darauf, dass das andere eine Ressource freigibt – es passiert nichts mehr. Wie zwei Autos, die sich gegenseitig blockieren.
Race Condition
Zwei Threads greifen gleichzeitig auf dieselben Daten zu und verändern sie – das Ergebnis ist unvorhersehbar.
Zu viele Programme gleichzeitig zu öffnen kann den Computer verlangsamen. Das Betriebssystem muss mehr RAM verwalten und häufiger zwischen Programmen wechseln. Schließe Programme, die du nicht brauchst.
Übungsaufgaben
Erkläre in eigenen Worten, warum ein Computer mit nur einem CPU-Kern trotzdem Multitasking betreiben kann. Benutze das Beispiel der Zeitscheiben.
Antwort anzeigen
Was ist der Unterschied zwischen einem Prozess und einem Thread? Nenne ein Beispiel, bei dem ein Programm mehrere Threads nutzt.