• <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>

            martin

            thinking

            常用鏈接

            統計

            software

            最新評論

            Linux操作系統中中斷上下文中的互斥

            在Linux系統中,有兩種不同的上下文:進程上下文、中斷上下文。
            在中斷中沒有進程上下文,而具有中斷上下文,因此在中斷上下文中不能發生睡眠,也就是不能發生進程切換。
            這就決定了在在中斷上下文中不能采用同步原語(信號量,管程、同步變量等)和長期互斥原語(這會導致進程睡眠), 而只能采用短期互斥原語(例如自旋鎖)。

            曾經,中斷處理程序并不具有自己的棧。相反,它們共享所中斷進程的內核棧。內核棧的大小是兩頁,具體地說,在32位體系結構上是8KB,在64位體系結構上是16KB.
            現在。中斷處理程序有了自己的棧,每個處理器一個,大小為一頁。這個棧就稱為中斷棧,盡管中斷棧的大小是原先共享棧的一半,但平均可用棧空間大得多,因為中斷處理
            程序把這一整頁占為己有。

            UP(單CPU系統)上的中斷處理
            互斥
            如果一個中斷處理程序的代碼訪問或者更新了由非中斷的代碼(通常稱為基準代碼)使用的同一數據結構,那么就會出現競爭條件。
            幸運的是,得到允許的以內核態執行的進程會臨時禁止中斷。因此,只要基準代碼要更新一個與中斷處理程序共享的數據結構,那么就
            首先禁止中斷,執行臨界段,然后再重新允許中斷。禁止和允許中斷的動作就實現了互斥。
            在采取中斷互斥時,必須使用函數顯示地把編碼寫入算法中。

            MP(多CPU系統)上
            在MP系統上,中斷可以在任何處理器上出現。從最低限度上來說,每個進程會接收時鐘中斷,但也可能接收I/O中斷。在MP系統上,例程
            SPL(禁止中斷)所提供的保護并不充分,因為它們執行影響執行它們的處理器上的中斷優先級。中斷可能會在另一個處理器上出現,如果設備驅動程序
            正在別處運行,那么會造成一個競爭條件。因為中斷處理程序代表另一個進入內核的入口點。

            當基準驅動程序代碼和中斷處理程序之間共享數據結構時,UP可以通過屏蔽中斷來防止出現競爭條件的技術,在多線程MP內核中還不充分。
            臨界段要在一個處理器上執行,執行屏蔽中斷例程只會屏蔽在那個處理器上出現的中斷。如果在別的處理器上出現中斷,那么立即就會有
            兩個處理器同時訪問、而且可能更新臨界資源。既然這些臨界段需要短期互斥,那么可以使用自旋鎖來對數據進行保護。

            如果不考慮中斷處理程序和基準代碼之間的互斥,則Linux中的中斷處理程序是無須重入的。當一個給定的中斷處理程序正在執行時,相應的中斷線
            在所有處理器上都會被屏蔽掉,以防止同一中斷線上接收另一個新的中斷。通常情況下,所有的其他中斷都是打開的,所以這些不同中斷線上的其他中斷
            都能處理,但當前中斷線總是被禁止的。由此可以看出,同一個中斷處理程序絕不會被同時調用以處理嵌套的中斷。這極大地簡化了中斷程序的編寫。

            posted on 2013-07-08 14:01 martin_yahoo 閱讀(3431) 評論(0)  編輯 收藏 引用

            久久久99精品成人片中文字幕| 久久亚洲国产成人影院网站| 久久人与动人物a级毛片| 久久久久久久免费视频| 久久精品国产乱子伦| 久久精品免费观看| 欧美激情精品久久久久久久九九九| 亚洲精品第一综合99久久| 午夜精品久久久久久99热| 日本福利片国产午夜久久| 久久人人爽人人人人爽AV| 久久久久夜夜夜精品国产| 国产99久久久国产精品小说| 精品国产一区二区三区久久久狼 | 久久久久久久久66精品片| 精品国产福利久久久| 一级做a爰片久久毛片看看| 99精品国产在热久久无毒不卡| 亚洲精品国产自在久久| 91精品国产91久久久久福利| 日韩精品久久久久久久电影| 亚洲伊人久久大香线蕉苏妲己| 伊色综合久久之综合久久| 亚洲午夜久久久精品影院| 久久精品国产久精国产思思| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久久久国产一级毛片高清板 | 久久久久人妻一区精品色 | 伊人久久大香线蕉av不卡| 久久精品国产福利国产琪琪 | 一本色道久久88综合日韩精品| 国产成人AV综合久久| 91精品国产高清91久久久久久| 久久午夜无码鲁丝片秋霞| 无码国内精品久久人妻麻豆按摩| 国产精品免费看久久久香蕉| 狠狠干狠狠久久| 免费国产99久久久香蕉| 伊人久久综在合线亚洲2019| AA级片免费看视频久久| 国内精品久久久久影院网站|