‘소통 시그널 시스템’ 은 프로세스 간 또는 운영체제와 프로세스 간의 효과적인 통신을 위한 중요한 메커니즘입니다. 이 시스템의 주요 특징과 기능은 다음과 같습니다.
- 시그널의 정의와 목적
- 시그널의 특징
- 주요 시그널 종류
- 시그널 처리 방식
- 시그널 처리 과정
시그널의 정의와 목적
시그널은 프로세스나 운영체제가 다른 프로세스에게 특정 이벤트의 발생을 알리는 비동기적 메시지입니다. 주요 목적은 다음과 같습니다:
- 프로세스 간 통신(IPC) 실현
- 예기치 못한 상황에 대한 알림
- 프로세스 동작 제어 (종료, 일시 중지 등)
시그널의 특징
- 비동기성: 프로세스의 현재 상태와 관계없이 언제든 전달될 수 있습니다.
- 중단성: 실행 중인 프로세스를 일시적으로 중단시킬 수 있습니다.
- 제한된 데이터 전송: 일반적으로 작은 크기의 데이터만 전달 가능합니다.
주요 시그널 종류
- SIGKILL (9): 프로세스를 강제 종료합니다. 무시할 수 없습니다.
- SIGINT (2): 프로세스에 인터럽트를 보냅니다. 주로 Ctrl+C로 발생합니다.
- SIGTERM (15): 프로세스를 정상적으로 종료합니다. 기본 종료 시그널입니다.
- SIGSTOP (19): 프로세스를 일시 정지시킵니다. 무시할 수 없습니다.
시그널 처리 방식
프로세스는 시그널을 받았을 때 다음과 같은 방식으로 처리할 수 있습니다.
- 시그널 무시
- 시그널 블록 (나중에 처리)
- 사용자 정의 시그널 핸들러 실행
- 기본(default) 동작 수행
시그널 처리 과정
- 시그널 발생 시 프로세스의 PCB(Process Control Block)에 있는 pending 큐에 저장됩니다.
- 프로세스가 실행될 때 (컨텍스트 스위치 후) pending 큐를 확인합니다.
- blocked 상태가 아닌 시그널에 대해 정의된 동작을 수행합니다.
‘소통 시그널 시스템’은 운영체제와 프로세스 간의 효율적인 통신을 가능하게 하여 시스템의 안정성과 유연성을 높이는 중요한 역할을 합니다. 이를 통해 프로그래머는 다양한 상황에 대응하고 프로세스를 더욱 세밀하게 제어할 수 있게 됩니다.