从前后台系统到RTOS

很多对单片机开发感兴趣的同学,之后都会继续学习嵌入式相关的知识。从单片机开发到嵌入式开发在软件方面最大的改变,也是一个质的飞跃,就是学习嵌入式必须要进入RTOS的领域,哪么单片机的前后台系统和嵌入式的RTOS系统究竟有何不同呢?

一、什么是前后台系统?

   有过单片机程序开发经历的同学必定对此不陌生。单片机所有子函数写完之后,必定是在一个主函数(main函数)里面对各个子函数进行调用。 主函数用一个死循环将所有任务不断地循环检测执行,具体的示意图如下:

 

 

如图所示,所有的任务都是平级的,它们在无限循环的后台(while(1)的大循环)中运行或者等待运行条件的到来,一个任务的运行必须等待上一个任务运行结束。当然,单片机为了能够处理紧急的任务,设置了中断机制来处理紧急任务。我们把中断称为前台。所以前台程序可以中断后台程序的运行,获得资源先运行起来,等中断任务处理结束后,再回到原来后台任务的断点处,继续运行。但是由于中断本身要花费时间在断点的处理上面,大量使用中断会占用资源,浪费时间。可是,我们又希望能够有一个机制能够给予不同的任务等级之分,让紧急的程序能够先获得资源运行起来,而不是非要等到上一个程序运行结束。于是,机智的程序员们就开发出了实时操作系统。

二、实时操作系统RTOS

   实时操作系统(RTOS)的开发是为了能够让某些具有时效性、实时性任务可以优先获得资源运行起来。所以其特点就是让一些任务可以在一段指定的时间内完成。根据对时间的硬性要求,又可以将其分为软实时系统和硬实时系统。RTOS的示意图如下:

 如图所示,RTOS将任务分成了不同等级,总是让优先级高的任务先运行。同样,中断可以打断所有任务,来处理紧急任务。因为高等级的任务总是能先获得资源运行起来,所以可以满足对某些任务的时效性要求。

    当然,RTOS相比于前后台系统不仅仅只有实时性这一方面的进步,同时RTOS还能够通过分时原理并行的进行多任务的处理。在前后台系统中,一个任务如果缺少了某些继续运行所需的资源或者条件,就只能是CPU空转等待资源或者放弃任务。然而在RTOS中,则可以将这些任务挂起,使其进入等待状态,将CPU资源释放,使得其它任务得以运行,极大的提高了CPU的利用率。

    并不是说,有了RTOS就淘汰了前后台系统。许多小型简单的运用场景都不需要用到RTOS来调度系统的资源,前后台系统可以简单的满足应用。不过在实际的开发应用中,更多时候需要RTOS来调度庞大繁多的任务,来提系统资源的利用率。因此,深入了解掌握RTOS,是一个合格嵌入式开发人员必备的基本能力。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aurora Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值