青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 60  文章 - 5  trackbacks - 0
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(2)

隨筆分類(42)

隨筆檔案(60)

文章檔案(2)

我收藏的博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

資料來源:http://blog.chinaunix.net/u1/38576/showart_367985.html
內核同步措施

    為了避免并發,防止競爭。內核提供了一組同步方法來提供對共享數據的保護。 我們的重點不是介紹這些方法的詳細用法,而是強調為什么使用這些方法和它們之間的差別。
    Linux 使用的同步機制可以說從2.0到2.6以來不斷發展完善。從最初的原子操作,到后來的信號量,從大內核鎖到今天的自旋鎖。這些同步機制的發展伴隨 Linux從單處理器到對稱多處理器的過度;伴隨著從非搶占內核到搶占內核的過度。鎖機制越來越有效,也越來越復雜。
    目前來說內核中原子操作多用來做計數使用,其它情況最常用的是兩種鎖以及它們的變種:一個是自旋鎖,另一個是信號量。我們下面就來著重介紹一下這兩種鎖機制。


自旋鎖
------------------------------------------------------
    自旋鎖是專為防止多處理器并發而引入的一種鎖,它在內核中大量應用于中斷處理等部分(對于單處理器來說,防止中斷處理中的并發可簡單采用關閉中斷的方式,不需要自旋鎖)。
    自旋鎖最多只能被一個內核任務持有,如果一個內核任務試圖請求一個已被爭用(已經被持有)的自旋鎖,那么這個任務就會一直進行忙循環——旋轉——等待鎖重新可用。
要是鎖未被爭用,請求它的內核任務便能立刻得到它并且繼續進行。自旋鎖可以在任何時刻防止多于一個的內核任務同時進入臨界區,因此這種鎖可有效地避免多處理器上并發運行的內核任務競爭共享資源。
    事實上,自旋鎖的初衷就是:在短期間內進行輕量級的鎖定。一個被爭用的自旋鎖使得請求它的線程在等待鎖重新可用的期間進行自旋(特別浪費處理器時間),所以自旋鎖不應該被持有時間過長。如果需要長時間鎖定的話, 最好使用信號量。
自旋鎖的基本形式如下:
    spin_lock(&mr_lock);
    //臨界區
    spin_unlock(&mr_lock);

    因為自旋鎖在同一時刻只能被最多一個內核任務持有,所以一個時刻只有一個線程允許存在于臨界區中。這點很好地滿足了對稱多處理機器需要的鎖定服務。在單處理器上,自旋鎖僅僅當作一個設置內核搶占的開關。如果內核搶占也不存在,那么自旋鎖會在編譯時被完全剔除出內核。
    簡單的說,自旋鎖在內核中主要用來防止多處理器中并發訪問臨界區,防止內核搶占造成的競爭。另外自旋鎖不允許任務睡眠(持有自旋鎖的任務睡眠會造成自死鎖——因為睡眠有可能造成持有鎖的內核任務被重新調度,而再次申請自己已持有的鎖),它能夠在中斷上下文中使用
    死鎖:假設有一個或多個內核任務和一個或多個資源,每個內核都在等待其中的一個資源,但所有的資源都已經被占用了。這便會發生所有內核任務都在相互等待,但它們永遠不會釋放已經占有的資源,于是任何內核任務都無法獲得所需要的資源,無法繼續運行,這便意味著死鎖發生了。自死瑣是說自己占有了某個資源,然后自己又申請自己已占有的資源,顯然不可能再獲得該資源,因此就自縛手腳了。


信號量
------------------------------------------------------
    Linux中的信號量是一種睡眠鎖。如果有一個任務試圖獲得一個已被持有的信號量時,信號量會將其推入等待隊列,然后讓其睡眠。這時處理器獲得自由去執行其它代碼。當持有信號量的進程將信號量釋放后,在等待隊列中的一個任務將被喚醒,從而便可以獲得這個信號量。
    信號量的睡眠特性,使得信號量適用于鎖會被長時間持有的情況;只能在進程上下文中使用,因為中斷上下文中是不能被調度的;另外當代碼持有信號量時,不可以再持有自旋鎖。

