内核同步学习

1.临界区,竞争条件,同步

临界区是访问和操作共享数据的代码段

竞争条件一般是指两个线程处于同一代码段

避免并发和防止竞争条件叫同步。

2.并发的原因,不太理解

中断

软中断和tasklet

内核抢占

睡眠和及与用户空间的同步

对称多处理器

加锁其实不难,难的在发现某个地方要加锁。锁是一个原子操作。

3.防止死锁

加锁的顺序要一致,有多个锁时,访问临界区的线程要保持加锁的顺序一致

不要重复请求同一个锁,这里指在一个线程里,未释放就请求同一个锁

4.考虑锁的细粒度(fine-grained)

比如对一个链表,对整个链表,对每一个元素,对元素的每一个成员加锁,可以认为锁的细粒度不同,越来越细。

 

你可能感兴趣的:(内核同步学习)