2008. 10. 3. 20:35

DISPATCH_LEVEL, PASSIVE_LEVEL

 

User mode 의 모든 thread와 kernel mode의 대부분의 thread는
PASSIVE_LEVEL즉 가장 낮은 IRQL level에서 실행되면서
스케쥴링 됩니다 하드웨어 인터럽트발생시 ISR은 DIRQL level에서
실행되며, 커널모드에서는 dispatcher object를 사용하여 thread를
DISPATCH_LEVEL로 강제로 올릴수 있습니다

정리하면 PASSIVE_LEVEL은 아무런 일이 발생하지 않은
가장 낮은 level 로 스케쥴링되는 level 이고
DISPATCH_LEVEL은 PASSIVE_LEVEL로 실행되고 있는
다른 모든 THREAD를 block시키고 우선권을 갖고 실행되는
소프트웨어 인터럽트라고 할수 있는 level입니다