PID가 0인 프로세스는 무엇입니까?

PID가 0인 프로세스는 무엇입니까?

프로세스 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

관련 정보