Linux 커널에 대해 알아보세요:
Unix 신호는 메커니즘을 제공합니다.시스템 이벤트 프로세스에 알림. 각 이벤트에는 일반적으로 기호 상수(예: SIGTERM)로 참조되는 고유한 신호 번호가 있습니다. 시스템 이벤트에는 두 가지 유형이 있습니다.
비동기 알림예를 들어, 사용자는 터미널에서 인터럽트 키 코드(보통 Ctrl-C)를 눌러 인터럽트 신호 SIGINT를 포그라운드 프로세스로 보낼 수 있습니다.
알림 동기화예를 들어 프로세스가 유효하지 않은 주소의 메모리 위치에 액세스하면 커널은 SIGSEGV 신호를 프로세스에 보냅니다.
그리고
... 일반적으로 말하면,프로세스는 신호 전달에 응답할 수 있습니다.두 가지 가능한 방법이 있습니다:
• 이 신호를 무시하십시오.
•비동기식지정된 프로시저(신호 처리기)를 실행합니다.
비동기식과 동기식의 의미를 알고 싶습니다.
- 시스템 이벤트를 프로세스에 알리고
- 신호에 반응하나요?
감사해요.
답변1
비동기식은 다음에 프로그램이 실행될 때 신호가 전달되고 포착된다는 것을 의미합니다(무시되지 않은 경우). 이는 일반적으로 다른 프로세스(예: via kill
, like SIGINT
또는 SIGSTOP
)에서 보낸 신호를 나타냅니다.
동기는 프로그램이 실행 중이므로(즉, 스케줄러의 상태가 실행 중이므로) 신호가 즉시 전달된다는 것을 의미합니다. 일반적으로 이는 프로그램 실행의 직접적인 결과이며 신호는 커널(예 SIGILL
: SIGSEGV
...)에 의해 전송됩니다.