`

spink_lock及其各个变种区别

 
阅读更多

spin_lock 用于阻止在不同CPU上的执行单元对共享资源的同时访问以及不同进程上下文互相抢占导致的对共享资源的非同步访问,而中断失效和软中断失效却是为了阻止在同一CPU上软中断或中断对共享资源的非同步访问。

 

1.有些情况下需要在访问共享资源时必须中断失效,而访问完后必须中断使能,这样的情形使用spin_lock_irq和spin_unlock_irq最好;

2.spin_lock_irqsave保存访问共享资源前的中断标志,然后失效中断;spin_unlock_irqrestore将恢复访问共享资源前的中断标志而不是直接使能中断;

3.如果被保护的共享资源只在进程上下文访问和软中断上下文访问,那么当在进程上下文访问共享资 源时,可能被软中断打断,从而可能进入软中断上下文来对被保护的共享资源访问,因此对于这种情况,对共享资源的访问必须使用spin_lock_bh和 spin_unlock_bh来保护。当然使用spin_lock_irq和spin_unlock_irq以及spin_lock_irqsave和 spin_unlock_irqrestore也可以,它们失效了本地硬中断,失效硬中断隐式地也失效了软中断。但是使用spin_lock_bh和 spin_unlock_bh是最恰当的,它比其他两个快。如果被保护的共享资源只在进程上下文和tasklet或timer上下文访问,那么应该使用与上面情况相同的获得和释放锁的宏,因为tasklet和timer是用软中断实现的。

4.对tasklet和timer和互斥操作
如 果被保护的共享资源只在一个tasklet或timer上下文访问,那么不需要任何自旋锁保护,因为同一个tasklet或timer只能在一个CPU上 运行,即使是在SMP环境下也是如此;如果被保护的共享资源只在两个或多个tasklet或timer上下文访问,那么对共享资源的访问仅需要用 spin_lock和spin_unlock来 保护,不必使用_bh版本,因为当tasklet或timer运行时,不可能有其他tasklet或timer在当前CPU上运行。

5.spin_lock用于阻止在不同CPU上的执行单元对共享资源的同时访问以及不同进程上下文互相抢占导致的对共享资源的非同步访问,而中断失效和软中断失效却是为了阻止在同一CPU上软中断或中断对共享资源的非同步访问

分享到:
评论

相关推荐

    Spink:XtermgVimMacVim 的语法高亮

    所以我很快就创建了 Spink。 这个插件可以在 X Window 系统(不是 cterm)、MacVim 和 gVim 上与 Xterm 模拟器一起正常工作。 目前它面向 Python、PHP、HTML5、SASS/CSS 和通用 Javascript。 切换到 GNU Emacs 后...

    DM Spink 的 NURBS 工具箱:重新上传了 DM Spink 的 NURBS 工具箱。 上一个链接已断开。-matlab开发

    % NURBS 工具箱。 % 版本 1.0 % %演示-NURBS演示% % nrbmak - 从控制点和节点构建 NURBS。 % nrbtform - 应用缩放、平移或旋转操作符。 % nrbkntins - 结插入/细化。 % nrbdegelev - 度数提升。...

    业界技术领域的NURBS 和 POLYGON 工具。

    NURBS模型具有连续性,这意味着它们在各个方向上都能保持一致的光滑度,这对于汽车、飞机等需要精确外形的模型尤其重要。此外,NURBS模型可以轻松地进行参数化修改,允许设计师快速调整模型的形状而无需重新构建整个...

    nurbs_toolbox.rar_NURBS曲面matlab_nurbs_nurbs MATLAB_nurbs曲线_nurbs

    matlab NURBS 工具箱,应用于matlab中NURBS曲线、曲面的设计.

    Handbook_of_Web_Log_Analysis

    Jansen、Amanda Spink与Isak Taksa三位学者共同编撰的专业书籍。该书由Information Science Reference出版社出版,并在2009年正式发行。作为一本专注于网站日志分析领域的权威著作,《Handbook of Web Log Analysis...

    MATLAB工具箱-nurbs_toolbox.rar

    MATLAB是一款强大的数学计算软件,广泛应用于工程计算、科学建模和数据分析等领域。"nurbs_toolbox" 是MATLAB中的一个专用工具箱,专门用于处理非均匀有理B样条(NURBS)曲线和曲面。这个工具箱极大地扩展了MATLAB在...

    NURBS曲线matlab工具箱

    NURBS曲线与曲面是计算机图形学和CAD(计算机辅助设计)领域中的核心概念,特别是在高级几何建模中有着广泛的应用。NURBS代表非均匀有理B样条(Non-Uniform Rational B-Splines),它是一种强大的数学工具,能够精确...

    MATLAB工具箱-nurbstoolbox.rar

    MATLAB是一款广泛应用于科学计算、图像处理、控制系统设计等领域的高级编程环境。它以其简洁的语法和丰富的内置函数库而闻名。"nurbstoolbox"是MATLAB的一个扩展工具箱,专门用于非均匀有理B样条(NURBS)的处理。...

    MATLAB工具箱nurbstoolbox

    The NURBS toolbox is collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS).

    react-native-spinkit:React Native的动画加载指示器集合

    react-native-spinkit 动画加载指标集合React本机端口。 使用漂亮的微调器加载您的IAP :backhand_index_pointing_down: 预览 入门 npm install react-native-spinkit@latest --save对于RN <...

    信息行为研究的知识图谱综述1

    Spink则认为信息行为是从获取新信息到整合到个人知识体系的过程,包括信息的吸收、交换和组织。这些定义反映了信息行为的多样性和复杂性,为后续的理论发展奠定了基础。 在信息行为的研究分支中,信息寻求是最受...

    NURBS:转换后的 NURBS 工具箱-matlab开发

    由 Mark Spink 创建的 NURBS 工具箱是一个非常有用的工具。 但是,有些例程是用 C 编写的。只要您知道如何将它们编译为适用于您的机器的 mex 文件,这不一定是件坏事。 如果您不想弄乱 mex 文件,或者您希望能够编辑...

    Speringer.Web.Search.Multidisciplinary.Perspectives.Mar.2008

    《Speringer.Web.Search.Multidisciplinary.Perspectives.Mar.2008》是一本深入探讨网络搜索引擎在多个学科视角下的研究与应用的专著,由Amanda Spink和Michael Zimmer共同编辑。此书汇集了来自全球不同领域的专家对...

Global site tag (gtag.js) - Google Analytics