Nucleus 进程(任务)有如下几种状态:
1.Running: 当前占有CPU的task.
2.Suspended: 资源未到位, 挂起状态
3.Finished: task schedule 完成, 并无法再schedule, 即非while循环的task
4.Terminated 任务被终止, 一般是调用函数TCC_Terminate_Task
4.5两种只有在任务复位(即调用TCC_Reset_Task)之后才可能被重新执行.
Suspended状态又可分为如下几种:
1.NU_READY 任务在READY状态, 资源已经到位,一旦获得CPU slice就能运行
2.NU_SLEEP_SUSPEND 任务sleep状态(调用了kal_sleep_task())
3.NU_QUEUE_SUSPEND suspended at queue, 一旦任务队列中有消息, task就会被唤醒.
4.NU_SEMAPHORE_SUSPEND 由于无法获得信号量而挂起, 一旦信号量被释放,且他在优先列表中的First中, task就会变成Ready
5.NU_EVENT_SUSPEND waiting the validity of an event.
6.NU_DRIVER_SUSPEND waiting for an ENHMUTEX.
具体留待之后研究
2011-03-31 11:42:02