Interrupt Mechanism and Application of Intel IA32 Architecture

±è¿µÈÖ

lachesis (at) kldp.org
http://lachesis.pe.kr

ÀÌ ¹®¼­´Â ±Û¾´ÀÌ°¡ ÆæƼ¾ö ÇÁ·Î¼¼¼­ÀÇ ÀÎÅÍ·´Æ®¿¡ ´ëÇÑ ¸®Æ÷Æ®¸¦ ½è´Ù°¡ ¹ö¸®±â ¾Æ±î¿ö¼­ ¸®´ª½ºÀÇ ÀÎÅÍ·´Æ® ¾ÆÅ°ÅØÃÄ¿¡ ´ëÇÑ ±Û·Î ¹ßÀü½ÃŲ(½ÃÅ°°í ÀÖ´Â) ¹®¼­ÀÔ´Ï´Ù. ¾ÆÁ÷ ¾²¿©ÁöÁö ¾ÊÀº ºÎºÐµµ ¸¹½À´Ï´Ù¸¸ Â÷Â÷ ½Ã°£³ª´Â ´ë·Î ä¿ö ³ª°¥ °èȹÀÔ´Ï´Ù. ¹®¼­ÀÇ Æ²¸°Á¡, º¸¿ÏÇÒ »çÇ×, µµ¿ÍÁÖ°í ½ÍÀ¸½Å ºÐ(°øµ¿ Àú¼ú) µéÀº ÇÊÀÚÀÇ À̸ÞÀÏ·Î ¿¬¶ôÇϽñ⠹ٶø´Ï´Ù.

ÀÌ ¹®¼­ÀÇ ÃֽŹöÁ¯Àº http://lachesis.pe.kr/kernel/ia-interrupt ¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ ¸µÅ©¿¡¼­ Ãâ·ÂÇϱâ ÆíÇÏ°Ô ÇÑÆäÀÌÁö¿¡ ¹®¼­¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù. http://lachesis.pe.kr/kernel/ia-interrupt/ia-interrupt.html ¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

sgml ¿øº»Àº ¾Æ·¡¿¡¼­ ±¸ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù : http://lachesis.pe.kr/kernel/ia-interrupt/ia-interrupt.sgml ¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

ÀÌ ¹®¼­´Â »ó¾÷Àû ¸ñÀûÀÌ ¾Æ´Ñ °æ¿ì ÀÚÀ¯·Ó°Ô ¼öÁ¤/Àç¹èÆ÷ ÇÒ ¼ö ÀÖ½À´Ï´Ù. »ó¾÷Àû ¸ñÀûÀ¸·Î ¹èÆ÷ÇÒ °æ¿ì ÀúÀÚÀÇ Çã¶ôÀ» ¹Þ¾Æ¾ß ÇÕ´Ï´Ù

고친 과정
고침 Revision 0.032002. 1. 11고친이 ¶óÅ°½Ã½º
8259 ÄÁÆ®·Ñ·¯¿¡ ´ëÇÑ ³»¿ë Ãß°¡
고침 Revision 0.032001. 11. 30고친이 ¶óÅ°½Ã½º
idt_table ÀÇ ÃʱâÈ­¿Í idtr ·¹Áö½ºÅÍÀÇ ¼Â¾÷ Ãß°¡
고침 Revision 0.022001. 11. 29고친이 ¶óÅ°½Ã½º
_set_gate() ¸ÅÅ©·Î¿¡ ´ëÇÑ ºÐ¼® Ãß°¡
고침 Revision 0.012001. 10. 6고친이 ¶óÅ°½Ã½º
ÃÖÃÊ ÀÛ¼º : IDT ÃʱâÈ­ ±îÁö

차례
1. ÆæƼ¾ö ÇÁ·Î¼¼¼­ÀÇ interrupt mechanism
1.1. Interrupt Descriptor Table(IDT)
1.1.1. IDTR
1.1.2. Interrupt Descriptor Table Structure
1.2. Context Change and Stack Handling
2. Linux ºÎÆðúÁ¤ÀÇ °£·«ÇÑ review
3. ¸®´ª½ºÀÇ IDT ÃʱâÈ­
3.1. startup_32() ÇÔ¼ö¿¡¼­ÀÇ IDT ÀÇ ÃʱâÈ­
3.2. idtr ·¹Áö½ºÅÍÀÇ ÃʱâÈ­
3.3. start_kernel() ÇÔ¼ö¿¡¼­ÀÇ IDT ÀÇ ÃʱâÈ­
3.3.1. trap_init() ÇÔ¼ö
3.3.2. init_IRQ() ÇÔ¼ö
3.3.2.1. 8259A and I/O APIC
3.3.2.2. init_IRQ() ÇÔ¼ö
4. ¸®´ª½ºÀÇ Interrupt and Exception Handling
4.1. Exception Handling
4.2. Interrupt Handling
4.3. Softirq, Bottom Half, Tasklet
Âü°í¹®Çå
그림 목록
1-1. Relationship of the IDTR and IDT
1-2. Interrupt Procedure call
1-3. IDT Gate Descriptors
1-4. Stack usage with NO Privilege level change
1-5. Stack usage with Privilege level change
3-1. Making Interrupt Gate 1
3-2. Making Interrupt Gate 2
3-3. Interrupt gate descriptor
3-4. cascaded 8259A [2]