唤醒等待队列中的进程

发布于 2024-11-10 04:12:16 字数 151 浏览 3 评论 0原文

我正在编写一个 Linux 内核模块。 有两个进程A、B和两个等待队列WQA和WQB。目前进程 A 正在 WQA 上休眠。

我希望当 B 在 WQB 上休眠时 A 被唤醒,以便当 A 启动时 B 已经在 WQB 上等待。我怎样才能自动唤醒 A 并将 B 放在 WQB 上?

I am writing a Linux kernel module.
There are two processes A, B and two wait queues WQA and WQB. At the moment process A is sleeping on WQA.

I want A to be woken up when B sleeps on WQB so that when A starts B is already waiting on WQB. How can i atomically wake A and put B on WQB?

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

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

发布评论

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

评论(1

坠似风落 2024-11-17 04:12:16

使用 2 个信号量怎么样?

进程 A 正在信号量 A 上休眠。然后进程 B 将提升信号量 A 并请求信号量 B 上的 down(),这将使他休眠。同样,一旦 A 完成其工作,它就可以提升信号量 B(并唤醒 B),然后在信号量 A 上休眠。

What about using 2 semaphores?

Process A is sleeping at semaphore A. Then process B will raise the semaphore A and request down() on semaphore B which will make him sleep. Again, once A finishes his job, it can raise semaphore B (and wake up B), and then go sleep on semaphore A.

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