设备驱动程序(二)
中止控制
中止控制器:中止首先由中止控制器处理。中止控制器能够被编程,能够将中止分配到多处理器环境下不一样处理器上。
cli和sti:用于关闭和打开中止,但Linux系统中并不使用这种方式打开和关闭中止。
unsigned ling flags; ... save_flags(flags); cli(); /* 这里代码在中止关闭状态下执行 */ restore_flags(flags);
Linux系统中普通使用以下方式关闭和打开中止:
更安全方法是使用“锁机制”,尤其是在多处理器环境下,上述方法不能经过关闭中止保护临界区代码。spin_lock_irqsave经过自旋锁提供锁机制和对中止控制。这种方法也适合用于单处理器环境。


雷达卡




京公网安备 11010802022788号







