좀비 프로세스 란 무엇입니까?

좀비 프로세스는 실행이 완료되었지만 프로세스 테이블 레코드를 유지하는 컴퓨터 프로그램의 인스턴스입니다. 이와 같은 기능이없는 프로세스는 일반적으로 자식 프로세스를 처리하는 방식으로 인해 Unix® 및 기타 유사한 운영 체제와 연관됩니다. 하위 프로세스 실행이 완료되면 일반적으로 상위 프로세스가 프로세스 테이블에서 제거해야합니다. 일반적으로 kill 명령을 사용하여 좀비 프로세스를 직접 제거 할 수는 없지만 운영자가 신호 하위 (SIGCHLD) 알림을 사용하는 경우 상위를 제거 할 수 있습니다. 이를 실패하면 부모를 죽이면 좀비 프로세스를 간접적으로 제거 할 수 있습니다.

좀비 과정은 죽은자를 가리키는 은유 적 설명 용어입니다. 더 이상 의도 된 기능을 수행하지 않아도 프로세스 테이블 존재를 유지한다는 점에서 Unix® 및 이와 유사한 운영 체제의 기능이없는 프로세스는 좀비와 유사하다고 볼 수 있습니다. 프로세스가 실행을 마치면 프로세스가 종료되었다고 말하지만 운영 체제가 프로세스 테이블 할당을 복구하는 수단을 수확이라고합니다. 좀비의 부모 프로세스는 기술적으로 자식을 거두어야하지만 항상 그런 것은 아닙니다.

좀비 프로세스의 존재가 의도적이거나 원하는 경우가 있습니다. 자식 프로세스가 실행을 중단 한 후에는 부모가 나중에 같은 프로그램의 다른 인스턴스를 실행해야 할 수도 있습니다. 프로세스 테이블에서 좀비를 제거하지 않은 경우 새 자식에 이전 자식과 동일한 ID (ID)가 할당되지 않습니다. 특정 프로그램은 이러한 종류의 차별화를 통해 혜택을 받거나 심지어 요구할 수도 있습니다.

상위 프로세스가 담당하는 좀비를 거두기 위해 wait 명령을 실행하지 않은 경우 강제로 문제를 일으킬 수 있습니다. 이는 일반적으로 kill 명령을 통해 수행되며 SIGCHLD 신호를 상위 프로세스로 전송합니다. 모든 것이 제대로 작동하면이 신호를받는 부모 프로세스는 좀비 자식을 가져 와서 ID와 프로세스 테이블 위치를 재사용 할 수 있어야합니다.

특정 상황에서 상위 프로세스는 SIGCHLD 신호를 무시할 수 있습니다. 이 상황이 발생하고 조작자가 여전히 프로세스 테이블을 지우 길 원하면 상위 프로세스가 종료 될 수 있습니다. 부모 프로세스가 생성 한 모든 좀비는 초기화 프로세스의 자식으로 지정됩니다. init는 주기적으로 자식에서 대기 명령을 시작하기 때문에 담당하는 좀비는 결국 프로세스 테이블에서 제거됩니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?