Windows 7에서 PID 0과 4 사이에 어떤 프로세스가 있습니까?


답변:


34

NT 커널 핸들 테이블의 작동 방식으로 인해 프로세스 ID 1,2 또는 3이 없습니다.

핸들은 항상 4의 배수입니다. 커널 핸들 프로세스 오브젝트는 프로세스 핸들 및 프로세스 / 스레드 ID 모두에 사용됩니다. 핸들 값은 모두 0x4 (비트 2) 에서 시작하며 InitialSystemProcess는 가장 먼저 생성되는 프로세스이므로 PID는 4가됩니다. 유휴 프로세스는 실제로 프로세스가 아니므로 열 수 없습니다. 아마도 실제 PID는 없지만 대부분의 도구는 0으로 간주합니다.

Windows NT 7에서는 PsInitialSystemProcess에 연결된 경우 커널 핸들 만 참조하면되기 때문에 NT3-5 (xp)에만 정확하지만 NT 핸들 테이블 에 대한 자세한 내용은 여기를 참조하십시오.

Mark Russinovich의 Windows 7/8 핸들 제한에 대한 추가 정보

PID의 "4의 배수"에 대한 추가 정보


6
흠 그게 전부 흥미, 난 모든 PID를 4로 나누어 있다고 결코 실현되지
agz

그들이 PID를 위해 미리 곱셈 된 배열 인덱스를 사용한 것처럼 들린다
ratchet freak

아직도 궁금합니다 .4와 200 사이의 모든 PID는 여전히 어떻습니까?
agz

@agz : 4에서 200 사이의 숫자 (및 그 이상)는 소위 시스템 프로세스에서 스레드에 의해 반영구적으로 사용됩니다. 프로세스 및 스레드 ID (일반적으로 "클라이언트 ID"라고 함)는 동일한 "숫자 공간"에서 가져옵니다. 프로세스 탐색기에서 스레드 ID를 볼 수 있습니다. 프로세스를 두 번 클릭 한 다음 결과 "속성"창의 스레드 탭을 확인하십시오.
Jamie Hanrahan

0

Process Explorer 시스템 프로세스-특성-스레드 분할 창에서 4-200 이상의 프로세스를 모두 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.