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

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

Chinaunix

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

Linux內(nèi)核中在自旋鎖,信號量及中斷禁止之間的選擇 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-06-16 19:35 |只看該作者 |倒序?yàn)g覽
ULK3 第五章 中的 “在自旋鎖,信號量及中斷禁止之間的選擇”粗略歸納了下,希望能與大家一起紙上談兵。加深認(rèn)識。

Linux內(nèi)核中在自旋鎖,信號量及中斷禁止之間的選擇

一.linux內(nèi)核控制路徑的三種執(zhí)行環(huán)境:
        1>中斷
                中斷的頂半部分,也就是用request_irq注冊的中斷例程
                處中斷上下文,不可睡眠
        2>可延遲函數(shù)(軟中斷及基于軟中斷實(shí)現(xiàn)的其它處理函數(shù),如tasklet, 定時(shí)器等)
                被中斷的頂半部分觸發(fā),并在稍后時(shí)間內(nèi)執(zhí)行的例程。
                處中斷上下文,不可睡眠

                一般是:
                由open_softirq注冊,在中斷處理中由raise_softirq觸發(fā)的函數(shù)。
                由tasklet_init初始化,在中斷處理中由tasklet_schedule調(diào)度的函數(shù)。

        3>異常
                典型是系統(tǒng)調(diào)用(內(nèi)核線程也算吧)。
                處進(jìn)程上下文,可睡眠
               
中斷,異常及可延遲函數(shù)之間對cpu的爭奪:
        1>中斷處理程序可以搶占其它中斷處理程序
        2>中斷處理程序可以搶占異常
        3>中斷處理程序可以搶占可延遲函數(shù)

        4>中斷處理程序在退出前觸發(fā)可延遲函數(shù)。
        5>一個(gè)可延遲函數(shù)不能搶占中斷處理程序。
        6>一個(gè)可延遲函數(shù)不能搶占另一個(gè)可延遲函數(shù)。
        7>相同類型的軟中斷可以并發(fā)的運(yùn)行在多個(gè)cpu上
        8>相同類型的tasklet只能被串行的執(zhí)行,不同類型的tasklet可以在幾個(gè)cpu上并發(fā)執(zhí)行。tasklet基于軟中斷而實(shí)現(xiàn)(可視為加入約束的軟中斷?)。
        9>軟中斷始終在觸發(fā)它的同一個(gè)cpu上執(zhí)行,tasklet也是。

        10>異常不能搶占中斷,不能搶占可延遲函數(shù),不能搶占異常(缺頁不在考慮之中)

二.自信號旋鎖,信號量及關(guān)中斷的之間的……
        自旋鎖:在竟?fàn)帡l件下,反復(fù)執(zhí)行緊湊的循環(huán)指令,直到鎖被釋放。防止多cpu間的竟?fàn)帯?br />         信號量:在竟?fàn)帡l件下,不允許內(nèi)核控制路徑繼續(xù)進(jìn)行,相應(yīng)的進(jìn)程被掛起。因此中斷處理,和可延遲函數(shù)都不能使用信號量。
        關(guān)中斷:禁用本地中斷。關(guān)中斷都是為了防止同一cpu下的中斷搶占,關(guān)本地中斷后,可延遲函數(shù)也被禁止了。

三.Linux內(nèi)核中在自旋鎖,信號量及中斷禁止之間的選擇

3.1僅異常時(shí)的數(shù)據(jù)訪問保護(hù)
        1>單處理器:此時(shí)的CPU運(yùn)行在內(nèi)核態(tài)為用戶進(jìn)程提供服務(wù)。此竟?fàn)帡l件可通過信號量避免。
        2>多處理器:與單處理器環(huán)境時(shí)相同

        3>訪問per-cpu變量時(shí),要禁用搶占。
       
