如果内核代码正在等待某些任务发生,则可以显式地使其进入睡眠状态。现在,如果将任务置于TASK_INTERRUPTIBLE
状态,则可以通过显式唤醒呼叫或通过接收信号来唤醒任务。
TASK_INTERRUPTIBLE
状态的进程发出信号,它将使该进程进入TASK_RUNNING
,并且在调度该进程时将处理该信号下一个。这是正确的吗?答案 0 :(得分:0)
由进入中断状态的代码来检测中断并在唤醒时采取适当的措施。这可能涉及当前正在处理用户操作的代码,并以-ERESTARTSYS
错误完成该错误,该错误将在系统调用返回到用户模式之前被拦截并处理。
已经完成一些I / O的代码可以向其负责的队列发出“唤醒”,而无需关心队列中是否有任何要唤醒的任务,或者确切的条件任务正在等待。
唤醒的任务需要决定要做什么,这可能包括如果未满足其等待的条件,则重复等待。