• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

【达人提问】Linux 内核中的自旋锁机制是什么

东方青 2017-12-11 浏览量:1062
Linux 内核中的自旋锁机制是什么》??
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。

    自旋锁用于多个CPU系统中,在单处理器系统中,自旋锁不起锁的作用,只是禁止或启用内核抢占。在自旋锁忙等待期间,内核抢占机制还是有效的,等待自旋锁释放的线程可能被更高优先级的线程抢占CPU。

    自旋锁基于共享变量。一个线程通过给共享变量设置一个值来获取锁,其他等待线程查询共享变量是否为0来确定锁现是否可用,然后在忙等待的循环中"自旋"直到锁可用为止。

    自旋锁在内核中主要用来防止多处理器中并发访问临界区,防止内核抢占造成的竞争。 另外自旋锁不允许任务睡眠 ( 持有自旋锁的任务睡眠会造成自死锁 —— 因为睡眠有可能造成持有锁的内核任务被重新调度,而再次申请自己已持有的锁 ) 它能够在中断上下文中使用 

    • 发布于 2017-12-14
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :在原厂官网没有查到有关的工艺说明,也没有找到PCN变更的文档或资料,同时客户提供的图片来看,缺口形状区域不规则,缺口的对应的引脚位置也无规律性,无法确认 回复

其他答案 数量:9
  • 相当于操作内核抢占的一个开关
    • 发布于2017-12-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :DC27W2PA00LF 厂牌:Amphenol ICC (FCI) 回复

  • 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。因为自旋锁不会引起调用者睡眠,所以自旋锁的效率远 高于互斥锁。虽然它的效率比互斥锁高,但是它也有些不足之处:
        1、自旋锁一直占用CPU,他在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时 间内获得锁,这无疑会使CPU效率降低。
        2、在用自旋锁时有可能造成死锁,当递归调用时有可能造成死锁,调用有些其他函数也可能造成死锁,如 copy_to_user()、copy_from_user()、kmalloc()等。
    因此我们要慎重使用自旋锁,自旋锁只有在内核可抢占式或SMP的情况下才真正需要,在单CPU且不可抢占式的内核下,自旋锁的操作为空操作。自旋锁适用于锁使用者保持锁时间比较短的情况下。
    • 发布于2017-12-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.terraelectronica.ru/pdf/show?pdf_file=%252Fds%252Fpdf%252FH%252FHF46F_en.pdf 回复

  • 你这是问实现机制,还是问自选锁是什么?
    • 发布于2017-12-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://docs.rs-online.com/861c/0900766b8113c1bf.pdf 回复

电子老工程师 回复了  :BLM18HG102SH1D不是完全替代 回复

  • 这种机制是用于Linux内核同步机制的。

    对于单处理器,并不一定要使用自旋锁,而是可以通过中断中关中断的方式实现。
    主要应用于多处理器,在内核中应用于中断处理部分。自旋锁最多只有一个内核占用,防止多核抢占资料
    ​​

    • 发布于2017-12-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :只有规格书上面的解剖图,以下截图红色圈地方。 回复

  • 确保资源只能被一个访问者使用,其它访问者只能等待,这种机制就是自旋锁
    • 发布于2017-12-12
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :硬件自检失败,检查一下交换机周围硬件部分是否正常,连接是官网链接,可以下载该交换机的一些资料 回复

  • http://blog.csdn.net/chinazhangzhong123/article/details/51760816

    原子操作,只能被一个对象访问,其它对象只能等待其空闲再访问。

    • 发布于2017-12-12
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :规格书没有查到,原厂官网和供应商平台都没有提供 回复

电子老工程师 回复了  :符合EU RoHS Compliance https://www.samtec.com/products/qte-020-01-l-d-a-k 回复

电子老工程师 回复了  :1是包装 回复

相关问题

问题达人换一批

【达人提问】Linux 内核中的自旋锁机制是什么