SIGRETURN
Posts
2 posts[리눅스커널][시그널] 시그널 전달과 처리는 어떻게 할까?
이번 소절에서 분석할 소스 코드를 보면 리눅스 커널이 배경 작업으로 시그널 처리를 위해 얼마나 정교하게 코드 구현이 됐는지 알 수 있습니다. slow_work_pending 레이블에서 do_work_pending() 함수를 브랜치하는 코드를 이전 소절에서 알아봤습니다. 이번에는 do_work_pending() 함수부터 시그널을 처리하는 handle_signal() 함수까지 살펴봅니다. get_signal() 함수 분석 get_signal() 함수를 분석하기 앞서 do_work_pending() 함수를 보겠습니다.[https://elixir.bootlin.com/linux/v4.19.30/source/arch/arm/kernel/signal.c]1 asmlinkage int2 do_work_pending
[라즈베리파이] 시그널 - 시그널 핸들러 실행 및 커널 복귀 과정
signal은 특정 프로세스에게 어떤 메시지를 전달할 수 있는 가장 기본적인 수단입니다.signal은 다른 (user-level) 프로세스로부터 직접적으로 받거나 혹은 (주로 문제가 될 만한 동작으로인해) 커널로부터 받을 수 있습니다. 이러한 signal은 kernel-mode에서 처리가 되는데 주로 시스템 콜이나 인터럽트 처리 등을 마치고 user-mode로 돌아오기 직전에 해당 프로세스에게 전달된 signal이 있는지 검사하여 실행됩니다.(SMP 커널에서는 user-mode에서 실행 중인 프로세스가 signal을 처리해야 하면 강제로 scheduling하도록 IPI를 보내서 kernel-mode로 들어오게 만들기도 합니다.) signal을 받은 프로세스의 기본적인 반응은 거의 대부분 해당 프로세스의


