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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
1234下一頁
最近訪問板塊 發(fā)新帖
查看: 27452 | 回復(fù): 32
打印 上一主題 下一主題

spin_lock_irqsave關(guān)中斷后,為什么要再禁止搶占呢,不多余嗎? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-09-21 16:53 |只看該作者 |倒序?yàn)g覽
spin_lock_irqsave關(guān)中斷后,為什么要再禁止搶占呢,不多余嗎?
  1. static inline unsigned long __raw_spin_lock_irqsave(raw_spinlock_t *lock)
  2. {
  3.         unsigned long flags;

  4.         local_irq_save(flags);
  5.         preempt_disable();
  6.         spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
  7. 。。。
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-09-25 20:40 |只看該作者
如果不禁止內(nèi)核搶斷,可能會(huì)有以下的情況發(fā)生(假設(shè)進(jìn)程B比進(jìn)程A具有更高的優(yōu)先級(jí)):
進(jìn)程A獲得spinlock lock
進(jìn)程B運(yùn)行(搶占進(jìn)程A)
進(jìn)程B獲取spinlock lock
由于進(jìn)程B比進(jìn)程A優(yōu)先級(jí)高,所以進(jìn)程B在進(jìn)程A之前運(yùn)行,而進(jìn)程B需要進(jìn)程A釋放lock之后才能運(yùn)行,于是,死鎖

論壇徽章:
7
丑牛
日期:2013-10-18 14:43:21技術(shù)圖書徽章
日期:2013-11-03 09:58:03辰龍
日期:2014-01-15 22:57:50午馬
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亞洲杯之伊朗
日期:2015-03-16 10:24:352015亞冠之城南
日期:2015-05-31 09:52:32
3 [報(bào)告]
發(fā)表于 2011-09-26 00:25 |只看該作者
原因不是很多 但至少有一點(diǎn) in_interrupt()統(tǒng)計(jì)包括preempt_count()
而local_irq_save不影響in_interrupt()的結(jié)果

論壇徽章:
7
丑牛
日期:2013-10-18 14:43:21技術(shù)圖書徽章
日期:2013-11-03 09:58:03辰龍
日期:2014-01-15 22:57:50午馬
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亞洲杯之伊朗
日期:2015-03-16 10:24:352015亞冠之城南
日期:2015-05-31 09:52:32
4 [報(bào)告]
發(fā)表于 2011-09-26 00:32 |只看該作者
還是那句話, 中斷上下文不能睡眠
而不是在睡眠前不能調(diào)用spin_lock()--這是什么邏輯?

論壇徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技術(shù)圖書徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44雙子座
日期:2013-12-27 12:32:29雙子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
5 [報(bào)告]
發(fā)表于 2011-09-26 14:40 |只看該作者
求指教:獲得spinlock的時(shí)候不會(huì)禁止搶占嗎???

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2011-09-26 14:50 |只看該作者
本帖最后由 vonnyfly 于 2011-09-26 15:03 編輯

回復(fù) 2# SharkBones
關(guān)中斷跟禁止搶占之間沒有關(guān)系么?
關(guān)掉中斷之后,時(shí)鐘肯定也關(guān)了,也就調(diào)度相關(guān)的代碼就不會(huì)執(zhí)行

我們知道,linux的進(jìn)程調(diào)度時(shí)機(jī)有:
1、進(jìn)程狀態(tài)轉(zhuǎn)換的時(shí)刻:進(jìn)程終止、進(jìn)程睡眠
2、當(dāng)前的進(jìn)程的時(shí)間片用完(current->counter=0)
3、設(shè)備驅(qū)動(dòng)程序主動(dòng)調(diào)用schedule
4、進(jìn)程從中斷、異常及系統(tǒng)調(diào)用返回用戶態(tài)

這兒1、3不可能吧。2、4依賴時(shí)鐘中斷,我們關(guān)了本地中斷(SP),那不就意味著不能搶占么?

論壇徽章:
11
未羊
日期:2013-12-16 12:45:4615-16賽季CBA聯(lián)賽之青島
日期:2016-04-11 19:17:4715-16賽季CBA聯(lián)賽之廣夏
日期:2016-04-06 16:34:012015亞冠之卡爾希納薩夫
日期:2015-11-10 10:04:522015亞冠之大阪鋼巴
日期:2015-07-30 18:29:402015亞冠之城南
日期:2015-06-15 17:56:392015亞冠之卡爾希納薩夫
日期:2015-05-15 15:19:272015亞冠之山東魯能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16賽季CBA聯(lián)賽之八一
日期:2016-07-22 09:41:40
7 [報(bào)告]
發(fā)表于 2011-09-26 14:52 |只看該作者
轉(zhuǎn):

所以,你最開始的疑問:“關(guān)中斷只是屏蔽了中斷,并沒有阻止任務(wù)切換,高優(yōu)先級(jí)的任務(wù)任然可以搶占CPU并訪問臨界區(qū)和共享變量啊”

關(guān)了中斷,就禁止了搶占,如果當(dāng)前任務(wù)也沒有進(jìn)行主動(dòng)調(diào)度,當(dāng)然系統(tǒng)中也就不會(huì)出現(xiàn)比當(dāng)前優(yōu)先級(jí)更高的任務(wù)進(jìn)入就緒了,也就談不上去“搶占CPU并訪問臨界區(qū)和共享變量”了。(作者這里說加了條件“如果當(dāng)前任務(wù)也沒有進(jìn)行主動(dòng)調(diào)度”,那如果當(dāng)前任務(wù)進(jìn)行了主動(dòng)調(diào)度會(huì)怎么樣?我認(rèn)為,若是在臨界區(qū)中進(jìn)行了主動(dòng)調(diào)度,那么后果就是提問的人說的:“關(guān)中斷只是屏蔽了中斷,并沒有阻止任務(wù)切換,高優(yōu)先級(jí)的任務(wù)任然可以搶占CPU并訪問臨界區(qū)和共享變量”。by imjacob)
由以下網(wǎng)址為證:http://www.gdjy.com.cn/xuexi/UNIX-XIUGAI/ch02/os0203.htm 中2.3.4為證。
上面是這么說的:

關(guān) 中 斷 之 后, 任 何 外 部 事 件 都 不 能 打 擾 處 理 機(jī) 連 續(xù) 執(zhí) 行 臨 界 區(qū) 程 序。 如 果 臨 界 區(qū) 程 序 本 身 并 不 包 含 使 它 的 進(jìn) 程 轉(zhuǎn) 變 為 封 鎖 狀 態(tài) 的 因 素, 那 么 這 種 方 法 就 能 保 證 臨 界 區(qū) 作 為 一 個(gè) 整 體 執(zhí) 行。 這 種 方 法 的 優(yōu) 點(diǎn) 是 簡(jiǎn) 單、 可 靠, 但 是 它 也 有 一 定 的 局 限 性 和 若 干 不 足 之 處。

(1) 它 不 能 用 于 多 處 理 機(jī) 系 統(tǒng)。 其 原 因 是: 由 于 該 系 統(tǒng) 中 的 多 個(gè) 處 理 機(jī) 都 有 其 各 自 的 中 斷 開 關(guān), 因 此 一 個(gè) 處 理 機(jī) 并 不 能 阻 止 在 其 它 處 理 機(jī) 上 運(yùn) 行 的 進(jìn) 程 進(jìn) 入 同 類 臨 界 區(qū)。

(2) 在 臨 界 區(qū) 中 如 果 包 含 有 使 執(zhí) 行 它 的 進(jìn) 程 有 可 能 進(jìn) 入 封 鎖 狀 態(tài) 的 因 素, 則 也 不 能 使 用 這 種 方 法。 因 為 在 該 進(jìn) 程 進(jìn) 入 封 鎖 狀 態(tài) 后, 系 統(tǒng) 將 調(diào) 度 另 一 進(jìn) 程 使 用 處 理 機(jī), 如 果 需 要, 該 進(jìn) 程 也 可 以 執(zhí) 行 臨 界 區(qū) 程 序, 不 會(huì) 受 到 任 何 阻 攔, 所 以 在 這 種 情 況 下, 開、 關(guān) 中 斷 不 能 實(shí) 施 臨 界 區(qū) 互 斥。

(3) 如 果 臨 界 區(qū) 比 較 長(zhǎng), 則 本 法 會(huì) 降 低 中 斷 響 應(yīng) 速 度。

(4) 這 是 一 把 鎖 處 理 各 類 臨 界 區(qū), 不 必 要 地 擴(kuò) 大 了 互 斥 范 圍。

論壇徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技術(shù)圖書徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44雙子座
日期:2013-12-27 12:32:29雙子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
8 [報(bào)告]
發(fā)表于 2011-09-26 14:55 |只看該作者
本帖最后由 asuka2001 于 2011-09-26 15:09 編輯
spin_lock_irqsave關(guān)中斷后,為什么要再禁止搶占呢,不多余嗎?


spin_lock_irqsave本身應(yīng)該禁止了搶占吧,畢竟獲取了自旋鎖!

至于關(guān)中斷和搶占,好象沒啥聯(lián)系,preempt_count里只有針對(duì)軟中斷,硬中斷,和關(guān)閉搶占的計(jì)數(shù)器。

搶占的時(shí)機(jī)不僅僅和中斷有關(guān),比如解除自旋鎖的時(shí)候也會(huì)恢復(fù)搶占,并且可能導(dǎo)致重新調(diào)度吧???

論壇徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技術(shù)圖書徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44雙子座
日期:2013-12-27 12:32:29雙子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
9 [報(bào)告]
發(fā)表于 2011-09-26 15:01 |只看該作者
還是那句話, 中斷上下文不能睡眠
而不是在睡眠前不能調(diào)用spin_lock()--這是什么邏輯?


這個(gè)繞暈了,不太明白意思了。。。睡眠前spin_lock(),如果獲取到了鎖,肯定不應(yīng)該睡眠;如果沒獲取到鎖,那在自旋,執(zhí)行不到后面去。
求解。。。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2011-09-26 15:06 |只看該作者
回復(fù) 8# asuka2001
關(guān)中斷跟禁止搶占之間沒有關(guān)系么?
關(guān)掉中斷之后,時(shí)鐘肯定也關(guān)了,也就調(diào)度相關(guān)的代碼就不會(huì)執(zhí)行

我們知道,linux的進(jìn)程調(diào)度時(shí)機(jī)有:
1、進(jìn)程狀態(tài)轉(zhuǎn)換的時(shí)刻:進(jìn)程終止、進(jìn)程睡眠
2、當(dāng)前的進(jìn)程的時(shí)間片用完(current->counter=0)
3、設(shè)備驅(qū)動(dòng)程序主動(dòng)調(diào)用schedule
4、進(jìn)程從中斷、異常及系統(tǒng)調(diào)用返回用戶態(tài)

這兒1、3不可能吧。2、4依賴時(shí)鐘中斷,我們關(guān)了本地中斷(SP),那不就意味著不能搶占么?可能是為了MP的需要?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP