全站数据
8 4 2 0 5 8 1

rcu锁机制分析

张药师说药 | 简单学习,快乐成才!         
问题更新日期:2024-10-14 03:36:24

问题描述

rcu锁机制分析,麻烦给回复
精选答案
最佳答案

分析如下:

1:RCU使用在读者多而写者少的情况.RCU和读写锁相似.但RCU的读者占锁没有任何的系统开销.写者与写写者之间必须要保持同步,且写者必须要等它之前的读者全部都退出之后才能释放之前的资源.

2:RCU保护的是指针.这一点尤其重要.因为指针赋值是一条单指令.也就是说是一个原子操作.因它更改指针指向没必要考虑它的同步.只需要考虑cache的影响.

3:读者是可以嵌套的.也就是说rcu_read_lock()可以嵌套调用.

4:读者在持有rcu_read_lock()的时候,不能发生进程上下文切换.否则,因为写者需要要等待读者完成,写者进程也会一直被阻塞.

5:spin lock是互斥的,任何时候只有一个thread(reader or writer)进入临界区。

rw spin lock允许多个reader并发执行,提高了性能。

不过,reader和updater不能并发执行,针对这种情况,RCU允许一个updater和多个reader并发执行。