Zunächst die Definition:
Unter einem Kontextwechsel (engl. context switch) oder genauer einem Prozess-Kontextwechsel auf der CPU versteht man alle erforderlichen Tätigkeiten, um einen gerade auf der CPU aktiven Prozess A, durch einen anderen Prozess B zu ersetzen.
Diese Tätigkeiten werden vom Steuerwerk der CPU in Zusammenarbeit mit dem Betriebssystem durchgeführt.
Zu den erforderlichen Tätigkeiten gehören unter anderem:
Es ist leicht verständlich, dass jeder Kontextwechsel eine gewisse Zeit für seine Durchführung beansprucht.
Diskutiere in deiner Lerngruppe:
Um einmal ein Gefühl für Kontextwechsel zu bekommen, insbesondere im Hinblick auf deren Häufigkeit, zeigt das folgende Video einige Hintergründe unter einem handelsüblichen Microsoft Windows 7.
Wenn Sie dieses Element öffnen, werden Inhalte von externen Dienstleistern geladen und dadurch Ihre IP-Adresse an diese übertragen.
Arbeitest du auch gerade mit einem Windows-Betriebssystem?
Dann dürfte auch bei dir das Systemprogramm perfmon.exe verfügbar sein.
(Perfmon ist übrigens die Abkürzung für Performance Monitor.)
Falls du gerade kein Windows-System zur Hand hast, brauchst du diese Aufgabe natürlich nicht zu bearbeiten ;-)
Auch Linux bietet (mindestens) eine Möglichkeit, um die Anzahl der Kontextwechsel pro Sekunde statistisch zu erfassen. Dies geschieht mit Hilfe des vmstat-Kommandos. Ein Aufruf von
sorgt beispielsweise dafür, dass alle 1 Sekunden eine aktuelle Statistik ausgegeben wird, die Ausgabe wird 10 mal wiederholt.
In der Spalte cs unter system ist die aktuelle Zahl an Kontextwechseln pro Sekunde protokolliert (cs = context switch).
Weiterführende Informationen zum vmstat-Kommando liefert die zugehörige Manpage:
http://unixhelp.ed.ac.uk/CGI/man-cgi?vmstat
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png