Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

175162
807
85243


[라즈베리파이] 시그널 - 시그널을 받으면 프로세스 어떻게 반응할까? 12장. 시그널

시그널을 전달받은 프로세스는 어떤 동작을 할까요? 크게 2가지 동작을 수행합니다.
1> 시그널을 무시한다.
말 그대로 아무런 동작을 하지 않습니다.  하지만 SIGKILL, SIGSTOP 과 같은 시그널은 프로세스가 무시할 수 없습니다. 특정 상황에서 지정한 프로세스를 반드시 종료해야 하는 상황이 있기 때문입니다.

2> 시그널에 명시된 동작을 수행합니다.
시그널 핸들러로 등록된 시그널 핸들러 함수를 실행하고 시그널 별로 명시된 동작을 수행합니다.
대부분 시그널을 받으면 프로세스가 취하는 액션은 프로세스 종료입니다.

프로세스는 어떤 이벤트에 대해서 특정 루틴을 수행해야 하기 때문에, 시그널을 한 번에 하나의 용도로만 사용합니다.

이번 시간까지는 유저 프로세스 입장에서 시그널 처리 동작에 대해 살펴봤습니다. 다음에 커널이 시그널 처리를 위해 어떤 동작을 하는지 알아봅시다.

#Referene 시그널
시그널이란
시그널 설정은 어떻게 할까
   sys_pause() 함수 분석
시그널 생성 과정 함수 분석
   유저 프로세스 kill() 함수 실행
   유저 프로세스 tgkill()함수 실행
   커널은 언제 시그널 생성할까?
   __send_signal() 함수 분석
시그널 전달 진입점
   ret_fast_syscall 레이블 분석
   인터럽트 벡터
시그널 전달과 처리는 어떻게 할까?
   get_signal() 함수 분석
   handle_signal() 함수 분석
시그널 제어 함수 분석
   suspend() 함수
시그널 ftrace 디버깅
   ftrace 시그널 기본 동작 로그 분석
   ftrace 시그널 핸들러 동작 로그 분석

#Reference 시스템 콜


Reference(워크큐)
워크큐(Workqueue) Overview

.

핑백

덧글

댓글 입력 영역