亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4303 | 回復: 14
打印 上一主題 下一主題

[內核入門] 中斷 異常 陷阱 <睡眠> [復制鏈接]

論壇徽章:
13
15-16賽季CBA聯(lián)賽之八一
日期:2016-07-08 21:00:1415-16賽季CBA聯(lián)賽之同曦
日期:2017-02-15 14:26:1515-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 14:19:2615-16賽季CBA聯(lián)賽之青島
日期:2017-05-07 16:49:1115-16賽季CBA聯(lián)賽之廣夏
日期:2017-07-30 09:13:1215-16賽季CBA聯(lián)賽之廣東
日期:2018-07-05 22:34:3615-16賽季CBA聯(lián)賽之江蘇
日期:2018-09-03 12:10:2115-16賽季CBA聯(lián)賽之上海
日期:2018-09-25 03:49:2215-16賽季CBA聯(lián)賽之廣東
日期:2018-09-25 04:09:12
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-07-05 17:06 |只看該作者 |倒序瀏覽
本帖最后由 _nosay 于 2016-07-05 17:51 編輯

概念:
中斷:由外部設備觸發(fā),前“半”部分在關中斷時處理,后“半”部分開中斷時處理;
異常:由軟件“意外”觸發(fā)(較“隱蔽”,比如除0錯誤,缺頁異常),處理過程中斷都開著;
陷阱:由軟件主動觸發(fā)(較“明顯”,比如直接使用int指令),處理過程中斷都開著。

疑問:
中斷處理程序不可以睡眠(即使bh函數(shù)),異常/陷阱處理程序卻可以,為薩?

個人總結:
“中斷”與“異常/陷阱”的區(qū)別主要有兩點:1.處理過程是否關中斷;2.由誰觸發(fā)。

從而也應該從這2點去考慮這個問題:
1. 中斷處理過程,前“半”部分是在關中斷的情況下處理的,顯然不能睡眠
理由A:否則經(jīng)調度返回用戶態(tài),不管通過中斷/異常/陷阱,都進不了內核態(tài)了,因為中斷已經(jīng)關了,而用戶態(tài)又沒辦法將中斷打開。
理由B:等剛才從中斷中睡眠的進程“”了,被調度繼續(xù)執(zhí)行時,不就可以打開中斷了嗎?首先,用戶態(tài)沒辦法叫醒它,中斷/異常/陷阱又都“失效”了,根本沒機會進內核叫醒它;另外,即使它“詐尸”,回到running狀態(tài)的鏈表里,那也沒機會進內核態(tài)do_schdule()呀。。

2. 剩下的差異只剩“由誰觸發(fā)”了,同時問題也縮小了:bh函數(shù)不可以睡眠,異常/陷阱處理程序卻可以,為薩?
① 異常/陷阱,意味著當前這個進程(內核/用戶)的指令中,發(fā)生了些什么,也就是說當前進程上下文對于異常/陷阱處理程序是有意義的,比如用戶進程除0,內核就可以毫無顧慮的將當前進程kill掉,更別說睡一下而已了;
② 中斷,比如從鍵盤按ctrl+c想殺掉控制臺上的程序時,CPU正在執(zhí)行這個程序的可能性是很小的,因為系統(tǒng)中非常多的進程在輪流執(zhí)行,而這種情形,中斷處理程序如果將當前進程kill掉,那不是很無辜嗎?kill如此,sleep也如此,因為生命是資源,生命中的時間也是資源呀,不可以傷及無辜。。
總之,異常/陷阱處理程序執(zhí)行時,當前進程上下文對于處理過程有意義,而中斷沒有(看一位好幾年沒上線的人說的)。

其它說法,個人覺得說服力不夠強大,也許是我還沒理解清楚(因為我確實還是新手),比如說簡化內核設計。
確實,可以睡眠的話,至少必須考慮中斷處理函數(shù)的可重入性,那么異常/陷阱處理函數(shù)為什么可以睡眠呢?要簡化為什么只考慮簡化中斷處理函數(shù)的實現(xiàn),而不考慮異常/陷阱處理函數(shù)?
另外!先還是引用剛才那個人的話:進入中斷時,不是沒有進程上下文,只是進程上下文不確定。(從這開始是我自己說的)另外!如果這時強行將當前進程上下文與這次中斷關聯(lián)起來,除了可能對它“誤傷”了一下,能有啥其它問題嗎?畢竟,從bh函數(shù)開始執(zhí)行,與異常處理函數(shù)開始執(zhí)行,之后已經(jīng)沒有區(qū)別了,那么,異常處理程序可以睡眠,我們?yōu)槭裁催要為bh函數(shù)不可以睡眠考慮更多的理由?

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
2 [報告]
發(fā)表于 2016-07-06 09:23 |只看該作者
中斷里不切換或者休眠,CU討論過好多次
個人覺得原因之一是系統(tǒng)性能,例如系統(tǒng)吞吐量

