2007-3-5 22:01
linux286
任务状态
任务总共有6种状态标志,分别是:
(1)可运行状态:可运行状态是那些正在等待CPU资源的任务的状态,这些任务在就绪队列run-queqe中.这些任务只要得到CPU在个资源就马上可以被运行
(2)可打断睡眠状态:处于等待队列中的任务,待资源有效时唤醒,也可由其它任务被信号中断、唤醒后进入就绪状态
(3)不可打断睡眠状态:处于等待队列中的任务,直接等待硬件条件,待资源有效时唤醒,不可由其它任务通过信号中断、唤醒;这类状态的任务其睡眠的时间相对比较短。与可打断睡眠状态的区别就是后者可以由信号唤醒。
(4)僵死状态:虽然此时已经释放了内存、文件等资源,但是还没有释放任务控制块task_struct数据结构项。它不进行任何调度或状态转换,等待父任务将它彻底释放
(5)暂停状态:可能是任务控制信号所致,或者正在被跟踪调试,而导致暂时停止运行;需要其它任务的信号才能唤醒。任务被暂停,通过其它任务的信号才能唤醒。正在调试的任务可以在该停止状态。
(6)TAS_DEAD:已经退出且不需要父任务回收的任务的状态。
一个任务只能运行在用户方式(CPU处于用户态)或核心方式(CPU处于核心态)下。在用户方式下任务使用一般的堆栈,而在核心方式下用的是固定大小的堆栈(一般为一个物理内存页大小)。