Beste Antwort
Programm , Process und Threads sind drei Grundkonzepte der Betriebssysteme, mit denen jeder Informatiker vertraut sein muss . Hier werde ich erklären, worum es bei jedem von ihnen geht und wie sie sich voneinander unterscheiden.
Was ist ein Programm?
Programm ist eine ausführbare Datei, die Anweisungen enthält, die zum Ausführen eines bestimmten Auftrags auf Ihrem Computer geschrieben wurden. Beispielsweise ist notepad.exe eine ausführbare Datei, die Anweisungen enthält, mit denen wir die Textdateien bearbeiten und drucken können.
Programme sind nicht im Primärspeicher Ihres Computers gespeichert. Sie werden auf einer Festplatte oder einem Sekundärspeicher Ihres Computers gespeichert. Sie werden in den Primärspeicher eingelesen und vom Kernel ausgeführt. Ein Programm wird manchmal als passive Entität bezeichnet, da es sich in einem sekundären Speicher befindet.
Was ist ein Prozess?
Prozess ist eine ausführende Instanz eines Programms. Wenn Sie beispielsweise auf ein Notizblock-Symbol auf Ihrem Computer doppelklicken, wird ein Prozess gestartet, der das Notizblock-Programm ausführt.
Ein Prozess wird manchmal als aktive Entität , da sie sich im Primärspeicher befindet und den Speicher verlässt, wenn das System neu gestartet wird. Mehrere Prozesse können sich auf dasselbe Programm beziehen. Sie können beispielsweise mehrere Instanzen eines Notizblockprogramms ausführen. Jede Instanz wird als Prozess bezeichnet.
Was ist ein Thread? ?
Thread ist die kleinste ausführbare Einheit eines Prozesses. Wenn Sie beispielsweise ein Editorprogramm ausführen, erstellt das Betriebssystem einen Prozess und startet die Ausführung des Hauptthreads dieses Prozesses.
Ein Prozess kann mehrere Threads haben. Jeder Thread hat seine eigene Aufgabe und seinen eigenen Ausführungspfad in einem Prozess. In einem Notizblockprogramm nimmt beispielsweise ein Thread Benutzereingaben entgegen und ein anderer Thread druckt ein Dokument.
Alle Threads desselben Prozesses teilen sich den Speicher dieses Prozesses. Da Threads desselben Prozesses denselben Speicher verwenden, ist die Kommunikation zwischen den Threads schnell.
Zusammenfassung…
Ich hoffe, Sie sind jetzt mit den Unterschieden zwischen Programm, Prozess und Thread klar und haben auch die Beziehung zwischen ihnen entdeckt … Wenn nicht, finden Sie es heraus unten.
Das Programm ist ein super Prozess, während, Prozess ist ein super Satz von Threads.
Viel Spaß beim Lernen !!!
Mit freundlicher Genehmigung des Bildes: www.google.com
Antwort
- Programm : Das Programm ist nichts anderes als der Satz aller Anweisungen, die zur Ausführung eines bestimmten Auftrags erforderlich sind. Bevor sie ausgeführt werden, müssen sie in Binärcodes konvertiert werden, die von Loader OS OS.Generally in Windows verstanden werden sollten wie EXE-Datei, die in Portable Executable (PE) gespeichert ist Format auf dem Sekundärspeicher Wie eine Festplatte. Ein Prozess wird normalerweise als Instanz eines laufenden Programms definiert und besteht aus zwei Komponenten: 1) Ein Kernelobjekt, mit dem das Betriebssystem den Prozess verwaltet. Im Kernel-Objekt speichert das System auch statistische Informationen über den Prozess. 2) Ein Adressraum, der den gesamten Code und die Daten der ausführbaren Datei oder des DLL-Moduls enthält. Er enthält auch dynamische Speicherzuordnungen wie Thread-Stapel und Heap-Zuweisungen. Prozesse sind inert. Damit ein Prozess etwas erreichen kann, muss er einen Thread haben, der wird in seinem Kontext ausgeführt. Dieser Thread ist für die Ausführung des im Adressraum des Prozesses enthaltenen Codes verantwortlich. Tatsächlich kann ein einzelner Prozess mehrere Threads enthalten, die alle Code „gleichzeitig“ im Adressraum des Prozesses ausführen. Zu diesem Zweck verfügt jeder Thread über einen eigenen Satz von CPU-Registern und einen eigenen Stapel. Jeder Prozess verfügt über mindestens einen Thread Ein Thread, der Code im Adressraum des Prozesses ausführt. Wenn es keine Threads gäbe, die Code im Adressraum des Prozesses ausführen, gäbe es keinen Grund dafür, dass der Prozess weiterhin existiert, und das System würde den Prozess und seinen Adressraum automatisch zerstören.
- Prozess : Jeder Prozess stellt die zum Ausführen eines Programms erforderlichen Ressourcen bereit. Ein Prozess verfügt über einen virtuellen Adressraum, ausführbaren Code, offene Handles für Systemobjekte, einen Sicherheitskontext und einen eindeutigen Prozesskennung, Umgebungsvariablen, eine Prioritätsklasse, minimale und maximale Arbeitssatzgrößen und mindestens ein Ausführungsthread. Jeder Prozess wird mit einem einzelnen Thread gestartet, der häufig als primärer Thread bezeichnet wird, kann jedoch aus jedem seiner Threads zusätzliche Threads erstellen .
- Thread : Ein Thread ist eine Entität innerhalb eines Prozesses, deren Ausführung geplant werden kann. Alle Threads eines Prozesses teilen sich den virtuellen Adressraum und die Systemressourcen. Darüber hinaus verwaltet jeder Thread Ausnahmebehandlungsroutinen, eine Planungspriorität, einen lokalen Thread-Speicher, eine eindeutige Thread-ID und eine Reihe von Strukturen, mit denen das System den Thread-Kontext speichert, bis er geplant ist. Der Thread-Kontext enthält den Satz von Maschinenregistern des Threads, den Kernel-Stack, einen Thread-Umgebungsblock und einen Benutzer-Stack im Adressraum des Thread-Prozesses. Threads können auch einen eigenen Sicherheitskontext haben, der zum Identitätswechsel von Clients verwendet werden kann.