Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

45111
637
415421


[리눅스커널] 스케줄링: schedule() 함수 동작 정리하기 10. 프로세스 스케줄링

schedule() 함수 동작 정리하기

이번엔 __schedule() 함수 코드에서 중요한 동작을 추려서 정리해봅시다. 

1. pick_next_task() 함수
다음에 CPU에서 실행할 프로세스 선택해 next 변수(태스크 디스크립터)로 로딩
2. clear_preempt_need_resched() 함수 
prev 프로세스의 struct thread_info flags 필드에 저장된 TIF_NEED_RESCHED 비트를 Clear 
3. trace_sched_switch() 함수
컨텍스트 스위칭 실행

다음 절에서는 컨텍스트 스위칭에 대해서 살펴봅니다.

"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)

Reference(프로세스 스케줄링)

스케줄링 소개
프로세스 상태 관리
   어떤 함수가 프로세스 상태를 바꿀까?
스케줄러 클래스
런큐
CFS 스케줄러
   CFS 관련 세부 함수 분석  
선점 스케줄링(Preemptive Scheduling)   
프로세스는 어떻게 깨울까?
스케줄링 핵심 schedule() 함수 분석
컨택스트 스위칭
스케줄링 디버깅
   스케줄링 프로파일링
     CPU에 부하를 주는 테스트   
     CPU에 부하를 주지 않는 테스트

# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2







핑백

덧글

댓글 입력 영역