Study/Kenrel

IDT(Interrupt Descriptor Table)

Mungsul 2015. 9. 24. 13:17

세그먼트를 지정하는데 GDT가 쓰인다면 인터럽트를 지정하는데는 IDT가 쓰인다.


* 출처 : http://flslg.tistory.com/entry/IDT-Interrupt-Descriptor-Table

Offset은 인터럽트 핸들러의 오프셋을 나타낸다.

Segment Selector는 핸들러의 코드 세그먼트 셀렉터이다.

DPL은 특권 레벨을 나타내고 P는 GDT와 마찬가지의 의미를 갖는다.


각각의 IDT를 찾기 위해 IDTR 이라는 녀석을 사용하는데, 이 놈은 6바이트로 이루어져있다.

처음 2바이트는 IDT의 크기(limit)를 나타내고 다음 4바이트는 IDT 시작점 주소를 나타낸다.


인터럽트가 발생되면 IDTR을 참조하여 IDT 목록을 찾고 해당 인터럽트에 해당하는 IDT에서 세그먼트와 오프셋을 참조하여 인터럽트 핸들러로 넘어간다.