프로세스 ID 0으로 Linux에서 시작된 프로세스를 찾고 있습니다. PID 1이 있고 Linux의 첫 번째 프로세스인 것으로 알고 있습니다 init
. PID 0을 가진 프로세스가 있습니까?
답변1
다음 제목의 Wikipedia 페이지에서:프로세스 식별자:
특별히 구별되는 프로세스 ID를 가진 두 가지 작업이 있습니다.교환기 또는예정됨프로세스 ID는 0이며 다음을 담당합니다.페이징, 실제로는 커널의 일부이며 일반 커널이 아닙니다.사용자 모드프로세스. 프로세스 ID 1은 일반적으로내부에프로세스는 주로 시스템 시작 및 종료를 담당합니다. 처음에 프로세스 ID 1은 기술적 조치에 의해 init 전용으로 예약되지 않았습니다. 단순히 커널이 호출한 첫 번째 프로세스의 자연스러운 결과로 이 ID를 갖게 되었습니다. 최신 Unix 시스템에는 "프로세스"로 간주할 수 있는 추가 커널 구성 요소가 있는 경우가 많습니다. 이 경우 PID 1은 이전 시스템과의 일관성을 유지하기 위해 init 프로세스용으로 적극적으로 예약됩니다.
init
및 의 상위 PID(PPID)를 보면 이에 대한 증거를 볼 수 있습니다 kthreadd
.
$ ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun24 ? 00:00:02 /sbin/init
root 2 0 0 Jun24 ? 00:00:00 [kthreadd]
kthreadd
커널 스레드 데몬입니다. 모든 kthread는 이 스레드에서 파생됩니다. 다른 프로세스를 사용하고 해당 PPID가 누구인지 확인하면 ps
이에 대한 증거를 볼 수 있습니다 .
$ ps -eaf
root 3 2 0 Jun24 ? 00:00:57 [ksoftirqd/0]
root 4 2 0 Jun24 ? 00:01:19 [migration/0]
root 5 2 0 Jun24 ? 00:00:00 [watchdog/0]
root 15 2 0 Jun24 ? 00:01:28 [events/0]
root 19 2 0 Jun24 ? 00:00:00 [cpuset]
root 20 2 0 Jun24 ? 00:00:00 [khelper]
주의하세요, 그들은 모두 입니다 2
.
답변2
~에서프로세스 식별자위키피디아:
특수 프로세스 ID를 가진 두 가지 작업이 있습니다. swapper 또는 sched는 프로세스 ID 0을 갖고 페이징을 담당하며 실제로 일반 사용자 모드 프로세스가 아닌 커널의 일부입니다.
답변3
이와 관련된 프로세스 pid 0
는 스케줄러입니다.
프로세스 ID 설명:
0 스케줄러
1 init 프로세스
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd