关于内核调度的一点疑问

类似下面的函数:
signed long __sched schedule_timeout_interruptible(signed long timeout)
{
        __set_current_state(TASK_INTERRUPTIBLE);
        return schedule_timeout(timeout);
}

如果__set_current_state(TASK_INTERRUPTIBLE)执行完毕,定时器开启之前,发生中断有可能高优先级的其他进程抢占当前进程。那么当前进程是挂在等待队列吗?当前状态不是TASK_RUNNING,调度程序如何使其再次运行的?

作者: azfa123   发布时间: 2011-01-10

按楼主理解那可运行的程序对于单cpu情况下,岂不是只有一个了?
可运行的程序由多个可运行进程链表管理的。

作者: EZWORD   发布时间: 2011-01-10