Security/Windows System

IRQL(Interrupt Request Level)이란?(1)

Winduck 2017. 8. 3. 00:13
반응형
※ IRQL(Interrupt Request Level)이란?

 커널 스케줄러가 cpu사용을 인터럽트가 발생했을 때  실행 우선순위


※ 인터럽트 기준

 간단하게 우선순위 높은 놈이 들어올 경우 cpu실행을 양보한다. IRQL 우선순위와 설명은 다음의 그림과 같습니다.

 

 

  - IRQL 0 :PASSIVE_LEVEL 보통의 쓰레드 가장 낮은 우선순위를 갖기때문에 모든 인터럽트 레벨에 의해 선점당할 수 있습니다..

  - IRQL 1 : APC_LEVEL(비동기 프로시져) 쓰레드와 관련된 인터럽트 루틴

  - IRQL 2 : DISPATCH_LEVEL, IRQL이 3이상의 값을 가지는 루틴에서 우선순위가 낮은 루틴을 위해  현재 실행에 꼭 필요한 기능만을 수행하고

    다른 기능들은 DPC(Deferred Procedure Call)에 등록한다. 이로 3이상의 루틴이 모두 실행된 이후 실행되는 Level을 의미한다.

 

※인터럽트 전체적인 흐름

 

 

높은 우선순위 에서 꼭필요한 루틴만 실행한이후 DIRQL3~1순으로 DPC queue에 등록한뒤 DISPATCH_LEVEL순서가 되었을 때 등록된 DPC루틴이 실행된다.

 

공부한내용 간단하게 정리했습니다.

반응형