美文网首页
Linux 内核各类锁

Linux 内核各类锁

作者: cglmcu | 来源:发表于2019-03-30 11:22 被阅读0次

原子操作:atomic

自旋锁:如果进线程无法取得锁,进线程不会立刻放弃CPU时间片,而是一直申请CPU时间片轮询自旋锁,直到获取为止,一般应用于加锁时间很短(1ms左右或更低)的场景。


互斥锁:无法获取琐时,进线程立刻放弃剩余的时间片并进入阻塞(或者说挂起)状态,同时保存寄存器和程序计数器的内容(保存现场,上下文切换的前半部分),当可以获取锁时,进线程激活,等待被调度进CPU并恢复现场(上下文切换下半部分)

上下文切换会带来数十微秒的开销,不要在性能敏感的地方用互斥锁

读写锁:写锁被占用时,所有申请读锁和写锁的进线程都会被阻塞,读锁被占用时,申请写锁的进线程被阻塞,其他申请读锁的进线程不会。

读写自旋锁:同时集成自旋锁和读写锁的优点,tbb库提供该锁。

相关文章

  • Linux 内核各类锁

    原子操作:atomic 自旋锁:如果进线程无法取得锁,进线程不会立刻放弃CPU时间片,而是一直申请CPU时间片轮询...

  • 【翻译】Linux 锁的种类和规则

    原文地址:Linux内核文档 介绍 内核提供了多种锁定原语,可以将其分为几类: 睡眠锁 CPU本地锁 自旋锁 本文...

  • Linux设备模型-设备模型介绍

    Linux是一个宏内核,包括了各类设备的驱动。为了减少设备多样性带来的Linux内核驱动开发的复杂度,以及处理热插...

  • Android 进程间通信 Binder IPC

    Android 整体架构 从下往上依次为 内核层:Linux 内核和各类硬件设备的驱动,这里需要注意的是,Bind...

  • IMX6ULL学习笔记(8)——获取和编译Linux内核

    一、简介 1.1 Linux内核 Kernel 即是Linux内核,Linux内核采用宏内核架构,即Linux大部...

  • synchronized和lock

    自旋锁 线程被阻塞后便进入内核Linux调度状态,这个会导致系统在用户态和内核态来回切换,严重影响锁的性能 缓解上...

  • Linux中的各种锁

    在Linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、...

  • 3. linux内核相关问题

    1) Linux中主要有哪几种内核锁? 说明:在多核处理器下,会存在多个进程处于内核态的情况,在内核态下,进程是可...

  • Linux内核开发环境配置

    Linux不同版本内核安装 查看Linux版本 查看内核版本 解压内核压缩包 Linux内核源码安装流程 VSCo...

  • Linux内核与发行版

    Linux内核 Linux内核是什么 Linux内核是Linux操作系统的核心, 负责硬件管理, 比如管理内存、管...

网友评论

      本文标题:Linux 内核各类锁

      本文链接:https://www.haomeiwen.com/subject/mrsjbqtx.html