論壇徽章:
13
15-16賽季CBA聯(lián)賽之八一
日期:2016-07-08 21:00:1415-16賽季CBA聯(lián)賽之同曦
日期:2017-02-15 14:26:1515-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 14:19:2615-16賽季CBA聯(lián)賽之青島
日期:2017-05-07 16:49:1115-16賽季CBA聯(lián)賽之廣夏
日期:2017-07-30 09:13:1215-16賽季CBA聯(lián)賽之廣東
日期:2018-07-05 22:34:3615-16賽季CBA聯(lián)賽之江蘇
日期:2018-09-03 12:10:2115-16賽季CBA聯(lián)賽之上海
日期:2018-09-25 03:49:2215-16賽季CBA聯(lián)賽之廣東
日期:2018-09-25 04:09:12
3 [報告]
發(fā)表于 2016-07-06 10:07 |只看該作者
回復 2# mordorwww

嗯,我也看了很多他們的討論。
“實時性”是客觀存在的,一件事能否“實時”完成,要看它是否需要經(jīng)歷很多阻礙,不是人為可以左右的。某件事阻礙重重,人只能隨它“不實時”,但可以控制的是別讓它影響本來可以“實時”完成的事情,即保證“確定性”,而中斷時進程上下文不確定,正是源頭,也是客觀存在無法避免的,所以就退一步對中斷服務程序提出限制,“抵消”這種不確定性。
所以我自己的理解,最根本的是為了避免“不確定性”,對“實時性”的影響是現(xiàn)象,不是根本。

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
4 [報告]
發(fā)表于 2016-07-06 10:23 |只看該作者
_nosay 發(fā)表于 2016-07-06 10:07
回復 2# mordorwww

嗯,我也看了很多他們的討論。

中斷不可搶占不是為了實時性,而是為了吞吐量

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
5 [報告]
發(fā)表于 2016-07-06 10:24 |只看該作者
mordorwww 發(fā)表于 2016-07-06 10:23
中斷不可搶占不是為了實時性,而是為了吞吐量

當然簡單確定也是目地

論壇徽章:
13
15-16賽季CBA聯(lián)賽之八一
日期:2016-07-08 21:00:1415-16賽季CBA聯(lián)賽之同曦
日期:2017-02-15 14:26:1515-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 14:19:2615-16賽季CBA聯(lián)賽之青島
日期:2017-05-07 16:49:1115-16賽季CBA聯(lián)賽之廣夏
日期:2017-07-30 09:13:1215-16賽季CBA聯(lián)賽之廣東
日期:2018-07-05 22:34:3615-16賽季CBA聯(lián)賽之江蘇
日期:2018-09-03 12:10:2115-16賽季CBA聯(lián)賽之上海
日期:2018-09-25 03:49:2215-16賽季CBA聯(lián)賽之廣東
日期:2018-09-25 04:09:12
6 [報告]
發(fā)表于 2016-07-06 10:48 |只看該作者
回復 4# mordorwww

,如果在中斷里睡眠了,是怎么影響到吞吐量的?

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
7 [報告]
發(fā)表于 2016-07-06 10:50 |只看該作者
_nosay 發(fā)表于 2016-07-06 10:48
回復 4# mordorwww

哦 ,如果在中斷里睡眠了,是怎么影響到吞吐量的?


cache污染, 切換開銷
以前效力的一家大公司別說內核態(tài)搶占了,用戶態(tài)搶占都是關閉的

論壇徽章:
13
15-16賽季CBA聯(lián)賽之八一
日期:2016-07-08 21:00:1415-16賽季CBA聯(lián)賽之同曦
日期:2017-02-15 14:26:1515-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 14:19:2615-16賽季CBA聯(lián)賽之青島
日期:2017-05-07 16:49:1115-16賽季CBA聯(lián)賽之廣夏
日期:2017-07-30 09:13:1215-16賽季CBA聯(lián)賽之廣東
日期:2018-07-05 22:34:3615-16賽季CBA聯(lián)賽之江蘇
日期:2018-09-03 12:10:2115-16賽季CBA聯(lián)賽之上海
日期:2018-09-25 03:49:2215-16賽季CBA聯(lián)賽之廣東
日期:2018-09-25 04:09:12
8 [報告]
發(fā)表于 2016-07-06 11:04 |只看該作者
回復 7# mordorwww

那異常處理程序里面睡眠,也會有這些影響吧?

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
9 [報告]
發(fā)表于 2016-07-06 11:06 |只看該作者
本帖最后由 mordorwww 于 2016-07-06 11:09 編輯
_nosay 發(fā)表于 2016-07-06 11:04
回復 7# mordorwww

那異常處理程序里面睡眠,也會有這些影響吧?


異常哪有中斷頻繁

論壇徽章:
9
程序設計版塊每日發(fā)帖之星
日期:2016-02-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-15 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-16 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-06-18 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-06-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-07-09 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-15 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-07-27 06:20:00程序設計版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
10 [報告]
發(fā)表于 2016-07-06 11:12 |只看該作者
本帖最后由 mordorwww 于 2016-07-06 11:13 編輯
mordorwww 發(fā)表于 2016-07-06 11:06
異常哪有中斷頻繁

萬兆網(wǎng)卡一秒鐘一百萬個包不算最多
你如果每個包做一次切換,一秒鐘做一百萬次schedule和switch_to, 一微妙做一次schedule和switch_to, 你看開銷大不大
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP