免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1872 | 回复: 1
打印 上一主题 下一主题

关于同步,互斥锁的问题(网上没搜到答案) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-04 09:19 |只看该作者 |倒序浏览
本人总结了《linux内核设计与实现(第二版)》中文版的第八,九章。总结了下面所列的锁

原子操作 //原子整数操作&原子位操作
自旋锁
读写自旋锁
信号量
读写信号量
读取-复制-更新(RCU)
完成变量
BKL
seq
禁止抢占
顺序和屏障

但在另一个牛人的文章上,却发现有一部分这里没有,文章地址如下:
http://www.ibm.com/developerwork ... ization.html#N1029D
其中的内核互斥锁——是这么说的:

“可以通过 DEFINE_MUTEX 宏使用一个操作创建和初始化互斥锁。这将创建一个新的互斥锁并初始化其结构。可以在 ./linux/include/linux/mutex.h 中查看该实现。”

然后提到的5个函数:

mutex_trylock 获得互斥锁
如果想等待这个锁,可以调用 mutex_lock
当调用者休眠时使用 mutex_lock_interruptible
当一个互斥锁被锁定后,它必须被解锁。这是由 mutex_unlock 函数来完成的。
最后,可以通过调用 mutex_is_locked 检查互斥锁的状态。


是最新出来的一种锁吗?ldd3里也没有提到啊!但我的2.6.18内核的源代码确实有./linux/include/linux/mutex.h
也确实有其文章所提到的那些函数

但是这5个函数在《linux内核设计与实现》里没有,在ldd3里也没提到。


这篇帖我在别处发过,现在再发在这里,希望借点这里的人气,而且这里的版主比那边要热心些吧,请多多指点,谢谢!!

论坛徽章:
0
2 [报告]
发表于 2008-01-04 09:49 |只看该作者
我是个新手,请大家别介意

其实我是看到albcamus的那篇《写给Linux内核新手-关于Linux内核学习的误区》才开始看内核的,特别是去看了《linux内核设计与实现》。这也是我为什么把帖子发到这里
还有linuxforum.net的网站也是通过albcamus的文章才知道的,在这里对albcamus表示敬意。
到现在为止我接触linux不过三个月,从国庆完了回来开始接触的。
其实网上还是能搜到那5个函数的了
主要还是因为我在《ldd3》和《linux内核设计与实现》里没找到这5个函数的只言片语
所以我特地就是想问为什么这两本书里会没提到这5个函数。
英文版的我也去翻了,确实在信号量那部分没提到过
《Understanding.the.Linux.Kernel.3rd.Edition.chm》也就是所说的ULK了
这本书我没仔细翻,但总归是没找到这些权威的书有关于这5个函数的说明
也许这能在UNIX相关的书里有提吧,可是我暂时还没时间看,要看的东西太多了
看了必须总结,我现在就是在总结,

linux里到底有多少种锁,这些锁的具体函数和用法到底是什么

可惜在网上我还没找到这种帖子,如果有人找到,请在下面贴出地址,本人非常感激!!


[ 本帖最后由 he428 于 2008-1-4 09:51 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP