Alios things内核篇一:任务调度

本文介绍了AliOS Things 2.1的任务调度,包括任务状态(就绪态、阻塞态、睡眠态、挂起态等)及其转换,调度策略(优先级抢占式和时间片轮转),以及任务优先级的设定,强调了0优先级任务的执行优先权。
摘要由CSDN通过智能技术生成

任务调度

看的是alios things 2.1的代码。个人水平有限,只能粗略讲一下alios things的任务调度。如有错误,请指正。

任务状态

其任务状态定义如下

typedef enum {
    K_SEED,
    K_RDY,              /**< READY, task in ready list (g_ready_queue) */
    K_PEND,             /**< PEND, task in tick list (g_tick_head) and block list (sem/mutex/queue/...) */
    K_SUSPENDED,
    K_PEND_SUSPENDED,
    K_SLEEP,            /**< SLEEP, task tick list (g_tick_head) */
    K_SLEEP_SUSPENDED,
    K_DELETED,
} task_stat_t;

K_RDY: 就绪态

K_PEND: 阻塞态

K_SLEEP:睡眠态

K_SUSPEND:挂起态

K_PEND_SUSPEND: 阻塞挂起态

K_SLEEP_SUSPEND: 睡眠挂起态

K_DELETED:删除态

K_SEED:并没有看到实际内核调度时对K_SEED有相关操作。所以不知道是干嘛用的。

任务状态转换

转换关系如图所示:
转换关系图
红色箭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值