内核中断的处理
皮CaPr 2011-07-19 01:33:34 确认一下内核中断的处理过程。
中断的一个作用是CPU与外部设备并行工作,
看了下input驱动,一般都是在input设备的中断处理函数中向上层report数据,report的函数与input设备的file_operations的read函数之间通过一个wait_queue联系起来。
就是当上层调用read系统调用来读取input设备的数据时,如果这时没有有效的数据,那么调用read系统调用的这个进程会阻塞,进入睡眠状态。当input设备发生中断时,进入中断处理函数,就会唤醒睡眠状态的那个进程,这样上层就能读取有效的数据。达到CPU与外设并行工作。
问题1:内核中实现对这种CPU与外部设备并行工作的中断都是采用上面这样的处理过程吗?内核除了wait_queue外还有其他的方法吗?
问题2:如果按照上面的过程处理,那么对于输入设备,上层是不是会一直有一个进程在调用read系统调用来读取输入数据,感觉这个进程会从系统开机到系统关机一直存在?