Exception과 시그널에 대해서 간단히 알아보자.

edward·2025년 11월 14일

Exception의 4가지 종류

  • Interrupt: 외부 하드웨어에 의해서 인스트럭션들 사이에 발생하는 비동기적 예외 상황 (타이머 인터럽트, 입출력 장치)
  • Trap: 인스트럭션 직후에 발생하는 의도적인 예외 상황 (시스템 콜)
  • Fault: 인스트럭션 실행 중에 발생하는 동기적 예외 상황 (page fault, segmentation fault, divide by zero fault)
  • Abort: 주로 하드웨어에서 발생하는 복구 불가능한 예외 상황

시그널


이런 예외 상황에 대해서 커널이 핸들러를 실행하고 그 후 프로세스가 특정 조치를 취해야한다고 판단이 되면,
커널은 프로세스에게 시그널을 보내고 프로세스는 이에 대해서 default action을 취하거나 signal handler를 실행한다.
시그널은 도착 순서를 보장하지 않으며 같은 시그널이 여러번 도착해도 1번만 처리한다는 특징이 있다.
따라서 시그널 핸들링은 매우 주의해서 해야한다.

profile
there ain't no shortcuts

0개의 댓글