修改状态为TASK_INTERRUPTIBLE,然后调用调度器。
set_current_state(TASK_INTERRUPTIBLE);
freezable_schedule();
唤醒进程的方式需要获取任务结构体,然后调用wake_up_process唤醒进程。
pid = find_get_pid(pid_nr);
ts = pid_task(pid, PIDTYPE_PID);
put_pid(pid);
wake_up_process(ts);
这样做的好处是调用接口层次低,实时性高。