JIFFIES
Posts
7 posts[라즈베리파이] 커널 타이머 - jiffies란 값은 누가 언제 증가하나
jiffies에 대해 조금 더 깊이 알아보겠습니다. jiffies는 커널 시스템 타이머가 동적 타이머를 처리하는 횟수입니다. 그럼, jiffies란 값은 누가 언제 증가시킬까요? 이 변수는 타이머 인터럽트가 발생하고 난 후 do_timer() 함수에서 jiffies를 업데이트합니다. 소스 코드를 보면 이 내용을 더 쉽게 이해할 수 있으니 바로 코드 분석으로 들어가겠습니다.[kernel/time/timekeeping.c]1 void do_timer(unsigned long ticks)2 {3 jiffies_64 += ticks;4 calc_global_load(ticks);5} 3번 줄 코드를 보면 ticks이란 인자를 jiffies_64이란 jiffies 변수에 증감합니다. 여기서 do_timer()
[라즈베리파이] 커널 타이머 - jiffies와 jiffies_64 변수란
jiffies에 대해 알아보기 전에 jiffies와 jiffies_64 전역 변수에 대해 짚고 가겠습니다. 리눅스 커널 코드를 보면 두 개 변수를 많이 볼 수 있는데 어떤 변수가 jiffies인지 헷갈릴 때가 많습니다. 예를 하나 들어보기 위해 다음 코드를 봅시다.1 void pm_wakeup_ws_event(struct wakeup_source *ws, unsigned int msec, bool hard)2 {3 unsigned long flags;4 unsigned long expires;....5 expires = jiffies + msecs_to_jiffies(msec); pm_wakeup_ws_events() 함수 5번 줄 코드를 보면 expires이란 지역 변수에 jiffies와 msecs_t
[라즈베리파이] 커널 타이머(Kernel Timer) - jiffies란
jiffies는 커널 타이머를 실행하는 시간 단위입니다. 공학 용어로 Resolution이라고 합니다. jiffies를 지피스라고도 하는데 리눅스 커널에서 쓰는 jiffies란 용어를 그대로 쓰겠습니다. jiffies 개념을 이해하려면 HZ에 대해 배워야 합니다. 그럼 HZ는 뭘 의미할까요? HZ는 1초당 커널 타이머가 동적 타이머를 처리하는 횟수를 의미합니다. 그래서 커널 타이머의 실행 빈도는 HZ에 의해 정해집니다. 커널 타이머가 로컬 타이머를 처리하는 단위라고 말할 수 있습니다. HZ가 500이면 1초당 jiffies가 500번 +1만큼 증감하고 500번 커널 타이머가 실행합니다. 그럼 HZ가 크면 좋은 시스템일까요? 그렇지는 않습니다. HZ를 너무 큰 값으로 설정하면 시스템 과부하가 걸릴 수 있

