在阻塞 IO 的情况下,例如驱动程序读取,我们在某些条件下调用 wait_event_interruptible()。当条件满足时,将完成读取。我查看了 wait_event_interruptible() 函数,它检查条件并调用 schedule()。schedule() 将寻找下一个可运行的进程并进行上下文切换,其他进程将运行。这是否意味着当该进程再次被唤醒时,当前进程要执行的下一条指令将在 schedule() 函数中?
如果是,如果多个进程自愿调用schedule,那么所有进程在唤醒后都会有下一条指令执行一次,会在schedule()中吗?
在 ret_from_interrupt 的情况下,调用 schedule()。什么时候回来?因为 iret 在那之后被执行。