编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

软件中断

Oracle Solaris DDI/DKI 支持软件中断(也称为软中断)。软中断通过软件而不是硬件设备启动。另外,还必须在系统中添加和删除这些中断的处理程序。软中断处理程序在中断上下文中运行,因此可用于执行许多属于中断处理程序的任务。

硬件中断处理程序必须快速执行其任务,因为它们可能必须在执行这些任务的同时暂停其他系统活动。对于高级别中断处理程序,更需要满足此要求,这些处理程序在高于系统调度程序的优先级别上运行。高级别中断处理程序将屏蔽所有较低优先级中断的操作,包括系统时钟的中断操作。因此,该中断处理程序必须避免涉及到可能导致其休眠的活动,如获取互斥锁。

如果处理程序休眠,则系统可能会挂起,因为时钟会被屏蔽,从而无法调度休眠线程。因此,高级别中断处理程序通常在高优先级别执行最少量的工作,并将其他任务委托给运行优先级别低于高级别中断处理程序的软件中断。由于软件中断处理程序运行的优先级别低于系统调度程序,因此软件中断处理程序可以执行高级别中断处理程序无法执行的操作。