单片机嵌入式操作系统内核

1、前后台系统,协作式内核系统,与占先式内核系统,有什么不同呢?

记得在 21IC 上看过这样的比喻,
你(小工)在用厕所,经理在外面排第一,老板在外面排第二。
如果是前后台,不管是谁,都必须按排队的次序使用厕所;
如果是协作式,那么可以等你用完厕所,老板就要比经理先进入;
如果是占先式,只要有更高级的人在外面等,那么厕所里无论是谁,都要第一时间让出来,让最高级别的人先用。

2、只有延时服务的协作式的内核Cooperative Multitasking

正在运行的主任务,都通过延时服务,主动放弃对 CPU 的控制权。
在时间中断中,对各个任务的的延时进行计时,如果某个任务的延时结束,将任务重新在就绪表中置位。
最低级的系统任务 TaskScheduler(),在三个主任务在放弃对 CPU 的控制权后开始不断地进行调度。如果某个任务在就绪表中置位,通过调度,进入最高级别的任务中继续运行。

3、完善的协作式的内核

现在为上面的协作式内核添加一些 OS 中所必须的服务:
1 挂起和重新运行任务
2 信号量(在必要时候,可以扩展成邮箱和信息队列)
3 延时

4、时间片轮番调度法的内核Round-Robin Sheduling

时间片轮调法是非常有趣的。任务没有优先级,在时间中断的调度下,每个任务都轮流运行相同的时间。如果在内核中没有加入其它服务,感觉上就好像是有三个大循环在同时运行。

5、占先式内核(只带延时服务)Preemptive Multitasking

占先式内核可以在任务中进行调度,这个在协作式的内核中已经做到了;同时,它也可以在中断结束后进行调度,这个问题,已经在时间片轮番调度法中已经做到了
由于中断是可以嵌套的,只有当各层嵌套中要求调度,并且中断嵌套返回到最初进入的中
断的那一层时,才能进行任务调度

6、占先式内核(完善的服务)

如果将前面所提到的占先式内核和协作式内核组合在一起,很容易就可以得到一个功能较
为完善的占先式内核,它的功能有:
1,挂起和恢复任务
2,任务延时
3,信号量(包括共享型和独占型)

7、FreeRTOS 支持的调度方式

FreeRTOS 操作系统支持三种调度方式:抢占式调度,时间片调度和合作式调度
实际应用主要是抢占式调度和时间片调度,合作式调度用到的很少。

  • 抢占式调度:
    每个任务都有不同的优先级,任务会一直运行直到被高优先级任务抢占或者遇到阻塞式的 API 函数,比如 vTaskDelay。

  • 时间片调度:
    每个任务都有相同的优先级,任务会运行固定的时间片个数或者遇到阻塞式的 API 函数,比如vTaskDelay,才会执行同优先级任务之间的任务切换。
    在 FreeRTOS 操作系统中只有同优先级任务才会使用时间片调度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值