1.总结任务调度算法之间的区别,重新实现一遍任务调度算法的代码。
1.抢占式调度:高优先级的任务可以打断低优先级的任务
2.时间片轮转:相同优先级的的任务有相同的时间片,当时间片被耗尽的时候强制推出
3.协作式调度:使用osDelay休眠函数完成协作式调度
2.总结静态创建任务和动态创建任务的区别,以及动态创建任务和静态创建任务的源码分析步骤。
静态创建:需要自己创建栈的空间,还需要指定栈的大小
动态创建:不需要自己创建栈,只需要指定栈的大小
3.总结任务的状态,以及任务状态之间的转换关系。
任务的状态分为四种:Running->运行态 Blocked->阻塞态 Suspended->挂起态 Ready->就绪态
当任务被创建时,任务进入就绪态,调度器选择已经就绪的任务时进入运行态,使用休眠函数或者等待信号量或者互斥量时进入阻塞态,vTaskSuspend函数可以将运行态,就绪态,阻塞态的函数进入挂起态。