← 질문 목록
#370깊이 0

SIGKILL 시그널은 왜 프로세스에서 캡처하거나 무시할 수 없는가?

운영체제

운영체제 커널프로세스 제어권을 넘기지 않고 직접 종료를 처리하기 때문이다.

  1. 일반 시그널커널

    핸들러를 등록해 캡처하거나 무시한다

  2. 커널프로세스

    사용자 공간 핸들러를 실행한다

  3. SIGKILL커널

    커널이 수신 즉시 프로세스를 파괴한다

일반 시그널은 커널이 프로세스의 사용자 공간으로 전달한다. 프로세스는 핸들러를 실행해 시그널을 무시하거나 따로 처리한다. 반면 SIGKILL과 SIGSTOP은 커널 내부에서 핸들러 재정의를 허용하지 않도록 차단되어 있다.

응답 불능에 빠진 프로세스가 있더라도 관리자가 시스템을 제어할 수 있어야 해서다. 모든 시그널을 프로세스가 무시할 수 있다면 제어 불능 상태가 된다. SIGKILL은 시스템 안정성을 지키는 최후의 통제 수단이다.

SIGKILL로 종료되면 사용자 공간의 정리 작업은 거치지 못한다. 애플리케이션 버퍼에 남은 데이터는 잃는다. 대신 파일 디스크립터나 메모리 같은 OS 자원은 커널이 빠짐없이 회수한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

SIGKILL 시그널은 왜 프로세스에서 캡처하거나 무시할 수 없는가?