嵌入式实时操作系统的设计与开发New(一)

文章讨论了早期嵌入式系统中轮询系统的概念及其缺点,如顺序执行、不可动态调整和高耦合性。接着介绍了引入中断机制的前台后台系统,能处理实时请求但仍有任务抢占的问题。最后提到了实时操作系统(RTOS)的重要性,包括任务调度、任务切换、任务协调和内存管理等功能,以适应多任务并发执行的需求。
摘要由CSDN通过智能技术生成

轮询系统(Polling Systems)

嵌入式系统发展初期,嵌入式软件的开发是基于汇编语言和C语言直接编程,不需要操作系统的支持,这样的系统也被称为裸板嵌入式操作系统。
用过8051单片机的都知道,8051单片机的程序从开始到结束基本上都是顺序的,最后必定有一个类似于while的死循环。
这种方式必须不停地去轮询条件来查询要做什么事,因此这样的操作系统被称为轮询系统,该方式虽然实现了宏观上执行多个事务的功能,但有几个明显的缺点:

  1. 轮询系统是一种顺序执行的系统,事物执行的顺序必须最开始就确定,缺乏动态性,减少了系统的灵活性,也增加了系统设计的复杂度。
  2. 系统运行过程中无法接收和响应外部请求,无法处理紧急事情。
  3. 事物之间的耦合性太大,这主要是因为事物不可剥夺的原因,正因为不可剥夺,导致一个事物的任何错误都会使其它的任务长久等待或错误。

前后台系统(Foreground Background Systems)

后台系统与轮询系统一样也是顺序执行,只有一个main程序,程序功能的实现是依靠死循环来实现的。
但前台系统引入了中断机制,能处理外来请求。
对于实时性要求比较高的事物,可以交给中断服务程序(ISR)进行处理,因为中断处理速度快;对于非实时性的事物,可以交给后台顺序执行。
不足:

  1. 事物不可剥夺,高优先级任务不可抢占低优先级任务。
  2. 事物不可阻塞,也就是说事物没有暂停这一功能来阻塞自己。

简单内核

RTOS可简单认为是功能强大的主控程序,系统复位后首先执行。
它负责在硬件基础上为应用软件建立一个功能强大的运行环境,用户的应用程序都建立在RTOS之上。
其至少实现如下功能:

  1. 任务调度。有了操作系统,多个任务就能并发执行,但是系统中的CPU资源是有限的(如单核环境下只有一个CPU核),于是需要特定的调度策略来决定哪个任务先执行?哪个任务后执行?哪个任务执行多长时间?而要实现特定的调度策略、支持多任务并发执行,还必须有任务切换机制的支持。任务切换本质上是为了解决任务的不可剥夺和不可抢占性,因此任务切换可分为两种。
    被动切换:也就是被剥夺(对应上面的第一条),优先级高的任务来了,或者当前任务的执行时间完了。
    主动切换:也就是当前任务调用相关函数主动放弃CPU,阻塞自己,让别人去使用CPU。
  2. 任务协调机制,即任务的互斥、同步、通信机制等。
  3. 内存管理机制。系统中多个任务并发执行,所有任务的执行代码和所需数据都是存储在内存中的,那各个任务及相关数据如何被分到内存中的?就需要RTOS提供内存管理机制。
    对于不同的应用需求,内存管理机制会不一样,对于PC等桌面应用,内存管理着重考虑的是如何有效利用内存空间,实时性不是特别重要;而对于嵌入式实时应用,内存管理的重点是内存分配和释放时间的确定性,因此RTOS中,内存管理的动态性就少许多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

饼干饼干圆又圆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值