Najlepsza odpowiedź
Program , Proces i Wątki to trzy podstawowe pojęcia dotyczące systemów operacyjnych, z którymi każdy inżynier informatyki musi się zapoznać . Tutaj wyjaśnię, o co w każdym z nich chodzi i czym się od siebie różnią.
Co to jest program?
Program to plik wykonywalny zawierający zestaw instrukcji napisanych w celu wykonania określonego zadania na twoim komputerze. Na przykład notepad.exe jest plikiem wykonywalnym zawierającym zestaw instrukcji, które pomagają nam edytować i drukować pliki tekstowe.
Programy nie są przechowywane w pamięci podstawowej komputera. Są przechowywane na dysku lub w dodatkowej pamięci komputera. Są wczytywane do pamięci podstawowej i wykonywane przez jądro. Program jest czasami określany jako element pasywny , ponieważ znajduje się w pamięci dodatkowej.
Co to jest proces?
Proces to wykonywana instancja programu. Na przykład po dwukrotnym kliknięciu ikony notatnika na komputerze zostanie uruchomiony proces, który uruchomi program notatnika.
Proces jest czasami określany jako aktywny element , ponieważ znajduje się w pamięci podstawowej i opuszcza pamięć po ponownym uruchomieniu systemu. Z tym samym programem może być związanych kilka procesów. Na przykład możesz uruchomić wiele wystąpień programu notatnika. Każda instancja jest określana jako proces.
Co to jest wątek ?
Wątek jest najmniejszą wykonywalną jednostką procesu. Na przykład, kiedy uruchamiasz notatnik, system operacyjny tworzy proces i rozpoczyna wykonywanie głównego wątku tego procesu.
Proces może mieć wiele wątków. Każdy wątek będzie miał własne zadanie i własną ścieżkę wykonania w procesie. Na przykład w notatniku jeden wątek będzie pobierał dane od użytkownika, a inny będzie drukował dokument.
Wszystkie wątki tego samego procesu współużytkują pamięć tego procesu. Ponieważ wątki tego samego procesu korzystają z tej samej pamięci, komunikacja między nimi jest szybka.
Podsumowując…
Mam nadzieję, że już teraz rozumiesz różnice między programem, procesem i wątkiem, a także odkryłeś związek między nimi… Jeśli nie, dowiedz się poniżej.
Program to wspaniały zestaw procesów, ale proces to super zestaw wątków.
Miłej nauki !!!
Zdjęcie dzięki uprzejmości: www.google.com
Odpowiedź
- Program : Program to nic innego jak zbiór wszystkich instrukcji, które wymagają wykonania określonej pracy, przed wykonaniem muszą zostać przekonwertowane na kody binarne, które powinny być zrozumiałe dla systemu ładującego. jak plik EXE, który jest przechowywany w Portable Executable (PE) Formatowanie w pamięci dodatkowej Jak dysk twardy. Proces jest zwykle definiowany jako instancja działającego Programu i składa się z dwóch komponentów: 1) Obiekt jądra, którego system operacyjny używa do zarządzania procesem. Obiekt jądra jest również miejscem, w którym system przechowuje informacje statystyczne o procesie. 2) Przestrzeń adresowa, która zawiera cały kod i dane modułu wykonywalnego lub DLL. Zawiera również dynamiczne alokacje pamięci, takie jak stosy wątków i alokacje sterty. Procesy są obojętne. Aby proces mógł cokolwiek osiągnąć, musi mieć wątek, który działa w swoim kontekście; ten wątek jest odpowiedzialny za wykonanie kodu zawartego w przestrzeni adresowej procesu. W rzeczywistości pojedynczy proces może zawierać kilka wątków, z których wszystkie wykonują kod „jednocześnie” w przestrzeni adresowej procesu. Aby to zrobić, każdy wątek ma swój własny zestaw rejestrów procesora i swój własny stos. Każdy proces ma co najmniej jeden wątek, który wykonuje kod w przestrzeni adresowej procesu. Gdyby w przestrzeni adresowej procesu nie było wątków wykonujących kod, nie byłoby powodu, aby proces nadal istniał, a system automatycznie zniszczyłby proces i jego przestrzeń adresową.
- Proces : Każdy proces zapewnia zasoby potrzebne do wykonania programu. Proces ma wirtualną przestrzeń adresową, kod wykonywalny, otwarte uchwyty do obiektów systemowych, kontekst bezpieczeństwa, unikalny identyfikator procesu, zmienne środowiskowe, klasa priorytetu, minimalne i maksymalne rozmiary zestawów roboczych oraz co najmniej jeden wątek wykonania. Każdy proces jest uruchamiany z pojedynczym wątkiem, często nazywanym wątkiem podstawowym, ale może tworzyć dodatkowe wątki z dowolnego z jego wątków .
- Wątek : Wątek to jednostka w procesie, którą można zaplanować do wykonania. Wszystkie wątki procesu współdzielą jego wirtualną przestrzeń adresową i zasoby systemowe. Ponadto każdy wątek przechowuje procedury obsługi wyjątków, priorytet planowania, lokalną pamięć wątku, unikalny identyfikator wątku oraz zestaw struktur, których system będzie używał do zapisywania kontekstu wątku, dopóki nie zostanie zaplanowany. Kontekst wątku zawiera zestaw rejestrów maszynowych wątku, stos jądra, blok środowiska wątku i stos użytkownika w przestrzeni adresowej procesu wątku. Wątki mogą również mieć swój własny kontekst bezpieczeństwa, którego można używać do podszywania się pod klientów.