Was ist der Unterschied zwischen Leichtbau und Gewinde?

9

Ich habe eine Antwort auf die Frage hier gefunden. Aber ich verstehe einige Ideen in der Antwort nicht. Zum Beispiel teilt der leichtgewichtige Prozess seinen logischen Adressraum mit anderen Prozessen. Was heißt das? Ich kann die gleiche Situation mit 2 Threads verstehen: Beide teilen sich einen Adressraum, so dass beide beliebige Variablen aus dem BSS-Segment lesen können (zum Beispiel). Aber wir haben viele verschiedene Prozesse mit verschiedenen bss-Abschnitten und ich weiß nicht, wie ich sie alle teilen soll.

    
Allok 07.05.2012, 15:00
quelle

3 Antworten

1

Von MSDN Threads und Prozesse :

  

Prozesse existieren im Betriebssystem und entsprechen welchen Benutzern   siehe Programme oder Anwendungen. Ein Thread existiert dagegen   innerhalb eines Prozesses. Aus diesem Grund wird manchmal auf Threads verwiesen   als leichte Prozesse. Jeder Prozess besteht aus einem oder mehreren   Themen.

    
IAbstract 07.05.2012, 16:46
quelle
5

Ich bin mir nicht sicher, ob die Antworten hier richtig sind, also lass mich meine Version veröffentlichen.

Es gibt einen Unterschied zwischen Prozess - LWP (leichtgewichtiger Prozess) und Benutzer-Thread. Ich werde die Prozessdefinition beiseite lassen, da diese mehr oder weniger bekannt ist und sich auf LWP vs user threads konzentrieren. LWP ist was im Wesentlichen heute Threads genannt werden. Ursprünglich bedeutete Benutzer-Thread einen Thread, der von der Anwendung selbst verwaltet wird, und der Kernel weiß nichts darüber. LWP hingegen ist eine Einheit der Planung und Ausführung durch den Kernel.

Beispiel: Nehmen wir an, dass auf dem System 3 andere Prozesse ausgeführt werden und die Planung Round-Robin ohne Prioritäten ist. Und Sie haben 1 Prozessor / Kern.

Option 1 . Sie haben 2 Benutzer-Threads mit einem LWP. Das bedeutet, dass Sie aus Sicht des Betriebssystems eine Planungseinheit haben. Insgesamt laufen 4 LWP (3 andere + 1 deiner). Dein LWP erhält 1/4 der gesamten CPU-Zeit und da du 2 Benutzer-Threads hast, erhält jeder von ihnen 1/8 der gesamten CPU-Zeit (abhängig von deiner Implementierung)

Option2 . Du hast 2 LWP. Aus Sicht des Betriebssystems verfügen Sie über zwei Planungseinheiten. Insgesamt laufen 5 LWP. Ihr LWP erhält 1/5 der gesamten CPU-Zeit und Ihre Anwendung bekommt 2/5 der CPU.

Ein weiterer grober Unterschied - LWP hat pid (Prozess-ID), Benutzer-Threads nicht.

Aus irgendeinem Grund wurde die Benennung wenig durcheinander gebracht und wir bezeichnen LWP als Threads.

Es gibt definitiv mehr Unterschiede, aber bitte, siehe Folien. Ссылка

BEARBEITEN:

Nach dem Posten habe ich einen guten Artikel gefunden, der alles detaillierter erklärt und besser in Englisch ist als ich schreibe. Ссылка

    
Tigran 28.11.2016 15:36
quelle
0

Ein Prozess enthält einen oder mehrere Threads und ein Thread kann alles tun, was ein Prozess tun kann. Auch Threads in einem Prozess teilen sich den gleichen Adressraum, da die Kommunikation zwischen den Threads sehr gering ist, da sie den gleichen Codeabschnitt, den gleichen Datenabschnitt und dieselben Betriebssystemressourcen verwendet, sodass diese alle Features des Threads zu einem "leichtgewichtigen Prozess" machen / p>     

Piyush Chandra 26.04.2015 10:51
quelle