Szukam procesu rozpoczętego w systemie Linux, który ma proces o numerze 0. Wiem, że initma PID 1, który jest pierwszym procesem w systemie Linux, czy jest jakiś proces z PID 0?
Istnieją dwa zadania ze specjalnie wyróżnianymi identyfikatorami procesów: swapper
lub harmonogram ma identyfikator procesu 0 i jest odpowiedzialny za stronicowanie , i faktycznie jest częścią jądra, a nie normalnym procesem w trybie użytkownika . Identyfikator procesu 1 jest zwykle procesem inicjującym odpowiedzialnym przede wszystkim za uruchamianie i zamykanie systemu. Początkowo identyfikator procesu 1 nie był specjalnie zarezerwowany dla init za pomocą jakichkolwiek środków technicznych: po prostu miał ten identyfikator jako naturalną konsekwencję bycia pierwszym procesem wywoływanym przez jądro. Nowsze systemy uniksowe zazwyczaj mają dodatkowe komponenty jądra widoczne jako „procesy”, w którym to przypadku PID 1 jest aktywnie zarezerwowany dla procesu init, aby zachować spójność ze starszymi systemami.
Dowody na to możesz zobaczyć, jeśli spojrzysz na nadrzędne PID (PPID) initi kthreadd:
kthreaddjest demonem wątku jądra. Wszystkie wątki są rozwidlone z tego wątku. Możesz zobaczyć dowody na to, jeśli spojrzysz na inne procesy korzystające psi sprawdzające, kto jest ich PPID:
Więc jeśli PID 0 jest zamiennikiem, to co jest kswapd[0-9]*, który w moim systemie ma obecnie PID 52? Wydaje się również odpowiedzialny za stronicowanie.
Ruslan
1
@ Ruslan - jeśli śledzisz pytania, zadaj je na głównej stronie, komentarze nie są do tego przeznaczone. Odwołaj się do tego pytania w swoim nowym pytaniu.
slm
cóż, ale kiedy tworzymy nowy proces za pomocą procesu potomnego rozwidlenia , otrzymujemy pid 0 ?
roottraveller
@roottraveller niekoniecznie, niezależnie od tego, jaki PID rodziców ma miejsce, w którym wystąpił widelec, pojawi się to.
Istnieją dwa zadania ze specjalnie wyróżnianymi identyfikatorami procesów: swapper lub harmonogram ma identyfikator procesu 0 i jest odpowiedzialny za stronicowanie, i faktycznie jest częścią jądra, a nie normalnym procesem w trybie użytkownika.
Odpowiedzi:
Ze strony wikipedii zatytułowanej: Identyfikator procesu :
Dowody na to możesz zobaczyć, jeśli spojrzysz na nadrzędne PID (PPID)
init
ikthreadd
:kthreadd
jest demonem wątku jądra. Wszystkie wątki są rozwidlone z tego wątku. Możesz zobaczyć dowody na to, jeśli spojrzysz na inne procesy korzystająceps
i sprawdzające, kto jest ich PPID:Zauważ, że oni wszyscy
2
.źródło
kswapd[0-9]*
, który w moim systemie ma obecnie PID 52? Wydaje się również odpowiedzialny za stronicowanie.Z wiki Wiki procesu identyfikacji :
źródło
Proces z
pid 0
harmonogramem,źródło