关于<linux内核设计与实现>一书中的困惑

0 views
Skip to first unread message

linxi

unread,
Mar 1, 2008, 9:38:47 PM3/1/08
to 操作系统课程论坛
1. 在105页关于信号量的讲解中,有这样一段话:
"在你拥有信号量的同时不能占有自旋锁.因为在你等待信号量时可能会睡眠,而在持有自旋锁时是不允许睡眠的".
我是这样理解的,既然当一个任务试图获得一个已经被占用的信号量时,信号量会将其推进一个等待队列中,然后让其睡眠,那么一个已经占用了信号量并且同
时获得了自旋锁而可以利用临界资源,那么"拥有信号量的同时不能占有自旋锁"就不完全正确,应该是"等待信号量的同时不能占有自旋锁".
2.在101页中讲到了自旋锁与中断处理程序中,讲到了双重请求死锁,对这段描述不是很清楚.

谢谢陈老师!

陈老师

unread,
Mar 4, 2008, 9:41:32 AM3/4/08
to 操作系统课程论坛
你看的很仔细,不过,应当是"拥有信号量的同时不能占有自旋"。你可以再推敲一下。

On 3月2日, 上午10时38分, linxi <Aurthm...@gmail.com> wrote:
> 1. 在105页关于信号量的讲解中,有这样一段话:
> "在你拥有信号量的同时不能占有自旋锁.因为在你等待信号量时可能会睡眠,而在持有自旋锁时是不允许睡眠的".
> 我是这样理解的,既然当一个任务试图获得一个已经被占用的信号量时,信号量会将其推进一个等待队列中,然后让其睡眠,那么一个已经占用了信号量并且同
> 时获得了自旋锁而可以利用临界资源,那么"锁"就不完全正确,应该是"等待信号量的同时不能占有自旋锁".
> 2.在101页中讲到了自旋锁与中断处理程序中,讲到了双重请求死锁,对这段描述不是很清楚.
>
> 谢谢陈老师!

Gao Hui

unread,
Mar 4, 2008, 10:16:27 AM3/4/08
to xiyouo...@googlegroups.com
在 08-3-4,陈老师<clj...@gmail.com> 写道:
> 第二个问题我已经解决了,我再把第一个问题推敲一下.谢谢老师了!
Reply all
Reply to author
Forward
0 new messages