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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中断嵌套

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

linux2.4.0內(nèi)核中斷嵌套處理,可能性分析如下:

1,同一中斷線:是否可嵌套,取決于ack是否發(fā)屏蔽中斷線信號給硬件?
可嵌套中斷:
場景:[cpu0 A進程 i ii] [cpu1 B進程] ,先i中斷執(zhí)行后執(zhí)行ii。若有iii,同理。
兩中斷(i及ii)被中斷控制器分配到同一核cpu0處理,此時使用的堆棧空間均為A的
i ii中斷嵌套處理使用邊緣觸發(fā)方式,即i在可中斷環(huán)境 handle_IRQ_event中處理未返回,ii中斷進入do_IRQ流程,發(fā)現(xiàn)此時i未完成(簡單這樣理解),不做handle_IRQ_event處理即刻返回,多嵌套同理。返回i中斷處理時,判斷當前中斷線是否有pending,因該場景pending者ii,為保證所有中斷都得到處理機會,會觸發(fā)再遍歷處理一次,ii得以處理。

場景:[cpu0 A進程 i] [cpu1 B進程 ii]
兩中斷(i及ii)分別被中斷控制器分配到cpu0 cpu1中處理 此時各自使用命中進程的堆棧空間,此時無中斷嵌套。

不可嵌套中斷:
在進入do_IRQ時便ack屏蔽了該中斷線,使得同一中斷線上中斷無法嵌套。
場景:[cpu0 A進程 i ii] [cpu1 B進程]
嚴格串行化處理
場景:[cpu0 A進程 i] [cpu1 B進程 ii]
處理等同于可嵌套中斷的場景:[cpu0 A進程 i] [cpu1 B進程 ii]

2,混合中斷線:不同中斷線定是可以中斷嵌套的
若同線可嵌套:
場景:[cpu0 A進程 i ii iii] [cpu1 B進程],其中:i ii iii同線。
i 先中斷 后ii中斷嵌套 又i與iii中斷嵌套
iii可邊緣觸發(fā)對本端cpu0 ii(未處理直接返回了)的處理。
場景:[cpu0 A進程 i ii iii] [cpu1 B進程 iiii],其中:i ii iiii同線。
i 先中斷 后ii中斷嵌套 又i與iii中斷嵌套
iiii可邊緣觸發(fā)對對端cpu0 ii(未處理直接返回了)的處理。

若同線不可嵌套:
場景:[cpu0 A進程 i ii iii] [cpu1 B進程 iiii],其中:i iii iiii同線
i 先中斷 后ii中斷嵌套 又ii與iii中斷嵌套 iiii最后中斷。
iiii可邊緣觸發(fā)對iii(未處理直接返回了)的處理。
無所謂對本端cpu中斷的邊緣觸發(fā)

linux2.4.0 vs linux2.6.37(其實2.6以上基本相同了)
1>、后者只允許不同線的嵌套中斷,在檢測到來自同一中斷線的中斷時會發(fā)送ack屏蔽該中斷線,前者若不管是相同中斷線還是不同中斷線都允許中斷嵌套。引出問題:若存在256中斷號,則對于后者來說,極端情況也就被中斷嵌套255次,而前者會是無限次。
2>、前者中斷處理占用命中進程的堆棧空間,后者在中斷處理時有堆棧環(huán)境的切換動作,有獨立的中斷棧。問題:中斷多時前者會出現(xiàn)堆棧溢出。

總結(jié)

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

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