Linux内核同步机制之信号量与锁(2)

读写信号量的实现是基于读写锁的。可以想到他们的应用都差不多。自旋锁、读写锁中不能有睡眠,我们就不做实验验证了,当你在锁之间添加msleep函数时,会造成系统崩溃。

顺序锁:

顺序锁和读写锁非常相似,只是他为写者赋予了较高的优先级:事实上,即使在读者正在读的时候也允许写者继续运行。这种策略的好处是写者永远不会等待(除非另外一个写者正在写),缺点是有些时候读者不得不反复读相同数据直到他获得有效的副本。

最后,为完整起见,附上代码的Makefile文件:

obj-m+=semaphore.o down_read.o spinlock.o    CURRENT:=$(shell pwd)   KERNEL_PATH:=/usr/src/kernels/$(shell uname -r)      all:       make -C $(KERNEL_PATH) M=$(CURRENT) modules   clean:       make -C $(KERNEL_PATH) M=$(CURRENT) clean  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyypws.html