我正在为linux创建一个内核模块。我想知道,如何阻止进程在指定时间内进行安排? sched.c中是否有可以执行此操作的函数?是否可以在特定的时间段内将特定的task_struct添加到等待队列中,或者对特定进程使用schedule_timeout之类的内容?
由于
答案 0 :(得分:0)
延迟进程调度一段时间等同于让它休眠。在驱动程序中,通常使用msleep()(在工作任务中常见)或进程,通过将进程置于可中断的睡眠模式
来完成set_current_state(TASK_INTERRUPTABLE);
schedule_timeout(x*HZ);
在超时到期或收到信号之前,内核不会再次安排任务。