【实时操作系统FreeRTOS】

一.调度机制概述

  1. 优先级
  • 高优先级任务优先执行,可以抢断优先级低的任务
  • 高优先级的任务不停止,低优先级的任务无法执行
  • 同等优先级的任务,轮流执行(时间片轮转)
  1. 状态
  • 运行态:running
  • 就绪态: ready
  • 阻塞: blocked (等待某件事情:可以是时间或者事件)
  • 暂停:suspend (休息)
  1. 管理机制
  • 取出要运行的任务
    (1)按照从高到低的优先级排队,找到最高优先级的运行态、就绪任务,运行。【优先级4 – 0】
    不平级

(2)如果大家平级,轮流执行:排队,链表前面的先运行,运行一个Tick后乖乖地去链表尾部排队;
平级
4. 调度者

  • Tick中断(1ms产生一个RTOS中断)

二.任务状态切换

1.通过readyList(就绪链表)和DelayList(延时链表)切换状态。
切换
在这里插入图片描述

三.启动调度器的几种情况

1.可抢占情况时:
(1)情况一:调度器产生的空闲任务(IdleTask[优先级0])与需要执行的任务(Taskn不在一个优先级时。
在这里插入图片描述

执行顺序:Task3->Task1->Task2

(2).情况二:调度器产生的空闲任务(IdleTask(优先级0))与需要执行的任务(Taskn一个优先级时。
在这里插入图片描述

执行顺序:Idle Task(一部分)->Task1->Task2->Task3->Idle Task(接着执行)
这种情况空闲任务影响到了任务的执行。Idle Task会运行一小段代码,然后主动礼让Task1运行。

2.不可抢占时
(1)没有时间片轮转,会一直做某事件,除非中途放弃运行。
不抢占
(2)中途放弃运行任务
@1:主动放弃
放弃

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值