Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Kontextaustausch: spezifische Schritte

Kontextaustausch: spezifische Schritte

PHP中文网
Freigeben: 2017-06-20 13:25:45
Original
2416 Leute haben es durchsucht

Kontextwechsel (Kontextwechsel), in der Computerterminologie auch als Umgebungswechsel bekannt, ist eine Möglichkeit, den Zustand (Kontext) der CPU zu speichern und zu rekonstruieren. Dadurch können mehrere Prozesse den Rechenprozess einer einzelnen CPU-Ressource gemeinsam nutzen. Wenn Sie Prozesse auf der CPU austauschen möchten, müssen Sie zunächst den Status des aktuellen Prozesses speichern und dann den Status des auszuführenden Prozesses zurück in die CPU lesen.

Wann soll ausgetauscht werden?

Es gibt drei mögliche Situationen, in denen ein Kontextaustausch stattfindet, nämlich:

Multitasking

Am häufigsten kommt es vor, dass in einigen Planungsalgorithmen eine Fahrt manchmal vorübergehend die CPU verlassen muss, damit eine andere Fahrt eintreffen und auf der CPU ausgeführt werden kann. In einem präventiven Multiplexsystem wird jede Fahrt der Reihe nach für eine variable Zeitspanne ausgeführt. Diese Zeiträume werden als Zeitscheiben bezeichnet. Wenn der Prozess die CPU nicht freiwillig aufgibt (z. B. muss der Prozess bei der Durchführung von E/A-Vorgängen das Recht zur Nutzung der CPU aufgeben), generiert das System nach Ablauf der Zeitbegrenzung einen zeitgesteuerten Interrupt Das Betriebssystem plant die Ausführung anderer Prozesse. Dieser Mechanismus wird verwendet, um sicherzustellen, dass die CPU nicht durch Prozesse monopolisiert wird, die stärker auf Prozessoroperationen angewiesen sind. Wenn kein geplanter Interrupt vorliegt, wird der Prozess weiter ausgeführt, es sei denn, er gibt freiwillig die CPU auf. Bei Fahrten mit vielen E/A-Anweisungen kann es oft nicht lange dauern, bis sie die CPU verbrauchen müssen, während Fahrten, die stärker auf den Prozessor angewiesen sind, vergleichsweise weniger E/A-Vorgänge haben, die CPU aber weiterhin nutzen können , ein Phänomen bildend. Dies ist der Convoy-Effekt.

Interrupt-Verarbeitung

Beim Empfang eines Interrupts (Interrupt) muss die CPU einen Kontextwechsel durchführen.

Austausch des Benutzermodus oder des Kernelmodus

Wenn der Austausch des Benutzermodus und des Kernelmodus erfolgt, ist kein Kontextaustausch und der Benutzermodus erforderlich Kernelmodus Der Austausch selbst ist kein Kontextaustausch. Abhängig vom Betriebssystem wird zu diesem Zeitpunkt jedoch manchmal ein Kontextaustauschschritt durchgeführt.

Kontextaustausch:Spezifische Schritte

Bei einem Austausch sollte der Status der ersten Fahrt irgendwo festgehalten werden, damit beim Planen Wenn Sie zu dieser Reiseroute zurückkehren, können Sie diese erneut erstellen und den Vorgang fortsetzen.

Der sogenannte „Status des Prozesses“ umfasst hier alle von diesem Prozess verwendeten Register, insbesondere den Programmzähler sowie alle spezifischen Daten, die möglicherweise vom Betriebssystem benötigt werden. Diese Daten werden im Allgemeinen in einer Datenstruktur gespeichert, die als Prozesssteuerungsblock (PCB) bezeichnet wird.

Kontextaustausch: implementiert durch Software oder Hardware

Kontextaustausch kann unterteilt werden in hauptsächlich implementiert durch Software oder implementiert durch Hardware. Einige CPUs, wie z. B. Intel 80386 oder höherwertige Prozessoren derselben Serie, verfügen über Hardwaredesigns, die Kontextwechsel unterstützen.


Das obige ist der detaillierte Inhalt vonKontextaustausch: spezifische Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage