日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核的中断上下文,Linux操作系统中中断上下文中的互斥

發布時間:2025/3/21 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核的中断上下文,Linux操作系统中中断上下文中的互斥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UP(單CPU系統)上的中斷處理

互斥

如果一個中斷處理程序的代碼訪問或者更新了由非中斷的代碼(通常稱為基準代碼)使用的同一數據結構,那么就會出現競爭條件。

幸運的是,得到允許的以內核態執行的進程會臨時禁止中斷。因此,只要基準代碼要更新一個與中斷處理程序共享的數據結構,那么就

首先禁止中斷,執行臨界段,然后再重新允許中斷。禁止和允許中斷的動作就實現了互斥。

在采取中斷互斥時,必須使用函數顯示地把編碼寫入算法中。

MP(多CPU系統)上

在MP系統上,中斷可以在任何處理器上出現。從最低限度上來說,每個進程會接收時鐘中斷,但也可能接收I/O中斷。在MP系統上,例程

SPL(禁止中斷)所提供的保護并不充分,因為它們執行影響執行它們的處理器上的中斷優先級。中斷可能會在另一個處理器上出現,如果設備驅動程序

正在別處運行,那么會造成一個競爭條件。因為中斷處理程序代表另一個進入內核的入口點。

當基準驅動程序代碼和中斷處理程序之間共享數據結構時,UP可以通過屏蔽中斷來防止出現競爭條件的技術,在多線程MP內核中還不充分。

臨界段要在一個處理器上執行,執行屏蔽中斷例程只會屏蔽在那個處理器上出現的中斷。如果在別的處理器上出現中斷,那么立即就會有

兩個處理器同時訪問、而且可能更新臨界資源。既然這些臨界段需要短期互斥,那么可以使用自旋鎖來對數據進行保護。

如果不考慮中斷處理程序和基準代碼之間的互斥,則Linux中的中斷處理程序是無須重入的。當一個給定的中斷處理程序正在執行時,相應的中斷線

在所有處理器上都會被屏蔽掉,以防止同一中斷線上接收另一個新的中斷。通常情況下,所有的其他中斷都是打開的,所以這些不同中斷線上的其他中斷

都能處理,但當前中斷線總是被禁止的。由此可以看出,同一個中斷處理程序絕不會被同時調用以處理嵌套的中斷。這極大地簡化了中斷程序的編寫。

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

總結

以上是生活随笔為你收集整理的linux内核的中断上下文,Linux操作系统中中断上下文中的互斥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。