信號量基本使用形式為:
static DECLARE_MUTEX(mr_sem);//聲明互斥信號量
if(down_interruptible(&mr_sem))
    //可被中斷的睡眠,當信號來到,睡眠的任務被喚醒
    //臨界區
up(&mr_sem);


信號量和自旋鎖區別
------------------------------------------------------
    雖然聽起來兩者之間的使用條件復雜,其實在實際使用中信號量和自旋鎖并不易混淆。注意以下原則:
    如果代碼需要睡眠——這往往是發生在和用戶空間同步時——使用信號量是唯一的選擇。由于不受睡眠的限制,使用信號量通常來說更加簡單一些。如果需要在自旋鎖和信號量中作選擇,應該取決于鎖被持有的時間長短。理想情況是所有的鎖都應該盡可能短的被持有,但是如果鎖的持有時間較長的話,使用信號量是更好的選擇。另外,信號量不同于自旋鎖,它不會關閉內核搶占,所以持有信號量的代碼可以被搶占。這意味者信號量不會對影響調度反應時間帶來負面影響。


自旋鎖對信號量
------------------------------------------------------
需求                     建議的加鎖方法

低開銷加鎖               優先使用自旋鎖
短期鎖定                 優先使用自旋鎖
長期加鎖                 優先使用信號量
中斷上下文中加鎖          使用自旋鎖
持有鎖是需要睡眠、調度     使用信號量

