3.2.3 Kontextwechsel

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Kontextwechsel=
<p>
Zunächst die Definition:
Zunächst die Definition:
</p>
</p>
Zeile 7: Zeile 5:
== Definition: Kontextwechsel ==
== Definition: Kontextwechsel ==
<p>
<p>
<loop_index>Kontextwechsel|CPU, Kontextwechsel|Prozess-Kontextwechsel|Kontextwechsel, Prozess|Context switch</loop_index>
<loop_index id="5fa97866771aa">Kontextwechsel</loop_index><loop_index id="5fa97866a667a">CPU, Kontextwechsel</loop_index><loop_index id="5fa97866a6682">Prozess-Kontextwechsel</loop_index><loop_index id="5fa97866a6687">Kontextwechsel, Prozess</loop_index><loop_index id="5fa97866a668c">Context switch</loop_index>
<loop_area type="definition">
<loop_area type="definition">
<p>
<p>
Zeile 37: Zeile 35:
<p>
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="Sind Kontextwechsel positiv oder negativ?">
<loop_task title="Sind Kontextwechsel positiv oder negativ?" id="5fa97866771b2">
<p>
<p>
Diskutiere in deiner Lerngruppe:
Diskutiere in deiner Lerngruppe:
Zeile 51: Zeile 49:
</loop_task>
</loop_task>
</loop_area>
</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>
</loop_task>
</loop_area>
</p>
<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>
In der Spalte ''cs'' unter ''system'' ist die aktuelle Zahl an Kontextwechseln pro Sekunde protokolliert (cs = context switch).
</p>
<p>
<small>Weiterführende Informationen zum ''vmstat''-Kommando liefert die zugehörige Manpage:<br />
http://unixhelp.ed.ac.uk/CGI/man-cgi?vmstat</small>
</p>
</p>



Aktuelle Version vom 10. November 2020, 13:38 Uhr

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?



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