Heim  >  Artikel  >  System-Tutorial  >  Was ist ein Lightweight-Prozess? Dieser Artikel wird Ihnen ein tieferes Verständnis vermitteln

Was ist ein Lightweight-Prozess? Dieser Artikel wird Ihnen ein tieferes Verständnis vermitteln

王林
王林Original
2024-07-24 09:38:191058Durchsuche

Was ist ein Lightweight-Prozess? Dieser Artikel wird Ihnen ein tieferes Verständnis vermitteln

1. Was sind Lightweight-Prozesse?

Bevor wir Lightweight-Prozesse verstehen, benötigen wir zunächst Prozesse und Threads. Wir alle wissen, dass ein Prozess im Wesentlichen eine Sammlung von Leiterplatten-, virtuellen Adressraum-, Seitentabellen- und Codedaten ist, dh eine Sammlung von Kerneldaten + Codedaten. Aus Benutzersicht sieht es so aus. Aus CPU-Sicht ist ein Prozess die Einheit, die Systemressourcen zuweist. Threads werden innerhalb des Prozesses ausgeführt und sind die Grundeinheit von Betriebssystemaufrufen. Obwohl die CPU bei der Planung nicht weiß, welche Prozesse oder Threads (Linux-Prozess und Thread-Kernel) vorliegen, erkennt sie nur die PCB-Struktur. Das heißt, die Linux-Version des Ausführungsflusses, und dieses Ding ist ein Thread. Verschiedene Betriebssysteme können unterschiedliche Strukturformen zum Implementieren von Threads verwenden. Unter Linux sind die Struktur von Threads und die Struktur von Prozessen völlig konsistent. Dies führt dazu, dass der Videospeicher von PCB unter Linux größer oder gleich groß ist wie bei anderen Betriebssystemen. Dies führt dazu, dass das Prozessvolumen von Linux größer ist als das anderer Betriebssysteme. Diese Prozesse sind leichtgewichtige Prozesse. Der Hauptunterschied zwischen Lightweight-Prozessen (LWP) und normalen Prozessen besteht darin, dass LWPs denselben Adressraum und andere Ressourcen wie offene Dateien usw. gemeinsam nutzen. Da einige Ressourcen gemeinsam genutzt werden, gilt dieser Prozess im Vergleich zu anderen gewöhnlichen Prozessen als leichtgewichtig und trägt daher den Namen „leichtgewichtiger Prozess“.

内核进程和内核线程_linux内核多线程_linux进程与线程 内核

2. Leichte Prozess-ID und Prozess-IDlinux内核多线程_内核进程和内核线程_linux进程与线程 内核

Zuallererst ist es sicher, dass die Prozess-ID definitiv nicht die ID eines Lightweight-Prozesses ist. Nur wenn ein Prozess nur einen einzigen Ausführungsfluss hat und der Prozess zu diesem Zeitpunkt nur einen Hauptthread hat, ist die Prozess-ID und Lightweight Die Prozess-ID ist derzeit ebenfalls identisch. Es ist nur LWP, das ist dasselbe. In anderen Fällen verfügt ein Thread über einen LWP-Linux-Prozess und einen Thread-Kernel, und die CPU plant bei der Planung auch LWP linux内核多线程_linux进程与线程 内核_内核进程和内核线程

3. Die Beziehung zwischen LWP und Threads, die von pthread_create erstellt wurden

内核进程和内核线程_linux内核多线程_linux进程与线程 内核

Wenn das Programm die Funktion pthread_create() aufruft, erstellt es ein neues LWP. Dieses neue LWP wird verwendet, um den neu erstellten Thread zu implementieren und die Ressourcen desselben Prozesses mit anderen Threads zu teilen. Daher können wir den von pthread_create erstellten Thread als eine Art im Programm erstelltes LWP betrachten.

Mit anderen Worten, LWP entspricht dem von pthread_create erstellten Thread, und der von pthread_create erstellte Thread entspricht dem LWP im System.

linux进程与线程 内核_内核进程和内核线程_linux内核多线程

Das obige ist der detaillierte Inhalt vonWas ist ein Lightweight-Prozess? Dieser Artikel wird Ihnen ein tieferes Verständnis vermitteln. 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