Detaillierte Erläuterung des Prozessmanagements im Linux-System

Detaillierte Erläuterung des Prozessmanagements im Linux-System

1. Das Konzept von Prozess und Thread

Quelle: Baidu Enzyklopädie:

Ein Prozess ist die Ausführung eines Programms in einem Computer auf einem bestimmten Datensatz. Er ist die Grundeinheit für die Ressourcenzuweisung und -planung im System und die Grundlage der Betriebssystemstruktur. In modernen threadorientierten Computerarchitekturen sind Prozesse Container für Threads. Ein Programm ist eine Beschreibung von Anweisungen, Daten und ihrer Organisationsform, und ein Prozess ist die Entität eines Programms. Es handelt sich um die Ausführung eines Programms in einem Computer auf einem bestimmten Datensatz. Es ist die Grundeinheit für die Ressourcenzuweisung und -planung des Systems und die Grundlage der Betriebssystemstruktur. Ein Programm ist eine Beschreibung von Anweisungen, Daten und ihrer Organisationsform, und ein Prozess ist die Entität eines Programms.

Ein Thread ist die kleinste Einheit, für die ein Betriebssystem Operationen planen kann. Es ist im Prozess enthalten und stellt die eigentliche Betriebseinheit des Prozesses dar. Ein Thread bezeichnet einen einzelnen sequentiellen Kontrollfluss in einem Prozess. In einem Prozess können mehrere Threads gleichzeitig ausgeführt werden, und jeder Thread führt unterschiedliche Aufgaben parallel aus.

2. Was ist Prozessmanagement?

Was genau ist ein Prozess?

Ein Prozess ist ein Programm oder ein Befehl, der ausgeführt wird. Jeder Prozess ist eine laufende Einheit, hat seinen eigenen Adressraum und belegt bestimmte Systemressourcen.

Was ist also ein Programm?
Ein Programm ist eine Sammlung von Codes, die von Menschen in einer Computersprache geschrieben werden, um ein bestimmtes Ziel zu erreichen oder ein bestimmtes Problem zu lösen.

Sagen wir es anders:

Ein Programm ist eine Sammlung ausführbarer Codes, die von Menschen in einer Computersprache geschrieben wurden und bestimmte Funktionen ausführen können. Ein Prozess ist ein Programm, das aktuell ausgeführt wird. Wenn ein Programm ausgeführt wird, werden die Berechtigungen und Attribute des Ausführenden sowie der Programmcode in den Speicher geladen. Das Betriebssystem weist dem Prozess eine ID-Nummer zu, die wir PID (Prozess-ID) nennen.

3. Die Rolle des Prozessmanagements

Bestimmen Sie den Integritätsstatus des Servers: Die Hauptaufgabe des Betriebs- und Wartungsingenieurs besteht darin, den sicheren und stabilen Betrieb des Servers sicherzustellen. Im Idealfall kann bei einem Problem auf dem Server das menschliche Eingreifen das Problem lösen, bevor es zum Absturz des Servers oder zur Einstellung des Dienstes führt. Die Hauptaufgabe des Prozessmanagements besteht darin, festzustellen, ob der Server derzeit einwandfrei läuft und ob ein menschliches Eingreifen erforderlich ist. Wenn die CPU- und Speicherauslastung des Servers zu hoch sind, ist ein menschliches Eingreifen erforderlich, um das Problem zu lösen.

Alle Prozesse im System anzeigen: Wir müssen alle laufenden Prozesse im System anzeigen. Durch diese Prozesse können wir feststellen, welche Dienste im System ausgeführt werden und ob illegale Dienste ausgeführt werden.

Einen Prozess beenden: Dies ist die am wenigsten verbreitete Methode der Prozessverwaltung. Wenn ich einen Dienst beenden muss, beende ich ihn, indem ich den Befehl zum ordnungsgemäßen Beenden ausführe ( apache Dienst kann beispielsweise mit service httpd stop beendet werden). Nur wenn die richtigen Mittel zum Beenden des Prozesses fehlschlagen, sollten Sie den Befehl kill verwenden, um den Prozess zu beenden (Sie sind kein Killer. Beenden Sie nicht alle Prozesse mit kill, da dies sonst leicht zum Absturz des Servers führen kann).

4. Mehrere Zustände des Linux-Prozesses

D : Ein Ruhezustand, der nicht aufgeweckt werden kann; wird normalerweise in I/O -Situationen verwendet.

R : Der Vorgang läuft.

S : Der Prozess befindet sich im Ruhemodus und kann geweckt werden.

T : Stoppzustand, der möglicherweise im Hintergrund angehalten ist oder der Prozess sich im Debugzustand befindet.

W : Speicherinteraktionsstatus (ab Kernel 2.6 ungültig).

X : Toter Prozess (sollte nicht erscheinen).

Z : Zombie-Prozess. Der Prozess wurde beendet, Teile davon befinden sich jedoch noch im Speicher.

