줘이리의 인생적기

시그널(signal) 본문

공부/시스템 프로그래밍

시그널(signal)

줘이리 2021. 12. 22. 23:00
728x90

시그널(signal)은 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지 알려주는 기법이다.

Ctrl + C로 프로세스를 종료시키거나, Ctrl + Z 로 프로세스를 중지시키는 것이 시그널 사용의 예이다.

 

시그널 종류는 kill -l 명령어를 통해 알 수 있다.

 

SIGKILL 프로세스 죽이는 시그널

SIGALARM 알람 발생시키는 시그널

SIGSTP 프로세스 멈추는 시그널

SIGCONT 멈춰있는 프로세스 다시 실행시키는 시그널

SIGSEGV 프로세스가 다른 메모리영역 침범 시그널

 

각 프로세스에서 시그널 처리에 대해 동작 설정이 가능하다

 - 시그널을 무시하게

 - 시그널을 블럭시키게(블럭 풀어지면 프로세스에서 시그널 처리)

 - 프로그램 안에 등록된 시그널 핸들러로 재정의한 특정 동작 수행하게

 - 등록된 시그널 핸들러가 없다면 커널에서 기본 동작 수행하게

 

시그널은 PCB에서 관련 정보를 관리한다.

커널모드에서 사용자 모드 전환시에 시그널 정보를 확인해서 처리한다.

 

'공부 > 시스템 프로그래밍' 카테고리의 다른 글

쉘 스크립트  (0) 2021.12.27
tar  (0) 2021.12.24
프로세스 우선순위 변경  (0) 2021.12.20
fork, exec, wait / copy-on-write / exit  (0) 2021.12.17
프로세스 ID, 프로세스 생성  (0) 2021.12.15