最近八戒比较开心,自从上次他的18层梦的事情被媒体大肆报道之后,八戒就一下子成了网络红人。也正因为八戒的网上人气的不断攀升,所以越来越多的学生喜欢八戒的课了。这着实让八戒有点受宠若惊,所以八戒决定邀请悟空、唐僧、沙僧来听课。
八戒:同学们,大家好,我们今天要上的课是Linux中断的控制。
2号童鞋:老师,中断的控制是不是就是对中断的关闭和打开操作呢?
八戒:你理解的很对,中断控制是由中断控制器来控制,CPU通过向中断控制器发送控制指令,来达到中断的控制。不过中断控制的操作不叫打开和关闭,专业术语叫禁止和激活。
悟空:中断禁止函数有哪些呢?
八戒:中断禁止函数有四个“local_irq_save”、“local_irq_disable”、“disable_irq”、“disable_irq_nosync”。这四个函数各有不同,但是功能相似。“local_irq_save”是禁止本地中断,不过他在禁止之前先会保存现场,为后面的恢复现场提供保障。“local_irq_disable”函数怎只是禁止中断,而并不提供现场的保护和恢复。“disable_irq”函数只是禁止单个中断,而且这个函数将等待禁止中断的函数执行返回。“disable_irq_nosync”函数也是禁止单个中断,只是这个函数禁止中断的时候并不等待中断处理程序的执行完毕。
悟空:我觉得这四个函数就像我们师徒四人。 “local_irq_save”就像我一样,最负责任(保存本地中断的当前状态),干的事情最多,也被骂的最多。“local_irq_disable”函数像八戒,是最不负责人的(不保存本地中断的当前状态),喜欢蛮干,但是却最受欢迎。“disable_irq”函数像沙师弟,能力小(只禁止一个中断)。“disable_irq_nosync”函数好像师傅,能力最小,干事也最暴力(强制退出,不等待中断处理函数的返回)。
唐僧:悟空,为师在你心里中这么差劲啊。
悟空:哎呀,怎么师傅还真来听课啦。