|
|
(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> |
|
| |
|
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