有时候,就是想窥视一下不知道的东东,因为好奇!
分类: LINUX
2011-02-17 22:38:36
读写信号量
1.读写信号量
信号量对所有的调用者执行互斥。但有时候,任务只需要读取受保护的数据,而其他的则必须做出修改。只读任务可以并行的完成,提高性能。任何写内核控制路径必须对被保护资源互斥访问.
2.linux内核中的读写信号量
一个resem可允许一个写入者或无限多个读取者拥有该信号量。写入者具有更高的优先级。
初始化
init_rwsem(struct rw_semaphore *sem);
只读
down_read(struct rw_semaphore *rem);
down_read_trylock(struct rw_semaphore *rem);
up_read(struct rw_semaphore *rem);
写
down_write(struct rw_semaphore *rem);
down_write_trylock(struct rw_semaphore *rem);
up_write(struct rw_semaphore *rem);
downgrade_write(struct rw_semaphore *rem);