리눅스에서 시그널을 처리할 때.... 보니깐~
글쓴이: dalant019 / 작성시간: 토, 2006/04/29 - 12:52오후
시그널 핸들러의 실행을 담당하는 쓰레드(프로세스)가 있는 것 같더라고요~
아래와 같이 프로그램을 짜면
1. 제가 메인 쓰레드와 서브 쓰레드를 만들고 메인 쓰레드에서 시그널을 등록함(Ctrl-C)
2. 시그널 핸들러는 간단히 "hello world\n" 문장을 출력함
3. 프로그램을 실행하고 Ctrl-C를 누름
4. "hello world"가 두번 출력됨
이렇게 되더라구요.
ps를 하면 관련 프로세스가 3개더라구요. rt_sig라고 보이는 게 시그널 핸들러를 실행하는 프로세스인 것 같은데...
이 결과의 원인을 메인 쓰레드를 위해 시그널 쓰레드가 시그널 핸들러를 실행하고 서브 쓰레드를 위해서도 그렇게 해서 된거라고 말할 수 있을까요?
요새 커널을 만들려고 열심히 이론 공부 중입니다... 끝까지 화이팅하겠습니다... ^^
Forums:
댓글 달기