▣ 08장: 커널 타이머 관리
8.1 커널 타이머(저해상도 타이머의 주요 개념
___8.1.1 HZ란?
___8.1.2 Soft IRQ의 타이머 서비스란?
___8.1.3 Soft IRQ 타이머(TIMER_SOFTIRQ 서비스와 동적 타이머란?
___8.1.4 커널이 실행 시각을 관리하는 방식을 왜 잘 알아야 할까?
___8.1.5 커널 타이머 용어 정리
8.2 jiffies란?
___8.2.1 jiffies 소개
___8.2.2 jiffies와 jiffies_64 변수
___8.2.3 jiffies 값은 누가 언제 증가시킬까?
___8.2.4 msecs_to_jiffies( 함수란?
8.3 커널에서 시간을 흐름을 제어하는 방법
___8.3.1 time_after(/time_before( 매크로 함수
___8.3.2 time_after(/time_before( 함수의 사용 예
8.4 동적 타이머 초기화
___8.4.1 동적 타이머의 전체 흐름
___8.4.2 동적 타이머 자료구조
___8.4.3 동적 타이머 초기화 함수
8.5 동적 타이머 등록
___8.5.1 동적 타이머의 등록
___8.5.2 동적 타이머 등록 과정의 주요 함수
___8.5.3 동적 타이머 등록 과정에서 호출하는 함수 분석
8.6 동적 타이머는 누가 언제 실행할까?
___8.6.1 Soft IRQ 타이머 서비스에서 동적 타이머를 실행하는 과정
___8.6.2 Soft IRQ 타이머 서비스의 1~2단계 분석
___8.6.3 Soft IRQ 타이머 서비스에서 등록된 동적 타이머를 체크하는 단계의 코드 분석
___8.6.4 Soft IRQ 타이머 서비스 핸들러에서 등록된 동적 타이머를 실행하는 단계의 코드 분석
8.7 라즈베리 파이에서의 동적 타이머 실습 및 로그 분석
___8.7.1 ftrace의 동적 타이머 디버깅 이벤트 소개
___8.7.2 라즈베리 파이에서의 동적 타이머 등록 및 실행 과정을 ftrace로 확인하기
8.8 정리
▣
▣ [1부] 커널 디버깅(ftrace, 프로세스, 인터럽트, 인터럽트 후반부, 워크큐 편
먼저 커널을 디버깅하는 방법과 함께 ftrace 사용법을 소개합니다. 커널을 실행하는 주인공인 프로세스와 인터럽트를 커널이 처리하는 세부 동작 원리를 다룹니다. 인터럽트 후반부를 처리하는 IRQ 스레드(threaded IRQ와 Soft IRQ 기법과 커널에서 후반부를 처리하는 워크큐에 대해 설명합니다.
▣ [2부] 타이머, 동기화, 스케줄링, 시스템 콜, 시그널, 가상 파일 시스템, 메모리 관리 편
커널이 시간의 흐름을 관리하는 동작 원리와 동기화 기법(스핀락, 뮤텍스을 다룹니다. 여러 프로세스의 실행 흐름을 관리하는 스케줄링의 세부 구현 방식과 시스템 콜과 시그널을 커널에서 어떤 방식으로 처리하는지 설명합니다. 다양한 파일 시스템을 공존해 실행시킬 수 있는 가상 파일 시스템과 커널의 메모리를 관리하는 방식에 대해 다룹니다.
부록으로 리눅스 커널의 메일링 리스트를 활용하는 방법과 리눅스 커널에 기여하는 방법을 자세히 소개합니다.