커널 타이머는 프로세스 스케줄러를 동작시키기 위해 발생되는 타이머 인터럽트를 통해 구현 된다.
리눅스 커널은 타이머 인터럽트가 발생하면 스케줄링에 필요한 처리를 끝낸후 커널 타이머 목록이란
데이터 구조를 검사하는데 <b>커널 타이머 목록은 수행할 함수와 함수가 수행 되어야 하는 시간에대한 정보를
담고 있는 연결 리스트 구조체이다.</b>
커널 타이머를 디바이스 드라이버에서 사용 하려면 다음과 같은 구조체를 이용해야 된다.
// ----------------------------------------------------------
#include <linux/timer.h> 를 선언 해서 사용 해야 된다.
struct timer_list;
커널 구조체 타이머
init_timer();
커널 타이머 구조체를 초기화
add_timer();
커널 타이머에 수행될 함수를 등록
del_timer();
커널 타이머 목록에서 등록된 것을 제거
// ----------------------------------------------------------
사용 방법
Kernel 2.4
struct timer_list kerneltimer;
kerneltime.expires = jiffies + (3*HZ/10);
Kenel 2.6
kerneltime.expires = get_jiffies_64() + (3*HZ/10);
리눅스 커널은 타이머 인터럽트가 발생하면 스케줄링에 필요한 처리를 끝낸후 커널 타이머 목록이란
데이터 구조를 검사하는데 <b>커널 타이머 목록은 수행할 함수와 함수가 수행 되어야 하는 시간에대한 정보를
담고 있는 연결 리스트 구조체이다.</b>
커널 타이머를 디바이스 드라이버에서 사용 하려면 다음과 같은 구조체를 이용해야 된다.
// ----------------------------------------------------------
#include <linux/timer.h> 를 선언 해서 사용 해야 된다.
struct timer_list;
커널 구조체 타이머
init_timer();
커널 타이머 구조체를 초기화
add_timer();
커널 타이머에 수행될 함수를 등록
del_timer();
커널 타이머 목록에서 등록된 것을 제거
// ----------------------------------------------------------
사용 방법
Kernel 2.4
struct timer_list kerneltimer;
kerneltime.expires = jiffies + (3*HZ/10);
Kenel 2.6
kerneltime.expires = get_jiffies_64() + (3*HZ/10);
'Linux > Device Driver' 카테고리의 다른 글
kmalloc, vmalloc (0) | 2013.09.26 |
---|---|
print port address (프린트 포트 주소) (0) | 2013.09.26 |
시스템과 시간 설정 (system time setting) (0) | 2013.09.26 |
시간 지연 이용하기 (delay) (0) | 2013.09.26 |
무선 USB 표준 및 기술 동향 (0) | 2013.09.26 |