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 操作系统中只有同优先级任务才会使用时间片调度

单片机嵌入式操作系统内核相关推荐

  1. 嵌入式操作系统内核原理和开发

    嵌入式操作系统内核原理和开发(开篇) 操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的windows系统已经开始运行了.如果问大家操作系统是什么?可能有的人会 ...

  2. 嵌入式操作系统内核原理和开发(总结篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 很多朋友都喜欢嵌入式操作系统的内容,但是如何实现和仿真这样一个系统一直是困扰我们的难题.现在郑 ...

  3. 基于ARM9的32位高端嵌入式微处理器和嵌入式操作系统内核研究

    本文研究的是基于ARM9的32位高端嵌入式微处理器和嵌入式操作系统内核,设计新型数据采集系统平台,是得到重庆大学创新实验室资助的研发项目.开发软件在uclinux操作系统下进行,本文详细介绍了ucli ...

  4. 嵌入式操作系统内核原理和开发(地址空间)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 不管是什么样的嵌入式cpu,它必然有自己的访问地址空间.至于这个具体的访问空间是什么,那cpu ...

  5. 嵌入式操作系统内核原理和开发(基础)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在编写我们的操作系统之前,我们需要明确一些事情.比如说,这个系统的运行环境是什么?怎么编译?基 ...

  6. 嵌入式操作系统内核原理和开发(cpu的那些事)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] cpu是数字处理系统中的一个重要环节.在我看来,单片机.微处理器.dsp都可以称作是cpu,只 ...

  7. 嵌入式操作系统内核原理和开发(开篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的wi ...

  8. 嵌入式操作系统内核原理和开发(实时系统中的定时器)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 关于定时器的内容,其实我们之前也讨论过,也书写过相应的代码,但是表达得比较晦涩,效率也比较低. ...

  9. 嵌入式操作系统内核原理和开发(消息队列)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 消息队列是线程交互的一种方法,任务可以通过消息队列来实现数据的沟通和交换.在嵌入式系统上,这可 ...

最新文章

  1. IT职场人生系列之十八:危险职业(上)
  2. maven不能加载ojdbc14.jar的解决方法
  3. python 数组队列
  4. 计算机维护与维修课程简介,计算机维修与维护教学大纲.DOC
  5. java allocate_Java中volatile关键字的最全总结
  6. 【数据结构与算法】【算法思想】分治算法
  7. controller接收json数据_SpringMVC实现多种数据类型绑定
  8. centos 去除屏幕保护
  9. win7安装mysql8.0.15教程_MySQL-mysql 8.0.15安装教程
  10. 疫情情况下酒店办理入住流程
  11. 贴片电阻电容标称换算
  12. 应届生落北京集体户口
  13. Demo示例——Bundle打包和加载
  14. 实验物理与工业控制系统---EPICS
  15. macOS:删除DNS
  16. workflow、BPM及EAI的区别
  17. Windows10系统保留正版系统重装 与 热迁移系统
  18. OData介绍 (SAP)
  19. linux下vim编辑器插件,为你介绍Linux系统中vim编辑器的实用插件!
  20. 商标取名,你学会了吗?

热门文章

  1. MySQL主从复制(Windows 10 + CentOS 7混合云) | MySQL8.0.29主从复制(附视频教程)
  2. 计算机微格教学心得体会,微格教学心得体会范文
  3. leetcode-977
  4. (二)CT医学影像的窗高窗位、CT值(Hu值)
  5. 春雨医生官宣“莆田系”医院名单 北京24家“上榜”
  6. npm 创建第一个Angular项目
  7. iphone 后台循环播放音乐
  8. BZOJ 2081 Beads Hash
  9. 有趣的数据结构算法12——利用递归解决八皇后问题
  10. 安卓android+WebSocket实现简易QQ聊天室