中斷處理的時候,不應該發生進程切換,因爲在中斷上下文中,唯一能打斷當前中斷處理函數handler的只有更高優先級的中斷,它不會被進程打斷(這點對於softirq,tasklet也一樣,因此這些bottom half也不能休眠),如果在中斷上下文中休眠,則沒有辦法喚醒它,因爲所有的wake_up_xxx都是針對某個進程而言的,而在中斷上下文中,沒有進程的概念,沒有相應的task_struct(這點對於softirq和tasklet一樣),因此真的休眠了,比如調用了會導致阻塞的進程,內核幾乎會死。
爲什麼中斷處理函數不能添加sleep()函數?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
測試一下
wangweigang
2019-02-23 00:12:16
mysql線程等待時間,解決sleep進程過多的辦法
蝸牛的嘲諷
2019-02-22 21:01:51
linux內存和swap
okeyear
2019-02-22 19:27:51
sleep與alarm
hello_world
2019-02-22 17:59:00
sleep和wait的區別
ljheee
2019-02-22 16:32:58
如何讓 Qt 的程序使用 Sleep
kartik
2019-02-22 14:18:22
sleep( ) 和 wait( ) 的這 5 個區別,你知道幾個?
哦哦002
2018-12-19 13:18:52
windows 下編寫開機自啓動程序bat腳本
沐木小布丁
2018-11-03 02:22:41
測試一下
wangweigang
2018-09-13 03:15:58
[Linux]定時執行命令的shell腳本,刪除腳本自身,判斷輸出是否爲空
妍小屋
2018-09-12 06:51:58
24小時熱門文章