3.2僅中斷時(shí)的數(shù)據(jù)訪問保護(hù)
        單處理器
        1>只有一個(gè)中斷的“上半部分”訪問時(shí),中斷都相對自己串行地執(zhí)行,無需同步。
        2>多個(gè)中斷的“上半部分”訪問時(shí),要關(guān)中斷。
        多處理器
        3>只有一個(gè)中斷的“上半部分”訪問時(shí),中斷都相對自己串行地執(zhí)行,無需保護(hù)。
        4>多個(gè)中斷可訪問時(shí),要關(guān)中斷,并加上自旋鎖。

3.3僅可延遲函數(shù)(軟中斷和tasklet)中的數(shù)據(jù)訪問保護(hù)
        單處理器
        1>上不存在競爭問題
        多處理器
        2>軟中斷訪問的數(shù)據(jù)使用自旋鎖,防止多cpu竟?fàn)?br />         3>僅由一種tasklet訪問的數(shù)據(jù)結(jié)構(gòu)不需要保護(hù)
        4>被多種tasklet訪問需要用自旋鎖保護(hù)

3.4.異常和中斷時(shí)的數(shù)據(jù)訪問保護(hù)(只考慮一種中斷與一種異常)
        單處理器
        1>在異常的訪問中關(guān)閉中斷;中斷的訪問中不需要保護(hù)
        多處理器
        2>在異常的訪問中關(guān)閉本地中斷,并加上自旋鎖;中斷的訪問中加上自旋鎖即可(可用緊循環(huán)和down_trylock代替自旋的功能)

3.5.異常和可延遲函數(shù)中的數(shù)據(jù)訪問保護(hù)(只考慮一種異常與一種可延遲函數(shù))
        單處理器
        1>在異常訪問中關(guān)閉中斷(禁止可延遲函數(shù)更合適);可延遲函數(shù)無需保護(hù)
        多處理器
        2>在異常訪問中關(guān)閉中斷(禁止可延遲函數(shù)更合適)并加上自旋鎖;可延遲函數(shù)加上自旋鎖

3.6.中斷和可延遲函數(shù)中的數(shù)據(jù)訪問保護(hù)(只考慮一種中斷與一種可延遲函數(shù))
        單處理器
        1>可延遲函數(shù)訪問中關(guān)閉中斷;中斷的訪問中不需要保護(hù)
        多處理器
        2>可延遲函數(shù)訪問中關(guān)閉中斷,并加上自旋鎖;中斷的訪問中加上自旋鎖

3.7.異常,中斷和可延遲函數(shù)中的數(shù)據(jù)訪問保護(hù)(只考慮一種中斷一種可延遲函數(shù)一種異常)
        單處理器
        1>在異常訪問中關(guān)閉中斷; 可延遲函數(shù)訪問中關(guān)閉中斷 ;中斷的訪問中不需要保護(hù)
        多處理器
        2>在異常訪問中關(guān)閉中斷并加上自旋鎖; 可延遲函數(shù)訪問中關(guān)閉中斷并加上自旋鎖 ;中斷的訪問中加上自旋鎖

其它的場景都可看作以上場景的組合
        如:異常,中斷和可延遲函數(shù)中的數(shù)據(jù)訪問保護(hù)?煽醋髦袛嗪涂裳舆t函數(shù),中斷和異常的組合。可同時(shí)使用相應(yīng)的保護(hù)方式。

評分

參與人數(shù) 2可用積分 +10 收起 理由
瀚海書香 + 2 多謝分享
Godbach + 8 感謝分享

查看全部評分

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
2 [報(bào)告]
發(fā)表于 2011-06-17 12:28 |只看該作者
感謝 LZ  分析

論壇徽章:
6
金牛座
日期:2013-10-08 10:19:10技術(shù)圖書徽章
日期:2013-10-14 16:24:09CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34獅子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亞洲杯之阿聯(lián)酋
日期:2015-05-09 14:36:15
3 [報(bào)告]
發(fā)表于 2011-06-19 16:49 |只看該作者
本帖最后由 瀚海書香 于 2011-06-19 16:51 編輯

大家可以結(jié)合帖子http://72891.cn/viewthread.php?tid=2016217,加深一下對內(nèi)核同步的理解。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2011-06-20 09:38 |只看該作者
不錯(cuò),學(xué)習(xí)了
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP