|
发表于 2005-8-11 11:18:34
|
显示全部楼层
休眠:
首先创建一个结构wait_queue_t
就是
struct __wait_queue {
unsigned int flags;
#define WQ_FLAG_EXCLUSIVE 0x01
struct task_struct * task;
wait_queue_func_t func;
struct list_head task_list;
};
然后用里面的指针task_list把进程加入到睡眠的队列里面,也就是把上面这个
结构连入队列,结构里面有进程的结构指针。
但是这时候进程可能也同时在可运行队列中,所以可能也可以运行,你需要
把进程从可运行队列中移除 |
|