信号量不能让进程休眠吗?一定要借助于等待队列??

发布于 2022-09-18 18:28:20 字数 224 浏览 12 评论 0

LDD3中译第三版,113页 , 17行 .down也许会将调用者置于休眠状态,然后等待信号量可用

如果用多个进程来操作一个信号量保护的临界资源, 在什么情况下 ,将调用者置于休眠状态?

而未获得信号量的调用者不置为休眠状态, 这些调用者,如何运行? 要是一直查询的话那不信号量相当于spin_lock吗?

请大侠解答

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

绾颜 2022-09-25 18:28:20

“而未获得信号量的调用者不置为休眠状态”
这话是哪的?
down是要休眠的阿,不休眠的是down_trylock,它会立即返回通知程序试图获得锁失败,由程序决定下一步干什么。
谁获得信号量谁休眠的问题随便找本操作系统书看看p操作v操作就知道了

倾听心声的旋律 2022-09-25 18:28:20

在等待临界资源有两种情况:1、睡眠等待(信号量、等待队列等);2、忙等待(自旋锁)

不甘平庸 2022-09-25 18:28:20

重新看那下书 .做那下如下总结:请大侠指正
1.单信号量一般用于临界区或者互斥资源管理.
2.信号量+等待队列, 用于多进程的生产消费类型的管理
3.自旋锁+等待队列, 用于中断方式的生产消费类型的管理

对吗?

匿名。 2022-09-25 18:28:20

其实说白了就是忙等待和睡眠等待,主要是要搞清楚机理。中断中只能忙等待,是因为在中断中不能睡眠。如果不能睡眠的,那就只能用自旋锁了。

白鸥掠海 2022-09-25 18:28:20

原帖由 dreamice 于 2009-4-7 09:58 发表
其实说白了就是忙等待和睡眠等待,主要是要搞清楚机理。中断中只能忙等待,是因为在中断中不能睡眠。如果不能睡眠的,那就只能用自旋锁了。

这个解释 说得真白和简单阿

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文