2017年5月4日
摘要:
phtread_mutex通过mutexattr设定其类型,并保存在成员__kind中。pthread_mutex的锁操作函数根据__kind进行方法的分派(dispatch)。__kind由5个字段的位属性组成,其中4个字段可以通过mutexattr进行设定。通过属性的组合来决定锁的功能和行为。
阅读全文
posted @ 2017-05-04 19:01
bbqz007
阅读(453)
推荐(0)
2017年5月2日
摘要:
与其它锁不同,rt_mutex的trylock与lock,unlock临界区同步。
阅读全文
posted @ 2017-05-02 16:44
bbqz007
阅读(773)
推荐(0)
摘要:
RCU,Read-Copy Update,是一种同步机制,它的本质就是在同步什么?1. 它只有reader-side lock,并且不产生锁竞争。2. 它同步reader-side 临界区和 reclaim-side 临界区,而不是writer-side临界区。3. rcu reader并发访问由共
阅读全文
posted @ 2017-05-02 16:39
bbqz007
阅读(1707)
推荐(0)
2017年4月28日
摘要:
futex的pi-support,也就是为futex添加pi算法解决优先级逆转的能力,使用pi-support的futex又称为pi-futex。在linux内核的同步机制中,有一个pi算法的成例,就是rt_mutex实时锁。而futex的pi-support部分就是委托(代理)给rt_mutex进
阅读全文
posted @ 2017-04-28 20:45
bbqz007
阅读(1573)
推荐(0)
2017年4月25日
摘要:
pthread的lowlevellock是futex的最简单的锁应用。也是pthread其它同步原语最基本的锁。lowlevellock提供(或实现)了三种锁(方法),一是基于0或1的互斥的锁规则,二是基于robust futex定义的锁规则,三是用于condition重新对临界区上锁的操作。 lo
阅读全文
posted @ 2017-04-25 20:49
bbqz007
阅读(2073)
推荐(0)
摘要:
linux 内核有实时互斥体(锁),名为rt_mutex即realtime mutex。说到realtime一定离不开priority(优先级)。所谓实时,就是根据优先级的不同对任务作出不同速度的响应。rt_mutex也就是依据任务(task,process)的priority进行排队的锁,同时使用
阅读全文
posted @ 2017-04-25 20:28
bbqz007
阅读(2957)
推荐(0)
摘要:
non-pi futex,pi-futex,requeue-pi,robust-futex
阅读全文
posted @ 2017-04-25 18:39
bbqz007
阅读(15274)
推荐(2)
2017年4月24日
摘要:
futex是linux内核为用户空间实现锁等同步机制而设计的同步排队(队列queueing)服务。在futex.c的注释中,futex起源于"Fast Userspace Mutex",但它并非只是一个Mutex,而是用户空间线程(pthread)同步机制的底层服务。它的基本设计有三点,1.同步对象
阅读全文
posted @ 2017-04-24 19:59
bbqz007
阅读(4990)
推荐(0)
2017年4月20日
摘要:
除spinlock外,linux 内核还有一个自旋锁,名为arch_rwlock_t。它的头文件是qrwlock.h,包含在spinlock.h,头文件中对它全称为"Queue read/write lock"。这个锁只使用了两个成员变量就实现了读写锁。一个spinlock,以及一个整形锁变量。而s
阅读全文
posted @ 2017-04-20 20:24
bbqz007
阅读(2890)
推荐(0)
2017年4月18日
摘要:
1.设计。2.实现。3.内联和非内联实现的区别。4.官方的设计文档给出的注意点。
阅读全文
posted @ 2017-04-18 20:17
bbqz007
阅读(753)
推荐(1)