Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was sind die Zustände des Linux-Prozesses?

Was sind die Zustände des Linux-Prozesses?

青灯夜游
青灯夜游Original
2022-04-12 19:33:1412867Durchsuche

Es gibt 5 Zustände: 1. Ausführbarer Zustand; 3. Unterbrechbarer Wartezustand; 5. Abgebrochener Zustand; Der Statuswert des „ausführbaren Status“ ist TASK_RUNNING. Zu diesem Zeitpunkt wurde das Programm in die Ausführungswarteschlange gestellt und befindet sich in einem betriebsbereiten Status. Sobald es das Recht zur Verwendung des Prozessors erhält, kann es ausgeführt werden Zustand.

Was sind die Zustände des Linux-Prozesses?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Eine spezielle Datenstrukturinstanz, die vom Betriebssystem definiert und vom Betriebssystem gesteuert wird, wird als Prozess bezeichnet. Es ist mit dem Benutzercode verbunden, verfügt über einen unabhängigen Speicherplatz, der für die Ausführung des Codes erforderlich ist, und läuft nach dem Zeitplan des Schedulers unter Verwendung der ihm zugewiesenen Prozessorzeitscheibe.

5 Zustände des Linux-Prozesses

Im Linux-System kann ein Prozess, nachdem er erstellt wurde, die folgenden 5 Zustände im System haben. Der aktuelle Status des Prozesses wird im Statuselement des Prozesssteuerungsblocks aufgezeichnet.

Bereitschaftszustand und Laufzustand (ausführbarer Zustand)

Der Wert des Status-Flag-Zustands des Bereitschaftszustands ist TASK_RUNNING. Zu diesem Zeitpunkt wurde das Programm in die Ausführungswarteschlange gestellt und kann ausgeführt werden. Sobald das Recht zur Nutzung des Prozessors erlangt wurde, kann dieser in den Betriebszustand wechseln.

Wenn der Prozess den Prozessor erhält und ausgeführt wird, ist der Statuswert immer noch TASK_RUNNING und ändert sich nicht; Linux zeigt jedoch einen Zeigerstrom an, der speziell zum Verweisen auf die aktuell laufende Aufgabe verwendet wird, um anzuzeigen, dass es sich um einen laufenden Prozess handelt. .

Unterbrechbarer Wartezustand

Der Wert des Status-Flag-Status ist TASK_INTERRUPTIBL. Zu diesem Zeitpunkt befindet sich der Prozess im Wartezustand, da er die angeforderten Ressourcen nicht erhalten hat. Sobald die Ressource verfügbar ist oder ein Wecksignal vorliegt, beendet der Prozess das Warten sofort und wechselt in den Bereitschaftszustand.

Unterbrechungsfreier Wartezustand

Der Wert des Status-Flag-Status ist TASK_UNINTERRUPTIBL. Zu diesem Zeitpunkt wartet der Prozess auch auf Ressourcen. Sobald die Ressource verfügbar ist, geht der Prozess sofort in den Bereitschaftszustand über. Der Unterschied zwischen diesem Wartezustand und dem unterbrechbaren Wartezustand besteht darin, dass ein Prozess im Zustand TASK_UNINTERRUPTIBL nicht durch ein Semaphor oder einen Interrupt geweckt werden kann und nur dann geweckt werden kann, wenn die Ressourcen, die er beantragt, gültig sind.

Dieser Status wird in bestimmten Szenarien im Kernel verwendet, z. B. wenn der Prozess Lese- und Schreibvorgänge auf der Festplatte durchführen muss und die Daten in den Speicher im DMA kopiert werden. Wenn der Prozessschlaf zu diesem Zeitpunkt unterbrochen wird ( (z. B. ein erzwungenes Ausgangssignal) ), dann ist es wahrscheinlich, dass Probleme auftreten, so dass sich der Prozess zu diesem Zeitpunkt in einem Zustand befindet, der nicht unterbrochen werden kann.

Stop-Status

Der Wert des Status-Flag-Status ist TASK_STOPPED. Wenn der Prozess ein SIGSTOP-Signal empfängt, wechselt er vom laufenden Zustand in den gestoppten Zustand. Wenn er ein SIGCONT-Signal empfängt, kehrt er in den laufenden Zustand zurück. Dieser Zustand wird hauptsächlich zum Debuggen von Programmen verwendet und wird auch als „Pause-Zustand“ oder „Suspend-Zustand“ bezeichnet.

Abbruchstatus

Der Wert des Status-Flag-Status ist TASK_DEAD. Der Prozess stoppt aus irgendeinem Grund und alle vom Prozess belegten Ressourcen werden recycelt, mit Ausnahme der task_struct-Struktur (und einiger Ressourcen), und das System achtet nicht mehr darauf, daher wird dieser Zustand auch als a bezeichnet „Zombie-Zustand“ und der Prozess wird zum Zombie-Prozess.

Während des gesamten Lebenszyklus eines Prozesses kann dieser zwischen 5 Zuständen wechseln. Die Konvertierungsbeziehung zwischen den fünf Zuständen des Linux-Prozesses ist in der folgenden Abbildung dargestellt:

Was sind die Zustände des Linux-Prozesses?

Verwandte Empfehlungen: „Linux Video Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die Zustände des Linux-Prozesses?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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