关于linux内核中进程的等待;
1.要把一个进程从运行状态到等待\睡眠状态,要做以下工作:
(1)定义一个wait_queue_t数据结构,关联当前进程;
(2)把这个进程加入等待队列;
(3)把进程状态设为非TASK_RUNNING;
(4)调用schedule();schedule把state为非TASK_RUNNING的进程从运行队列移除,以后就不能调度到了。
wait_event_interrupt()、wait_event()、wait_event_timeout()等接口可以让进程进行等待;
2.要把一个进程加入运行队列,能调度,一下工作:
(1)把进程从等待队列移除;
(2)把进程状态设为TASK_RUNNING,等待调度;
wake_up_interruptable()、wake_up()、wake_up_all()等可以唤醒进程。
本文详细介绍了Linux内核中进程从运行状态到等待状态,以及从等待状态回到运行状态的操作过程,包括定义wait_queue_t数据结构、加入等待队列、设置进程状态和使用特定接口进行操作。

被折叠的 条评论
为什么被折叠?



