0
点赞
收藏
分享

微信扫一扫

互斥,同步,进程间通信和文件阻塞总结


互斥#########################

中断屏蔽***********************************

因为不能屏蔽其他CPU的中断,因此不能解决SMP多CPU引发的竞态,因为其他CPU也会引发竞争。

因此,单独使用中断屏蔽通常不是一种值得推荐的避免竞态的方法(换句话说,驱动中使用local_irq_disable/enable()通常意味着一个bug),它适合与下文将要介绍的自旋锁联合使用。


 

原子变量和原子位操作***********************************

优点:简单

缺点:只能实现对变量这种资源进行互斥,不能对其他类型的资源进行互斥。


 

自旋锁***********************************

自旋锁只有在内核可抢占或SMP(多处理器)的情况下才真正需要,在单CPU且不可抢占的内核下,自旋锁的所有操作都是空操作。

不是说在单CPU且不可抢占的内核下不可以用自旋锁,而是在同一时间内,没有其他程序跟你竞争临界资源,就算使用了自旋锁也无意义。


 

读写锁***********************************

 

顺序锁***********************************

读操作要读两次,如果两次相等就会就不会继续读,不相等就继续读。


信号量***********************************
优点:可以睡眠
缺点:如果没有获得信号量,马上睡眠,从睡眠到唤醒的时间段过长,不适合等待时间较短的程序。


互斥量:
优点:可以睡眠
缺点:暂时先等待一小段时间,如果没有获得互斥量再睡眠,这样更高效。

RCU机制
优点:适合对链表的操作,适合读多写少
缺点:由于有宽限期,所以等待所有的读结束需要时间


同步#########################

完成量:***********************************

适用于线程同步


条件变量:***********************************
条件变量其实是用于实现生产者和消费者的问题
消费者线程启动,获取互斥量读缓冲区,发现为空,阻塞自己并同时释放互斥量;生产者线程启动,获取互斥量写缓冲区,写完毕后,通知消费者同时释放互斥量;消费者线程唤醒,获取互斥量读缓冲区;
​​ 优点:可以实现生产者和消费者机制
缺点:要和互斥锁共同实现

 

 

应用层的同步总结:***********************************

互斥量:

优点:

1.适用于线程间的的读写会发生交互的情况

2.一旦互斥锁,上锁了,所有其他使用该锁的线程,都阻塞

缺点:

1.有可能发生死锁

2.锁解除了,不能及时通知其他线程

/*********************************************************************/

读写锁:

优点:

1.可以分读 锁和 写 锁,

2.可以用于,有些线程只读不写,或者只写不读的情况

3.可以最大效率的利用共享资源

缺点:

1.按照规则加上 读 锁后的线程,只应该进行 读 操作,但是我可以读也可以写,这回造成一些问题

2.读写锁会抛锚,有时能限制,有时不能限制,抛锚率 百分之三十

/*********************************************************************/

条件变量:

优点:

1.可以通知所有等待条件变量的线程,比互斥量效率高

2.完美解决了,互斥量要通过循环来判断,是否可以进行上锁操作,不浪费CPU

缺点:

1.需要互斥量结合,不能单独使用

******************************************************************/

自旋锁:

优点:

1.可以一直判断锁的情况,可以及时的上锁

2.可以用在非常需要最开的到所得情况

缺点:

1.由于,没有得到自旋锁的进程会不断循环检测锁,因此上了锁的进程要以最快的速度做完事情,

2.这也就限制了,这种锁不应该用在占用时间的多的进程

3.反应太快,使得它不适用于进行全局变量的读和写


/*********************************************************************/

屏障:

优点:

1.可以用于多个线程完成一个大的任务的情况

缺点:

1.只要一个线程没完成任务,其他线程都不能继续操作



 

 

 

 

 

 

举报

相关推荐

0 条评论