Jaka jest różnica między aplikacją, procesem i usługami?

47

Jakie są zasadniczo różne „rzeczy” w systemie Windows?

Czy wszystkie działające procesy nie są procesami?

Wygląda na to, że każda aplikacja ma skojarzony proces, który wyłącza ją, jeśli zostanie zamknięta. Wygląda na to, że jeden proces może zarządzać więcej niż jedną instancją aplikacji. I Usługi, nie jestem nawet pewien, jakie dokładnie są.

Czy same nie przetwarzają?

Justin L.
źródło

Odpowiedzi:

71

Zarówno aplikacje, jak i usługi mają powiązane z nimi procesy.

Aplikacja jest programem, który interakcję ze na pulpicie . To właśnie spędzasz prawie cały swój czas na komputerze. Internet Explorer, Microsoft Word, iTunes, Skype - wszystkie są aplikacjami.

Proces jest przykładem wykonywalnego ( .exepliku programu) uruchomiony. Dana aplikacja może mieć kilka procesów działających jednocześnie. Na przykład niektóre nowoczesne przeglądarki, takie jak Google Chrome, uruchamiają kilka procesów jednocześnie, przy czym każda karta jest w rzeczywistości osobną instancją / procesem tego samego pliku wykonywalnego. W niektórych przypadkach skomplikowane aplikacje mogą mieć wiele procesów; na przykład program Visual Studio uruchamia osobny proces podczas kompilowania kodu od momentu wyświetlenia IDE. Jednak najczęściej dana aplikacja działa z jednego procesu; na przykład, bez względu na to, ile okien słowa Microsoft jest otwarte, uruchomiona jest tylko jedna instancja winword.exe.

Usługa jest procesem, który działa w tle i nie wchodzi w interakcje z pulpitem. W systemie Windows usługi prawie zawsze działają jako instancja svchost.exeprocesu, proces hosta usługi systemu Windows; jednak zdarzają się wyjątki.

Czasami procesy mogą działać w tle bez interakcji z pulpitem, ale bez instalacji jako usługa. Robi to wiele sterowników urządzeń z ulepszonymi funkcjami. Na przykład sterownik touchpada zwykle ma proces, który uruchamia się, gdy użytkownik loguje się i obsługuje specjalne funkcje touchpada, ale nie jest usługą i nie pokazuje użytkownikowi żadnych okien.

Czasami aplikacja może zależeć od określonej usługi. Drukowanie z dowolnego programu wymaga, aby usługa bufora wydruku była aktywna. Pakiety instalacyjne ( .msiinstalatory) wymagają uruchomienia usługi instalatora systemu Windows. Programy antywirusowe zwykle wykorzystują usługę, dzięki czemu mogą kontynuować działanie, nawet gdy użytkownik nie jest zalogowany.

Procesy zwykle kończą się, gdy aplikacja jest zamknięta, jednak nie zawsze tak jest. Niektóre programy, szczególnie programy do pobierania i tworzenia kopii zapasowych, mogą nadal działać w tle bez wyświetlania okien. Przykładem może być również antywirus - oprócz korzystania z usługi wiele aplikacji antywirusowych uruchamia proces w tle, wyświetlając aplikację tylko wtedy, gdy wymagane jest działanie.

nhinkle
źródło
4
Jaka jest zatem różnica między cichym procesem a usługą Windows? Przepraszam, jestem nowy!
Subin Jacob
1
Usługa będzie miała więcej uprawnień niż normalny proces, ponieważ działa jako proces systemu Windows, a nie proces użytkownika.
Gilles Lesire,
9

Zarówno aplikacje, jak i usługi są procesami. Aplikacje są przeznaczone do interakcji z jednym użytkownikiem, podczas gdy usługi działają w całym systemie, ale nie wchodzą w interakcje z użytkownikami bezpośrednio.

Ignacio Vazquez-Abrams
źródło
Większość usług Windows działa jako svchost.exe, ale nie widziałem zbyt wielu usług innych niż Windows, które działają. Należy zauważyć, że Sysinternal's Process Explorer może być użyty do ustalenia, które usługi w konsoli MMC Services są hostowane przez określoną svchost.exe.
LawrenceC
1

Usługa to zazwyczaj aplikacja działająca w tle, która jest uruchamiana podczas uruchamiania systemu Windows. zwykle wykonuje pewne zadania, których używa zainstalowane aplikacje lub sam system Windows.

Samodzielna aplikacja to zwykły program (a.exe). Samodzielny zwykle odnosi się do pojedynczego pliku wykonywalnego, który może być uruchamiany sam.

Większe programy, takie jak Word, wymagają wielu różnych plików do uruchomienia.

Enamul Kabir
źródło