23.12.06 최초 작성
/kernel/exit.cprofile_task_exit() : 태스크 디스크립터에 종료할 것을 알림exit_signals() : 익셉션 핸들러를 호출perf_event_exit_task() : 해당 태스크 종료 시 작동하는 이벤트exit_notify() : 고아 프로세스 처리do_task_dead() : __schedule() 호출profile_task_exit() 에서 태스크 디스크립터에 종료할 것을 알림
exit_signal()에서 익셉션 핸들러 호출
exit_notify()
do_task_dead()에서 __schedule() 호출
/kernel/sched/core.csmp_processor_id() : smp_processor_id() : 현재 프로세스가 실행 중인 cpu번호 가져 옴, 이를 바탕으로 clock을 구동 함update_rq_clock() : 타이머 핸들러를 호출 해 cpu의 시간을 일정 시간만큼 증가시킴prev = rq->curr을 통해 해당 프로세스가 선점 상태인지 검사하고 선점상태가 아니면 signal pending을 검사해 TASK_RUNNING상태로 설정pick_next_task() : 스케줄러의 정책을 검사해 다음 프로세스 결정prev = rq->curr을 통해 프로세스 상태 확인
pick_next_task() 호출
/kernel/sched/core.csmp_processor_id() : 현재 프로세스가 실행 중인 cpu번호 가져 옴, 이를 바탕으로 clock을 구동 함update_rq_clock() : 타이머 핸들러를 호출 해 cpu의 시간을 일정 시간만큼 증가시킴perf_event_task_tick() : tick발생 시 이벤트 호출update_rq_clock()호출 시 익셉션 핸들러 호출