
并发控制
文章平均质量分 85
xtx1990
新一代年轻人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux内核同步介绍和方法(1)
Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态,linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。 Linux内核是多进程、多线程的操作系统,它提供了相当完整的内核同步方法。内核同步方法列表如下: 中断屏蔽 原子操作 自旋锁 读写自旋锁 顺序锁 信号量 读写信号量 BKL(大内核锁) Seq锁 一、并发与竞态:原创 2012-11-12 13:36:53 · 387 阅读 · 0 评论 -
Linux内核同步介绍和方法(2)
五、读写自旋锁 如果临界区保护的数据是可读可写的,那么只要没有写操作,对于读是可以支持并发操作的。对于这种只要求写操作是互斥的需求,如果还是使用自旋锁显然是无法满足这个要求(对于读操作实在是太浪费了)。为此内核提供了另一种锁-读写自旋锁,读自旋锁也叫共享自旋锁,写自旋锁也叫排他自旋锁。 读写自旋锁是一种比自旋锁粒度更小的锁机制,它保留了“自旋”的概念,但是在写操作方面,只能最多有一个写进程,原创 2012-11-12 13:36:58 · 383 阅读 · 0 评论 -
各种同步机制的比较
类型 机制 应用场合 spinlock 使用忙等方法,进程不挂起 (1)用于多处理器间共享数据(2)在可抢占的内核线程里共享数据(3)自旋锁适合于保持时间非常短的情况,它可以在任何上下文使用,比如中断上下文 信号量 阻塞式等待,进程挂起 (1)适合于共享区保持时间教长的情况(2)只能用于进程上下文 原子操作 数据的原子访问 (1)共享简单的数据类型:整型,原创 2012-11-12 13:37:00 · 503 阅读 · 0 评论