《嵌入式实时操作系统uC/OS-II》学习摘要

二、 实时系统概念

1.实时系统的特点

如果逻辑和时序出现了偏差,将会引起严重后果。有两种类型的实时系统:软实时系统和硬实时系统。

在软实时系统系统中,系统的宗旨是指各个任务尽快地运行,而不要求限定某一任务在多长时间内完成;在硬实时系统中,各任务不仅须执行无误,而且要做到准时。

大多数实时系统是二者的结合。

2.前/后台系统

可称为前/后台系统或超循环系统。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。中断服务程序处理异步时间,这部分可以看成是前台行为。 后台也可以叫做任务级,前台也叫做中断级。这种系统中断服务提供的信息一直要等到后台程序运行到该处理这个信息时才能得到处理。最坏情况下的任务级响应时间取决于整个循环的执行时间。

很多基于微处理器的产品采用这种设计,例如微波炉、电话机及玩具等。另外一些基于微处理器的应用中,从省电角度出发,平时微处理器处于停机状态,一切都靠中断服务来完成。

3.代码的临界段

也称为临界区,指处理时不可分割的代码,一旦这部分代码开始执行,则不允许任何中断打入。 为确保临界段代码的执行不被中断,在进入临界段之前必须关中断,而临界段代码执行完后,要立即开中断。

4.任务

也称作一个线程,是一个简单的程序,该程序可认为CPU完全只属于程序自己。

典型的是,每个任务都是一个无限的循环,都可能出于以下5中状态之一—休眠态、就绪态、运行态、挂起态及被中断态

5.内核

多任务系统中,内核提供的基本服务是任务切换,使用实时内核可以大大简化应用的设计,因为实时内核允许将应用分为若干个任务,由实时内核来管理它们。

6.不可剥夺型内核

不可剥夺型内核要求每个任务主动放弃CPU的使用权。 不可剥夺型调度法也称作合作型多任务,各任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可使一个高优先级的任务由挂起态变为就绪态,但中断服务后,使用权还是回到了原来被中断了的那个任务,知道该任务主动放弃CPU的使用权,一个新的高优先级的任务才能获得CPU的使用权。

不可剥夺型内核的一个优点是响应中断快。在任务级,不可剥夺型内核允许使用不可重入函数。不可剥夺型内核任务级响应时间比前/后台系统快得多,取决于最长的任务的执行时间,但任务级响应仍是不可确定的,商业软件几乎没有不可剥夺型内核。

另一个优点是,几乎无须使用信号量保护共享数据。(这也不绝对,比如在处理共享I/O设备时,仍需要使用互斥信号量)

7.可剥夺型内核

当系统响应时间很重要时,须使用可剥夺型内核。 因此uC/OS-II以及绝大多数商业实时内核都是可剥夺型内核。最高优先级的任务一旦就绪,总能得到CPU的使用权。当一个运行着的任务是一个比它优先级高的任务进入了就绪态时,当前任务的CPU使用权就被剥夺了,或者说被挂起了,更高优先级的任务立刻得到了CPU的使用权。

使用可剥夺型内核时,应用程序不应直接使用不可重入函数,而应满足互斥条件。这一点可通过互斥型信号量来实现。否则不同优先级任务可能会调用同一函数,如果是不可重入函数,函数中的数据有可能被破坏。

8.可重入函数和不可重入函数

9.时间片轮番调度法

不同任务具有相同优先级时,内核允许1个任务运行事先确定的一段时间,这段时间叫做时间额度,然后切换给另一个任务。这个过程叫做时间片轮番调度法。 目前,uC/OS-II不支持,各任务优先级必须互不相同。

10.静态优先级和动态优先级

应用程序执行过程中诸任务优先级不变,称之为静态优先级。任务的优先级可变,称之为动态优先级。

11.优先级反转

多任务内核应允许改变任务的优先级以避免优先级反转。但改变优先级需要花很长时间。

内核能自动变换任务的优先级,这叫做优先级继承。 uC/OS-II不支持优先级继承,一些商业内核具有。

12.任务优先级分配

单调执行率调度法(RMS)(略)

13.互斥条件

为避免竞争和数据的破坏,与共享资源打交道时是指满足互斥条件最一般的方法是有:

  • 关中断;
  • 使用测试并置位命令;
  • 禁止做任务切换;
  • 利用信号量。

14.关中断和开中断

处理共享数据时保证互斥,最简捷的方法是关中断和开中断。

uC/OS-II提供2个宏调用,允许应用程序在C代码中关、开中断。OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。

必须十分小心,关中断的时间不能太长,因为它影响整个系统的中断响应时间,即中断演示时间。当改变或复制几个变量的值时应考虑这种方法。

15.测试并置位操作

如果不使用实时内核,那么当2个任务共享一个资源时,须约定好,先测试一全局变量。如果该变量为0,允许该任务与共享资源打交道,为防止另一任务使用该资源,将全局变量置1。

16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值