TASK_INTERRUPTIBLE 상태로 태스크가 휴면하게 되면

dalant019의 이미지

시그널에 응답할 수 있다고 하는데, 어떻게 가능한지 모르겠습니다. 시그널 핸들러는 응용의 컨텍스트에서 실행되는 코드가 아닌가요? 커널 문맥으로 실행된다면 응용의 코드가 그 문맥에서 실행된다고 말할 수 있는 것은 아닌지...
리눅스 커널에 대해서 조금씩 조금씩 배워가고 있는데 아직까지의 얕은 지식으로는 이해가 되지 않는 부분들이 많아서 이렇게 질문을 드립니다.
그럼 항상 건강하세요.

pastime의 이미지

프로세스에게 시그널이 전달되고 이 프로세스가 해당 시그널을 block 하고 있지 않다면 signal_wake_up() 함수가 실행됩니다.
다음은 <kernel/signal.c> 의 specific_send_sig_info() 함수 중 일부입니다.

868         ret = send_signal(sig, info, t, &t->pending);
869         if (!ret && !sigismember(&t->blocked, sig))
870                 signal_wake_up(t, sig == SIGKILL);

signal_wake_up() 함수는 해당 프로세스가 TASK_INTERRUPTIBLE 상태라면
(두번째 인자에 따라서 다른 상태일때도) 깨우게 됩니다.

583 void signal_wake_up(struct task_struct *t, int resume)
584 {
585         unsigned int mask;
586 
587         set_tsk_thread_flag(t, TIF_SIGPENDING);
588 
589         /*
590          * For SIGKILL, we want to wake it up in the stopped/traced case.
591          * We don't check t->state here because there is a race with it
592          * executing another processor and just now entering stopped state.
593          * By using wake_up_state, we ensure the process will wake up and
594          * handle its death signal.
595          */
596         mask = TASK_INTERRUPTIBLE;
597         if (resume)
598                 mask |= TASK_STOPPED | TASK_TRACED;
599         if (!wake_up_state(t, mask))
600                 kick_process(t);
601 }

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.