반응형
※ 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루틴이 실행된다.
공부한내용 간단하게 정리했습니다.
반응형
'Security > Windows System' 카테고리의 다른 글
MBR부팅과정 디버깅 (0) | 2017.08.08 |
---|---|
IRQL(Interrupt Request Level)-동기화방법(2) (0) | 2017.08.03 |
DeviceObject란?(2) - DeviceTack편 (0) | 2017.07.30 |
DeviceObject이란?(1) (0) | 2017.07.30 |
커널진입(INT 2E,SYSENTER)-전체적인흐름 (0) | 2017.06.23 |
댓글