![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发与竞态
文章平均质量分 64
wax5798
此人很懒,是一条咸鱼无疑了
展开
-
并发与竞态——除了锁之外的办法
Release log:2021-05-30 日: 完成初版原文地址在某些情况下,原子的访问可以不需要完整的锁免锁算法经常用于免锁的生产者/消费者任务的数据结构之一是循环缓冲区。内核中有一个通用的循环缓冲区实现,参阅<linux/kfifo.h>原子变量如果共享的资源是一个简单的整数值,则可以使用原子变量 atomic_t一个 atomic_t 变量可以用来保存一个 int 值,但它不能记录大于 24 位的整数对应的函数// 初始化原子变量void atomic_se.原创 2021-05-30 17:37:25 · 213 阅读 · 0 评论 -
并发与竞态——completion
Release log:2021-05-10 一: 完成初版原文地址内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束。这个活动可能是,创建一个新的内核线程或者新的用户空间进程、对一个已有进程的某个请求,或者某种类型的硬件动作,等等。在这种情况下,我们可以使用信号量来同步这两个任务。然而,内核中提供了另外一种机制—— completion 接口。completion 是一种轻量级的机制,他允许一个线程告诉另一个线程某个工作已经完成。completion 的初始化为了原创 2021-05-10 21:26:13 · 192 阅读 · 0 评论 -
并发与竞态——自旋锁
Release log:2021-05-07 五: 完成初版2021-05-10 一: 添加自旋锁和信号量的对比原文地址Linux 内核中自旋锁的使用在 Linux 内核中,要使用自旋锁需要包含的文件 <linux/spinlock.h>,锁的数据类型为 spinlock_t。自旋锁的声明以及初始化void spin_lock_init(spinlock_t *lock);自旋锁的获取以及释放void spin_lock(spinlock_t *lock);void s原创 2021-05-10 20:54:52 · 140 阅读 · 0 评论 -
并发与竞态——信号量与互斥体
说明前一段时间学习了《LINUX 设备驱动程序》中的“并发与竞态”章节,没过多久在阅读代码时,看到了 spin_lock_bh 这个函数,然后一脸瞢逼,这个函数后缀有啥意义来着?所以决定对这一章节做一个简单整理,一是为了加深印象,二是为了后续的快速回顾以及查找未完待续。。。哈哈...原创 2021-04-24 22:02:22 · 145 阅读 · 0 评论