운영체제 커널 모듈 프로그래밍에서의 타이머 모듈 구현
- 최초 등록일
- 2021.11.01
- 최종 저작일
- 2020.09
- 5페이지/ 한컴오피스
- 가격 2,000원
목차
1, 과제설명 ( 사용자 요구사항 기술: 과제에 대한 설명 및 목표 )
2, 사용자 요구사항을 정형적 방법으로 기술 (UML, Pseudo code, 그림등을 이용하여 기슬)
3. 알고리즘 및 자료구조 설계 내용
4. 소스코드 설명 ( 직접 작성한 소스코드중에 핵심 부분을 발췌하여 설명 )
5. 실행결과 및 설명 ( 실행 결과를 캡쳐하여 첨부한 후 설명 )
6. 고찰 ( 과제를 진행하면서 배운점 이나, 시행 착오 내용, 기타 느낀점 )
7. 전체 소스코드 ( 글자크기 9에 줄간격을 120%로 유지하고 한 줄이 너무 길지 않게 작성 )
본문내용
2, 사용자 요구사항을 정형적 방법으로 기술 (UML, Pseudo code, 그림등을 이용하여 기슬)
동적 타이머 혹은 커널 타이머로도 불리는 타이머는, 커널에서 시간의 흐름을 관리하는데 있어서 필수 불가결한 요소이다.
커널코드는 종종 어떤 함수의 실행을 일정 시간만큼 지연해야하는 경우가 있다.
원하는 것은 어떤 특정한 시간 만큼의 작업을 지연시킬 수 있는 방법이며, 그 방법은 바로 커널 타이머이다. 타이머는 사용하기 아주 쉽다. 즉, 초기값을 설정하고, 만료 시간을 정하고, 만료시 실행할 함수를 지정한 후 타이머를 활성화하면 된다. 여기서 지정한 함수는 타이머가 만료될 때 실행된다.
또한 타이머는 주기적이 아니다. 즉 타이머는 만료가 되면 정지하게 된다. 이것이 바로 동적인 타이머가 필요한 또 하나의 이유이다. 이렇게 타이머는 끊임없이 생성되고 소멸되며, 타이머 수에는 제한이 없다. 또한 타이머는 커널 전체에서 널리 사용된다.
3. 알고리즘 및 자료구조 설계 내용
struct timer_list : 커널 타이머 구조체
init_timer(): 커널 타이머 구초제를 초기화 한다
add_timer(): 커널 타이머에 수행될 함수를 등록한다
del_timer(): 커널 타이머 목록에서 등록된 것을 제거한다.
커널 타이머는 동작 시간이 1/Hz 단위로 1/Hz초 이하의 호출 주기는 사용이 불가능 하다
struct time_list 변수는
1. unsigned long expires, 2 unsigned long data, void (*function)(unsigned long)을 일반적으로 지정하여 사용한다.
1. unsigned long expires 는 다음과 같이 초기화 한다
kerneltime.expires=get_jiffies_64()+(3*HZ/10);
2. unsigned long data 는 timer 함수에 전달할 데이터를 참조하기 위한 주소를 리
참고 자료
없음