日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

同步中断和异步中断区别

發(fā)布時間:2024/10/14 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同步中断和异步中断区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原網(wǎng)址:https://blog.csdn.net/nolatin/article/details/8243430

中斷有兩種,一種是CPU本身在執(zhí)行程序的過程中產(chǎn)生的,一種是由CPU外部產(chǎn)生的。
外部中斷,就是通常所講的“中斷”(interrupt)。對于執(zhí)行程序來說,這種“中
斷”的發(fā)生完全是異步的,因?yàn)椴恢朗裁磿r候會發(fā)生。CPU對其的響應(yīng)也完全是被動的,
可以通過“關(guān)中斷”指令關(guān)閉對其的響應(yīng)。
由軟件產(chǎn)生的中斷一般是由專設(shè)的指令,如X86中的“INT n”在程序中有意產(chǎn)生的,
是主動的,同步的。只要CPU執(zhí)行一條INT指令,在開始執(zhí)行下一條指令之前一定會進(jìn)入中
斷服務(wù)程序。這種主動的中斷稱為“陷阱”(trap)。?

?

?

?????? Linux 內(nèi)核需要對連接到計(jì)算機(jī)上的所有硬件設(shè)備進(jìn)行管理,毫無疑問這是它的份內(nèi)事。如果要管理這些設(shè)備,首先得和它們互相通信才行,一般有兩種方案可實(shí)現(xiàn)這種功能:
1.輪詢(polling) 讓內(nèi)核定期對設(shè)備的狀態(tài)進(jìn)行查詢,然后做出相應(yīng)的處理;
2.中斷(interrupt) 讓硬件在需要的時候向內(nèi)核發(fā)出信號(變內(nèi)核主動為硬件主動)。
?????? 第一種方案會讓內(nèi)核做不少的無用功,因?yàn)檩喸兛倳芷谛缘闹貜?fù)執(zhí)行,大量地耗用 CPU 時間,因此效率及其低下,所以一般都是采用第二種方案。

什么是中斷?

??????? 從物理學(xué)的角度看,中斷是一種電信號,由硬件設(shè)備產(chǎn)生,并直接送入中斷控制器(如 8259A)的輸入引腳上,然后再由中斷控制器向處理器發(fā)送相應(yīng)的信號。處理器一經(jīng)檢測到該信號,便中斷自己當(dāng)前正在處理的工作,轉(zhuǎn)而去處理中斷。此后,處理器會通知 OS 已經(jīng)產(chǎn)生中斷。這樣,OS 就可以對這個中斷進(jìn)行適當(dāng)?shù)奶幚怼?br /> ??????? 不同的設(shè)備對應(yīng)的中斷不同,而每個中斷都通過一個唯一的數(shù)字標(biāo)識,這些值通常被稱為中斷請求線(IRQ)。

中斷可分為同步(synchronous)中斷和異步(asynchronous)中斷:
1. 同步中斷是當(dāng)指令執(zhí)行時由 CPU 控制單元產(chǎn)生,之所以稱為同步,是因?yàn)橹挥性谝粭l指令執(zhí)行完畢后 CPU 才會發(fā)出中斷,而不是發(fā)生在代碼指令執(zhí)行期間,比如系統(tǒng)調(diào)用。
2. 異步中斷是指由其他硬件設(shè)備依照 CPU 時鐘信號隨機(jī)產(chǎn)生,即意味著中斷能夠在指令之間發(fā)生,例如鍵盤中斷。

什么是異常?

同步中斷又稱為異常(exception),異步中斷則被稱為中斷(interrupt)。我們通常講的中斷指的都是異步中斷。
1.中斷可分為可屏蔽中斷(Maskable interrupt)和非屏蔽中斷(Nomaskable interrupt)。
2.異常可分為故障(fault)、陷阱(trap)、終止(abort)三類。

這些類別之間的異同點(diǎn)請參看 表 1。

表 1:中斷類別及其行為

類別????? 原因????????????????????????? 異步/同步???????? 返回行為
中斷????? 來自I/O設(shè)備的信號 異步???????????????? 總是返回到下一條指令
陷阱????? 有意的異常?????????????? 同步???????????????? 總是返回到下一條指令
故障????? 潛在可恢復(fù)的錯誤?? 同步???????????????? 返回到當(dāng)前指令
終止????? 不可恢復(fù)的錯誤?????? 同步???????????????? 不會返回

什么是中斷處理程序?

在響應(yīng)一個特定中斷的時候,內(nèi)核會執(zhí)行一個函數(shù),該函數(shù)叫做中斷處理程序或中斷服務(wù)例程。產(chǎn)生中斷的每個設(shè)備都有一個相應(yīng)的中斷處理程序,如果一個設(shè)備可以產(chǎn)生多種不同的中斷,那么該設(shè)備就可以對應(yīng)多個中斷處理程序。一個設(shè)備的中斷處理程序是它設(shè)備驅(qū)動程序的一部分。

什么是中斷上半部和下半部?

中斷處理一般分為兩個部分,中斷處理程序是上半部:接收到一個中斷就立即執(zhí)行,但只做有嚴(yán)格時限的工作,這些工作都是在所有中斷被禁止的情況下完成的。能夠被允許稍后完成的工作被推遲到下半部去。通常情況下,下半部會在中斷處理程序返回時立即執(zhí)行。

?

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的同步中断和异步中断区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。