3.2.3 Kontextwechsel

[gesichtete Version][gesichtete Version]
Zeile 48: Zeile 48:
** Welche Arten fallen dir ein?
** Welche Arten fallen dir ein?
** Welche positiven bzw. negativen Aspekte sind für die einzelnen Anwenderarten zu unterscheiden?
** Welche positiven bzw. negativen Aspekte sind für die einzelnen Anwenderarten zu unterscheiden?
</p>
</loop_task>
</loop_area>
</p>
<br />
== Die Statistik der Kontextwechsel unter Windows ==
<p>
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.
</p>
<p>
<loop_area icon="Video.png" icontext="Video">
<loop_media type="video" title="Kontextwechsel unter Windows 7" description="http://youtu.be/43yVqPTmsLo" copyright="CC-BY" index=true show_copyright=true>
{{#ev:youtube|43yVqPTmsLo|700}}
</loop_media>
</loop_area>
</p>
<br />
=== Aufgabe 2 ===
<p>
<loop_area type="task">
<loop_task title="Perfmon unter Windows">
<p>
Arbeitest du auch gerade mit einem Windows-Betriebssystem?<br />
Dann dürfte auch bei dir das Systemprogramm perfmon.exe verfügbar sein.<br />
<small>(''Perfmon'' ist übrigens die Abkürzung für ''Performance Monitor''.)</small>
</p>
<p>
* Starte perfmon.exe (wie im [http://youtu.be/43yVqPTmsLo Video] gezeigt) und finde heraus, wieviele Kontextwechsel pro Sekunde gerade auf deinem System stattfinden!
</p>
<p>
* Wie verändert sich die Anzahl der Kontextwechsel pro Sekunde, wenn du mehrere Programme startest und gleichzeitig ein YouTube-Video abspielst oder beispielsweise einen Radio-Stream über den Browser abrufst?
</p>
<p>
<small>Falls du gerade kein Windows-System zur Hand hast, brauchst du diese Aufgabe natürlich nicht zu bearbeiten ;-)</small>
</p>
</p>
</loop_task>
</loop_task>
Zeile 90: Zeile 54:


<br />
<br />
== Die Statistik der Kontextwechsel unter Linux ==
<p>
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
</p>
<p>
:''vmstat 1 10''
</p>
<p>
sorgt beispielsweise dafür, dass alle ''1'' Sekunden eine aktuelle Statistik ausgegeben wird, die Ausgabe wird ''10'' mal wiederholt.
</p>
<p>
[[File:cs-linux.jpg|cs-linux.jpg]]
</p>
<p>
<p>
In der Spalte ''cs'' unter ''system'' ist die aktuelle Zahl an Kontextwechseln pro Sekunde protokolliert (cs = context switch).
== So geht es weiter: ==
</p>
</p>
<p>
<p>
<small>Weiterführende Informationen zum ''vmstat''-Kommando liefert die zugehörige Manpage:<br />
<loop_area type="arrangement"><loop_toc> </loop_toc></loop_area>
http://unixhelp.ed.ac.uk/CGI/man-cgi?vmstat</small>
</p>
</p>



Version vom 22. Oktober 2014, 18:11 Uhr

Kontextwechsel

Zunächst die Definition:


Definition: Kontextwechsel

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.


Erforderliche Tätigkeiten

Zu den erforderlichen Tätigkeiten gehören unter anderem:

  • Sichere alle notwendigen Registerinformationen des scheidenden Prozesses A an einer bekannten Stelle (damit sie von dort später wiederhergestellt werden können).
  • Lade alle notwendigen Registerinformationen des neuen Prozesses B in die entsprechenden Register auf der CPU.
  • Lade alle notwendigen Befehle und Daten des neuen Prozesses B in den Cache.

Es ist leicht verständlich, dass jeder Kontextwechsel eine gewisse Zeit für seine Durchführung beansprucht.


Aufgabe 1

Aufgabe

Diskutiere in deiner Lerngruppe:

  • Ist die in einen (bzw. mehrere) Kontextwechsel investierte Zeit positiv oder negativ im Hinblick auf die Bedürfnisse eines Anwenders an das Gesamtsystem?

  • Gibt es verschiedene "Arten von Anwendern", die hier berücksichtigt werden sollten?
    • Welche Arten fallen dir ein?
    • Welche positiven bzw. negativen Aspekte sind für die einzelnen Anwenderarten zu unterscheiden?


So geht es weiter:



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png