悟空學Linux專欄----第33篇

  最近八戒比較開心,自從上次他的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”函數好像師傅,能力最小,幹事也最暴力(強制退出,不等待中斷處理函數的返回)。

  唐僧:悟空,爲師在你心裏中這麼差勁啊。

  悟空:哎呀,怎麼師傅還真來聽課啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章