LDD에서 발췌..
~~~
Interrupt Handlers need to finish up quickly and not keep interrupts blocked for long.
~~~
Linux resolves this problems by splitting the interrupt handler into two halves.
The so-called top half is the routine that actually responds to the interrupt - ~~~
The bottom half is a routine that is scheduled by the top half to be excuted later, at a
safer time.
여기서 this problems은 만약 Interrupt Handler 에서 오랜 시간을 요하는 작업을 수행해야 할경우?
는 어떻게 해야 하는가로부터 시작한다. LDD에서도 언급하였듯이 전체 시스템의 성능을 위해서라도
Interrupt Handler의 수행 시간은 적어야 한다. 이른 Linux에서는 두개의 Interrupt 루틴으로 나누고
처리를 한다. 즉 긴급을 요하는 작업은 Top-Half 그리고 이후는 Bottom-Half.....
NIC를 예로 들자면 패킷이 도착시, 커널은 최소한의 작업(패킷의 메모리 복사, 패킷 도착 알림, 재 초기화)
등을 한후 나머지 네트워크 프로토콜 레이어 작업은 이후 Bottom Half에서 처리한다.
Top-Half와 Bottom-Half의 차이점은 Bottom-Half시에 모든 Interrupt는 Enable 상태라는 것...
~~~
Interrupt Handlers need to finish up quickly and not keep interrupts blocked for long.
~~~
Linux resolves this problems by splitting the interrupt handler into two halves.
The so-called top half is the routine that actually responds to the interrupt - ~~~
The bottom half is a routine that is scheduled by the top half to be excuted later, at a
safer time.
여기서 this problems은 만약 Interrupt Handler 에서 오랜 시간을 요하는 작업을 수행해야 할경우?
는 어떻게 해야 하는가로부터 시작한다. LDD에서도 언급하였듯이 전체 시스템의 성능을 위해서라도
Interrupt Handler의 수행 시간은 적어야 한다. 이른 Linux에서는 두개의 Interrupt 루틴으로 나누고
처리를 한다. 즉 긴급을 요하는 작업은 Top-Half 그리고 이후는 Bottom-Half.....
NIC를 예로 들자면 패킷이 도착시, 커널은 최소한의 작업(패킷의 메모리 복사, 패킷 도착 알림, 재 초기화)
등을 한후 나머지 네트워크 프로토콜 레이어 작업은 이후 Bottom Half에서 처리한다.
Top-Half와 Bottom-Half의 차이점은 Bottom-Half시에 모든 Interrupt는 Enable 상태라는 것...
'Embedded Lab > linux, x86' 카테고리의 다른 글
[9장 커널 동기화 방법] (0) | 2012.01.26 |
---|---|
[8장 커널 동기화 개요] (0) | 2012.01.26 |
[인라인(inline) 함수] (0) | 2012.01.11 |
[커널의 종류] (0) | 2012.01.11 |
[프로세스의 상태 정리] (0) | 2012.01.04 |