Frank Mathew - University of Mississippi
Peripheral devices in a computer use interrupts to get attention from the Central Processing Unit (CPU) hence the delay in servicing the devices determines the performance of the operating system with respect to the devices.
Linux has inherited its interrupt processing mechanism from Minix. So unlike other flavors of UNIX operating systems the way Linux handles interrupts is based upon a slower object oriented implementation as opposed to a monolithic implementation.
UNIX responds to an interrupt by executing the subroutine associated with the interrupt immediately. But contrary to this Linux immediately responds to interrupts by acknowledging them and marking the associated subroutine for execution. This subroutine is processed asynchronously.
This processing is taken care of by a construct called as tasklet. So at a given time there could be a list of tasklets that are ready to be executed at a processor and the scheduler has these tasklets or rather the subroutine for the interrupt executed at the CPU.
So when we look at the interrupt processing mechanism on Linux, it appears to have potential for optimization which could be manyfold. The Linux kernel could be optimized to perform better on a multi-processor machine or it could be optimized to generate faster responses to devices enabling better performance in real time environments.
With this in mind the scope of this project is to completely understand Interrupt processing within Linux, looking at all the issues involved. Once that's done, ways will be found by which the processing could be optimized for different purposes.