1.总结任务的调度算法,把实现代码再写一下,
抢占式调度:高优先级任务可以打断低优先级任务的执行
时间片轮转:每个任务拥有相同的时间片(1ms),保证任务执行的公平性,当一个任务的时间片耗尽时任务就必须退出(适用于相同优先级)
协作式调度:使用osdelay休眠函数进行协作式调度
2.总结任务的状态以及是怎么样进行转换的
就绪态,在创建任务后会进入就绪态
运行态,任务正在运行
阻塞态,因为等待某一个事件进入了休眠的状态(时间,互斥锁,信号量)
挂起态,将任务挂起后任务还是存在的,可以进行恢复。
Running->Suspnded:使用vTaskSuspend将任务挂起
Ready->Suspnded: 使用vTaskSuspend将任务挂起,使用vTaskResume将任务恢复
Running->Blocked:使用休眠函数或者是被信号量,互斥锁等阻塞
Blocked->Suspnded:使用vTaskSuspend将任务挂起
Blocked->Ready:当休眠完成后或者是当等待到信号量,互斥锁等进行就绪态