< : Hohe Priorität (der folgende Status wird im BSD-Format angezeigt).

N : Niedrige Priorität.

L : Im Speicher gesperrt.

s : Unterprozesse einschließen.

l : Multithreaded (kleines L).

+ : Im Hintergrund.

5. Die Beziehung zwischen Prozessen und Threads

(1) Beziehung zwischen Threads und Prozessen

Beispielsweise werden auf dem Computer 200 Prozesse gleichzeitig ausgeführt:

Konzept von Thread und Prozess: Jeder Prozess enthält mindestens einen Thread, und diese Threads teilen sich den Ressourcenbereich des Prozesses. Wenn sich der Thread ändert, ändert sich nur der CPU-Ausführungsprozess, und die Ressourcen, die dem Prozess gehören, werden nicht geändert. Ebenso enthält ein Programm mindestens einen Prozess. Die kleinste Einheit zum Ausführen von Vorgängen in einem Prozess und auch die Grundeinheit zum Ausführen der Prozessorplanung: Jeder Prozess hat seinen eigenen Adressraum und seine eigenen Ressourcen wie Speicher, E/A und CPU. Threads im selben Prozess teilen sich den Adressraum des Prozesses. Können sie dann den Adressraum anderer Prozesse verwenden? Dies ist offensichtlich nicht zulässig. Aufgrund der Unabhängigkeit der Prozesse wirkt sich ein Absturz eines Prozesses nicht auf andere Prozesse im geschützten Modus aus. Die Grundeinheit der Ressourcenzuweisung, die Grundeinheit der Betriebsplanung und die Einheit der gleichzeitigen Ausführung im System.

Im Vergleich der beiden Planungen im selben Prozess führt das Umschalten des Threads nicht zum Umschalten des Prozesses.
Wenn ein Thread eines Prozesses zu einem Prozess eines anderen Threads wechselt, wird ein Prozesswechsel verursacht. Gleichzeitigkeit: Prozesse können gleichzeitig ausgeführt werden, und Threads innerhalb eines Prozesses können ebenfalls gleichzeitig ausgeführt werden. Eigene Ressourcen: Im Allgemeinen besitzt ein Thread seine eigenen Ressourcen nicht, er kann jedoch in seinem eigenen Prozess auf die Ressourcen zugreifen. Beispielsweise können von einem Prozess geöffnete Dateien von anderen Threads im Prozess gemeinsam genutzt werden.

(2) Zusammenfassung

Fassen wir kurz zusammen:

Prozess: bezieht sich auf eine Anwendung, die im System ausgeführt wird. Sobald ein Programm ausgeführt wird, wird es zu einem Prozess. Ein Prozess ist die kleinste Einheit der Ressourcenzuweisung. Thread: Die grundlegende Einheit zur Zuweisung von Prozessorzeitressourcen durch das System oder ein Ausführungsablauf, der unabhängig innerhalb eines Prozesses ausgeführt wird. Ein Thread ist die kleinste Einheit der Programmausführung.

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung des Prozessmanagements im Linux-System. Weitere relevante Inhalte zum Linux-Prozessmanagement finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Linux-Betrieb und -Wartung, grundlegendes Prozessmanagement, Echtzeitüberwachung und -steuerung
  • Grundlegendes Prozessmanagement und Analyse der Umgebungszusammensetzung bei Linux-Betrieb und -Wartung
  • Tutorial zur Installation und Konfiguration des Linux-Prozessmanagement-Tools Supervisor

<<:  CSS zur Realisierung der Einzelauswahl-Faltmenüfunktion

>>:  Erfahrungsaustausch durch einen Frontend-Supervisor mit 7 Jahren Praxiserfahrung

Artikel empfehlen

MySQL 8.X Installations-Tutorial unter Windows

Zuvor habe ich MySQL 5.7 verwendet, aber da MySQL...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Verständnis und Lösungen für 1px-Linien in der mobilen Entwicklung

Gründe, warum die 1px-Linie dicker wird Wenn wir ...

Detailliertes Tutorial zur Installation von ElasticSearch 6.4.1 auf CentOS7

1. Laden Sie das ElasticSearch 6.4.1-Installation...

Spezifischer Einsatz von Routing Guards in Vue

Inhaltsverzeichnis 1. Globale Wache 1.1 Globaler ...

JavaScript-Farbbetrachter

In diesem Artikelbeispiel wird der spezifische Ja...

Möglichkeiten zur Verbesserung der MongoDB-Leistung

MongoDB ist eine Hochleistungsdatenbank, bei der ...

Detaillierte Erläuterung der MySQL-Filterreplikationsideen

Inhaltsverzeichnis MySQL gefilterte Replikation I...

Lassen Sie Ihren Text mit dem Marquee-Attribut in HTML tanzen

Syntax: <marquee> …</marquee> Mithilfe...

Beispielerklärung der Alarmfunktion in Linux

Einführung in die Linux-Alarmfunktion Oben genann...