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