Was ist der Unterschied zwischen einer Anwendung, einem Prozess und Diensten?

47

Wie sind diese grundlegend unterschiedlichen "Dinge" unter Windows?

Laufen nicht alle Dinge Prozesse?

Es scheint, dass jeder Anwendung ein Prozess zugeordnet ist, der sie herunterfährt, wenn sie herunterfährt. Ein Prozess kann anscheinend mehr als eine Anwendungsinstanz verwalten. Und Services, ich bin mir nicht mal sicher, was sie genau sind.

Sind sie nicht Prozesse selbst?

Justin L.
quelle

Antworten:

71

Mit Anwendungen und Diensten sind Prozesse verknüpft.

Eine Anwendung ist ein Programm, mit dem Sie auf dem Desktop interagieren . Dies ist, was Sie fast die ganze Zeit auf dem Computer verbringen. Internet Explorer, Microsoft Word, iTunes, Skype - alles Anwendungen.

Ein Prozess ist eine Instanz einer bestimmten ausführbaren Datei ( .exeProgrammdatei), die ausgeführt wird. In einer bestimmten Anwendung können mehrere Prozesse gleichzeitig ausgeführt werden. Beispielsweise führen einige moderne Browser wie Google Chrome mehrere Prozesse gleichzeitig aus, wobei jeder Tab tatsächlich eine separate Instanz / ein separater Prozess derselben ausführbaren Datei ist. In einigen Fällen können komplizierte Anwendungen mehrere Prozesse haben. Beispielsweise führt Visual Studio einen separaten Prozess aus, wenn Code kompiliert wird, von dem Zeitpunkt an, an dem die IDE angezeigt wird. In den meisten Fällen wird eine bestimmte Anwendung jedoch über einen einzelnen Prozess ausgeführt. Unabhängig von der Anzahl der geöffneten Microsoft Word-Fenster wird beispielsweise nur eine einzige Instanz von winword.exeausgeführt.

Ein Dienst ist ein Prozess, der im Hintergrund ausgeführt wird und nicht mit dem Desktop interagiert. In Windows werden Dienste fast immer als Instanz des svchost.exeProzesses ausgeführt, des Windows-Diensthostprozesses. Es gibt jedoch manchmal Ausnahmen.

Manchmal werden Prozesse im Hintergrund ausgeführt, ohne mit dem Desktop zu interagieren, aber ohne als Dienst installiert zu werden. Viele Gerätetreiber mit erweiterten Funktionen tun dies. Beispielsweise hat ein Touchpad-Treiber normalerweise einen Prozess, der ausgeführt wird, wenn sich ein Benutzer anmeldet und die speziellen Funktionen des Touchpads ausführt, aber kein Dienst ist und dem Benutzer keine Fenster anzeigt.

Manchmal hängt eine Anwendung von einem bestimmten Dienst ab. Für das Drucken aus einem beliebigen Programm muss der Druckerspoolerdienst aktiv sein. Installationspakete ( .msiInstaller) setzen voraus, dass der Windows Installer-Dienst ausgeführt wird. Antivirenprogramme verwenden normalerweise einen Dienst, damit sie weiter ausgeführt werden können, auch wenn der Benutzer nicht angemeldet ist.

Prozesse werden normalerweise beendet, wenn eine Anwendung geschlossen wird. Dies ist jedoch nicht immer der Fall. Einige Programme, insbesondere Download- und Sicherungsprogramme, werden möglicherweise weiterhin im Hintergrund ausgeführt, ohne dass Fenster angezeigt werden. Antivirus ist auch ein Beispiel dafür. Zusätzlich zur Verwendung eines Dienstes führen viele Antivirus-Anwendungen einen Prozess im Hintergrund aus, der dem Benutzer nur dann eine Anwendung anzeigt, wenn eine Aktion erforderlich ist.

nhinkle
quelle
4
Was ist dann der Unterschied zwischen einem stillen Prozess und einem Windows-Dienst? Entschuldigung, ich bin neu!
Subin Jacob
1
Ein Dienst hat mehr Rechte als ein normaler Prozess, da er als Windows-Prozess und nicht als Benutzerprozess ausgeführt wird.
Gilles Lesire
9

Sowohl Anwendungen als auch Dienste sind Prozesse. Anwendungen sollen mit einem einzelnen Benutzer interagieren, wohingegen Dienste systemweit funktionieren, aber nicht direkt mit Benutzern interagieren.

Ignacio Vazquez-Abrams
quelle
Die meisten Windows-Dienste werden als ausgeführt svchost.exe, aber ich habe nicht zu viele Nicht-Windows-Dienste gesehen, die dies tun. Es sollte beachtet werden, dass der Prozess-Explorer von Sysinternal verwendet werden kann, um zu bestimmen, welche Dienste in der Dienste-MMC-Konsole von einem bestimmten gehostet werden svchost.exe.
LawrenceC
1

Ein Dienst ist normalerweise eine Hintergrundanwendung, die beim Starten von Windows ausgeführt wird. In der Regel werden Aufgaben ausgeführt, die von installierten Anwendungen oder von Windows selbst verwendet werden.

Eine eigenständige Anwendung ist nur ein normales Programm (a.exe). Eigenständig bezieht sich normalerweise auf eine einzelne ausführbare Datei, die von selbst ausgeführt werden kann.

Für größere Programme wie Word sind viele verschiedene Dateien erforderlich.

Enamul Kabir
quelle