posted on 2009-06-02 11:49 黃劍父 閱讀(359) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本色道久久加勒比精品| 亚洲乱码一区二区| 久久人人看视频| 久久久久国产精品一区三寸| 久久福利资源站| 久久久久久久尹人综合网亚洲| 国产精品久久久久免费a∨| 欧美日韩国产探花| 国产精品美女www爽爽爽| 国产精品推荐精品| 国产精品一二三| 伊人春色精品| 9色精品在线| 欧美在线网址| 亚洲高清av在线| 亚洲精选大片| 久久成人18免费网站| 欧美激情一区二区三区蜜桃视频| 最新日韩中文字幕| 在线一区亚洲| 久久久久久九九九九| 欧美日韩视频在线第一区| 国产一区二区电影在线观看| 亚洲精品你懂的| 久久久精品性| 99一区二区| 久久精品亚洲一区二区三区浴池| 亚洲激情电影中文字幕| 一本一本久久| 欧美v国产在线一区二区三区| 日韩视频免费大全中文字幕| 亚洲欧美日韩一区二区| 久久精品综合一区| 国产精品嫩草影院一区二区| 亚洲国产精品女人久久久| 亚洲欧美日韩第一区| 欧美大成色www永久网站婷| 亚洲视频一区| 欧美激情一级片一区二区| 国语自产精品视频在线看8查询8| 国产日韩一区在线| 亚洲久久成人| 免费中文字幕日韩欧美| 91久久精品一区| 一区二区精品在线| 亚洲一区在线免费观看| 欧美激情二区三区| 亚洲第一精品在线| 亚洲在线网站| 亚洲欧美日韩网| 亚洲第一伊人| 亚洲欧洲精品一区二区三区不卡| 国产麻豆视频精品| 亚洲精品日韩综合观看成人91| 一区二区三区在线视频免费观看| 国产精品久久一区主播| 99精品黄色片免费大全| 欧美成人在线网站| 麻豆成人精品| 亚洲人成网站影音先锋播放| 欧美国产欧美亚州国产日韩mv天天看完整| 久久精品国产第一区二区三区最新章节 | 美女精品视频一区| 在线一区欧美| 国产精品午夜电影| 亚洲综合精品自拍| 亚洲亚洲精品三区日韩精品在线视频 | 亚洲色无码播放| 91久久精品一区| 欧美剧在线观看| 亚洲午夜激情网站| 亚洲一级黄色av| 国产精品手机视频| 久久久亚洲综合| 可以看av的网站久久看| 亚洲精品一区二区三区av| 亚洲第一福利社区| 欧美日韩在线精品| 欧美一区二区黄色| 久久全球大尺度高清视频| 亚洲黄网站在线观看| 日韩午夜免费| 国产一区二区中文| 亚洲黄色有码视频| 国产精品久久网| 欧美不卡一区| 国产精品观看| 欧美h视频在线| 欧美天天综合网| 久久美女性网| 欧美日韩一区在线观看| 久久婷婷丁香| 欧美视频一区二区三区在线观看| 国产亚洲一二三区| 亚洲视频在线二区| 欧美久久成人| 欧美激情日韩| 国产精品福利在线观看网址| 欧美成人精品在线播放| 国产视频在线观看一区| 亚洲在线一区| 欧美二区在线观看| 欧美激情综合色| 欧美在线一二三四区| 欧美国产亚洲视频| 久久久久久久999精品视频| 欧美激情1区| 狂野欧美激情性xxxx欧美| 国产精品久久久久毛片大屁完整版| 激情视频一区二区三区| 亚洲免费成人| 亚洲电影网站| 欧美在线欧美在线| 午夜久久久久久| 欧美成人午夜影院| 蜜臀99久久精品久久久久久软件| 欧美亚洲综合在线| 亚洲一区免费看| 欧美jizzhd精品欧美巨大免费| 亚洲经典三级| 久久不射2019中文字幕| 亚洲欧美视频在线观看视频| 免费成人av资源网| 久久中文字幕一区| 国产亚洲精品高潮| 午夜天堂精品久久久久| 亚洲一区观看| 欧美色图五月天| 亚洲乱码国产乱码精品精可以看| 欧美日韩国产区| 欧美二区在线看| 亚洲国产精品一区| 麻豆久久婷婷| 久久躁日日躁aaaaxxxx| 狠狠做深爱婷婷久久综合一区| 久久―日本道色综合久久| 欧美日韩亚洲系列| 99国产麻豆精品| 亚洲一区中文| 国产精品日韩欧美大师| 亚洲性线免费观看视频成熟| 亚洲图色在线| 国产精品裸体一区二区三区| 亚洲视频精选在线| 亚欧成人精品| 国产有码一区二区| 另类av一区二区| 亚洲国产成人精品视频| 亚洲精品日韩在线观看| 欧美喷潮久久久xxxxx| 日韩亚洲欧美一区| 欧美亚洲视频在线观看| 国产在线观看91精品一区| 免费在线视频一区| 欧美亚洲视频在线观看| 亚洲欧美一区二区原创| 亚洲午夜在线观看| 小处雏高清一区二区三区| 欧美中文在线字幕| 久久中文精品| 国产精品女主播一区二区三区| 欧美二区在线播放| 久久久人人人| 久久手机精品视频| 久久久精品午夜少妇| 狠狠色狠色综合曰曰| 蜜桃伊人久久| 亚洲视频在线播放| 久久久噜久噜久久综合| 亚洲精品在线一区二区| 国产精品久久久久天堂| 久久久久久久综合狠狠综合| 91久久线看在观草草青青| 亚洲天堂av电影| 激情久久五月天| 欧美日在线观看| 久久精品欧美日韩精品| 日韩亚洲视频| 美女被久久久| 亚洲欧美日韩国产| 亚洲精品1234| 国产日韩精品视频一区二区三区| 亚洲国产精品成人| 小黄鸭精品密入口导航| 在线播放亚洲| 国产精品久久久久久久电影| 美女脱光内衣内裤视频久久影院 | 久久久久久久综合狠狠综合| 极品日韩久久| 国产精品久久国产三级国电话系列| 亚洲三级电影在线观看| 久久精品亚洲一区二区| 亚洲视频香蕉人妖| 亚洲国产国产亚洲一二三| 国产欧美日韩视频一区二区| 欧美人牲a欧美精品| 美乳少妇欧美精品| 久久亚洲美女| 久久精品国产清高在天天线| 亚洲男人天堂2024|