운영체제에 사용.
interrupt handler 에서 너무 많은 일을 하지 않게 하기 위해서 사용.
즉, 순차적인 구간 중에.. copy 뜨는 부분을 지연하고 싶은 경우가 있다.
이를 bottomhalf라고 한다.
지연하지 않아도 되는 것은 top half 라고 한다.
linux 2.6에서는 2.4의 bottomhalf 기능을 없애버렸다.
대신 work queue를 쓰면 된다. 우선 순위 높힌 커널 thread로 실행한다.
DECLARE_WORK(work_queue, call_workqueuefunc, NULL);
void call_workqueuefunc(void *data) {
}
workqueeu_interrupt(..) {
schedule_work(&work_queue);
wake_up_interruptible(&waitqueue);
}
'c or linux' 카테고리의 다른 글
/proc 커널 모듈 테스트 (0) | 2011.04.21 |
---|---|
/proc/interrupts (0) | 2011.04.21 |
[공부중] queue_task 함수에서 tq_immediate 사용하기 (0) | 2011.04.21 |
[공부중] queue_task 예제 (0) | 2011.04.21 |
[공부중] poll 함수 예제 (0) | 2011.04.21 |