본문 바로가기

리눅스 커널의 구조와 원리/8. 커널 타이머 관리

(2)
[리눅스커널] 커널이 실행 시각을 관리하는 방식을 왜 잘 알아야 할까? 커널이 실행 시각을 관리하는 방식을 왜 잘 알아야 하는지 생각해봅시다. 첫째, 코드를 읽는 능력을 더 키울 수 있습니다. 리눅스 커널 세부 함수나 드라이버 코드에서 실행 시간을 기준으로 흐름을 제어하는 경우가 많습니다. 커널 코드를 읽으면 타이머 관련 함수를 써서 실행 시간을 제어하는 루틴을 만날 가능성이 높습니다. 드라이버 코드를 읽다가 타이머 관련 함수를 만나면 바로 이해해야 드라이버 구조를 이해할 수 있습니다. 둘째, 커널 타이머 구조를 알면 안정적인 타이머 코드를 입력해 시간 흐름을 제어할 수 있습니다.  다른 드라이버 코드를 참고해 타이머 코드 작성하는 작업은 누구나 할 수 있습니다. 하지만 커널 타이머 전체 실행 흐름을 아는 분은 커널 타이머가 Soft IRQ 서비스로 실행한다는 사실을 알기에..
[리눅스커널] 커널 타이머 관리: 주요 개념 소개 (HZ, jiffies) 커널 타이머는 리눅스 커널 핵심 기능 중 하나입니다. 커널 내부에서 배경 작업으로 다음 동작을 수행합니다. - 커널 스케줄링 함수들은 커널 타이머를 써서 프로세스를 제어합니다. - 시스템 시간은 타이머 인터럽트를 받아 주기적으로 갱신됩니다. - Soft IRQ 타이머 서비스를 주기적으로 실행해 동적 타이머를 관리합니다. 또한 리눅스 커널 세부 알고리즘과 디바이스 드라이버는 실행 시간을 기준으로 세부 제어를 합니다. 예시를 들면 다음과 같습니다. - 어떤 함수를 현재 시각 기준으로 200ms 초 후에 실행 - 어떤 함수가 500ms 내에 실행 안 하면 예외 처리 - 특정 함수를 1초 주기로 실행해서 시스템 상태를 점검 리눅스 커널이나 드라이버 코드를 분석하면 커널 타이머와 시간 흐름을 제어하는 코드를 만날..