리눅스 커널에서 시그널도 태스크인가요?

dragon01254의 이미지

최근에 리눅스 커널을 공부하고 있는 학생입니다.

태스크와 시그널에 관해 공부하던 중 의문이 생겼습니다.
태스크 간에 사건의 발생을 알리는 방법을 시그널이라고 하는 건 알겠는데, 이 시그널은 어떻게 처리되는 지 잘 모르겠습니다.

수신 태스크에서는 task_struct의 queue에 넣어놨다가, 커널->유저 모드 변환이 이루어질 때 do_signal 커널 API를 이용해 signal을 수행한다는 것은 이해를 했습니다. 그런데 signal 전송 태스크에서는 signal을 코드를 통해 전송하는지, 인터럽트를 통해 하는지, 시그널 핸들러를 통해 하는지 잘 모르겠습니다.

또한 시그널을 전송할 때 쓰는 sys_kill() 이 전송 태스크에서 쓰는 시그널 핸들러인지 궁금합니다.

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com