Kernel Timer

2023. 8. 19. 22:05IT

반응형

리눅스 커널에서 지원하는 타이머는,

1. 1/HZ 단위로 동작하는 저해상도(Low Resolution) 타이머

2. nano sec 단위인 고해상도(High Resolution) 타이머 로 분류한다. 

일반적으로 DD(Device Driver)에서 사용하는 타이머는 저해상도 타이머이고, 이를 커널 타이머라고 부른다.

LR == Kernel Timer ( jiffies (1/HZ) 단위)

 

커널 타이머 관리 를 이루는 주요 개념은 아래와 같다.

  • HZ &  Jiffies
  • Soft IRQ service
  • Kernel Timer를 이루는 자료 구조
  • 동적 타이머

1. HZ

HZ는 진동수 라고 부르며, 1 sec에 jiffies가 업데이트 되는 횟수

라고 할수있다. 

예를들어, HZ가 100이면, 1초에 jiffies가 100증가하고, HZ가 300이면, 1초에 jiffies가 300 증가함.

(1분이 60초 인거마냥 1초 동안 100번 움직이는 단위라고 생각하면 됨)

 

2. Soft IRQ ( == TIMER_SOFTIRQ )

  • jiffies 간격 ( HZ 기준 : 1초에 100번 ) 으로 시간 흐름을 체크
  • jiffies(1/HZ) 간격으로 만료되는 동적 타이머가 있는지 확인한 후 동적 타이머 핸들러를 실행.

-> " Soft IRQ Timer service는, 전체 시스템 관점에서 타이머를 처리하는 함수 흐름과 자료구조이다 "

Soft IRQ 타이머 서비스는, Soft IRQ 구조 내에서 실행되고, 전체 동적 타이머를 관리하는 자료구조를 관리, 동적 타이머 핸들러를 호출한다.

 

HZ는 어떻게 확인할까?

-> .config 에서 확인 할 수 있다. 

HZ는 kernel build를 할 때 정해지며, 커널이 실행되는 도중에는 바뀌지 않는다. 

예시로, Armv7 에서는 HZ를 100으로 설정하는 경우가 많다. 

타이머 인터럽트의 발생 빈도는, 스케줄러나 시스템 리소스를 관리하는 드라이버 동작에 영향을 줄 수 있다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'IT' 카테고리의 다른 글

CPU hotplug & dm-verity  (1) 2024.01.04
ftrace  (0) 2023.12.26
현업에서 쓰는 Git, Gerrit ( svn 에서 처음 git 을 사용하는 유저.. )  (1) 2023.04.10
About pthread ( timeout function )  (2) 2023.04.02
pyyaml version upgrade 시 Command !  (2) 2022.07.26