IRQs are handled by priority and are queued.

Questions

Higher priority IRQs can happen while lower ones are in progress

Can a signle IRQ happen while one is already in progress? ie Int 2 happen while Int 2 is already in progress? If so does it call again, queue it? or lose it?

MtW: This depends on us: we can do this, but can have issues with debugger etc. Right now, we dont allow it.

 

One thing to keep in mind: the Hardware IRQ's are mapped to interrupts 0x20-0x2F

Links

http://en.wikipedia.org/wiki/Interrupt
http://en.wikipedia.org/wiki/Interrupt_request
http://en.wikipedia.org/wiki/IF_%28x86_flag%29\
http://wiki.osdev.org/IRQ
http://www.xml.com/ldd/chapter/book/ch09.html

Interrupt Descriptor Table - http://en.wikipedia.org/wiki/Interrupt_descriptor_table
Interrupt Threads - http://en.wikipedia.org/wiki/Interrupt_handler
Efficiency http://lwn.net/Articles/395783/

Master PIC

Slave PIC