当前位置:文档之家› 第二章 嵌入式系统和嵌入式实时操作系统

第二章 嵌入式系统和嵌入式实时操作系统


具体做法为 :对就绪队列中的所有进程 ,仍按截止期限来确定 优先级别 ;然后在激活进程的事件到来时和调度时,根据下式 判断是否会有进程按照原来确定的优先级超出该进程的截止期 限,如果有则取消该进程,其他进程的优先级别不变。
d D t1 E
d:进程的截止裕度 D:进程的截止期限 t1:系统当前时间 E:估算的进程运行时间
调度器引起的调度延时会反映到中断延时中,从而影响中断 延时的大小,因为中断的服务有时是用一个进程来完成的。 调度延时由两部分组成:一部分是调度器在调度工作时所必 (可明确大小) 须耗费的时间 ;一部分是调度器等待调度所需要的 时间(不可明确大小)。
在操作系统中,在中断过程中是不允许进程调度的,中 断的优先权是大于所有进程的。即调度器只能等待所有 中断服务都结束之后才能进行进程调度。 如果中断嵌套层次很多,这个延时的长度就很可观了!
在实时系统中是否以及如何使用DMA技术,在设计系统时要慎重考虑。一般在实时性要求 较高的硬实时系统中不使用DMA技术
实时计算机系统最好采用RISC指令系统。 两个原因:一是RISC指令系统的指令执行时间比CISC 系统指令短得多,所以指令执行时间所引起的中断延时 也会小得多;二是在CISC指令系统中,指令的执行时间 极不均匀,短的指令只需要几个时钟脉冲,长的指令需 要几十个脉冲才能完成,这就给程序模块执行时间的预 测带来了困难,使之难于满足实时系统执行时间可预测 的要求。
2、实时系统的特点
通常 ,把必须在有限时间内完成的任务叫做实时任务,用 来完成实时任务的系统就是实时系统 实时任务具有确切的完成期限
时间要求严格的称为硬实时系统;要求不严格的称为软实时系统
实时任务的活动是不可逆的 实时任务大多由外部事件激活的
2.2.2 计算机实时操作系统
用来完成实时任务的计算机系统叫做实时计算机系统 在实时计算机系统中配备的能满足实时任务需要的操作系统 叫做实时操作系统
实时系统的定义:
① 能及时响应外部事件的请求 ② 能在一个规定的时间内完成对事件的处理 两个基本要求: ①实时系统必须产生正确的计算结果,称为逻辑或功能正确 (Logical or Functional Correctness) ②实时系统的计算必须在预定的时间内完成,称为时间正确 (Timing Correctness)
自动驾驶仪或发动机状态监测系统
洗衣机中提供 不同的洗涤模式 工业自动化仪表 工业流水线控制
安装到音像设备中 可以获得高保真的 音响和影像等
导航设备
嵌入式系统常用芯片
嵌入式系统的特点: 专用性强 嵌入式系统通常是面向某个特定应用的,所以 它的硬件和软件(尤其是软件),都是为特定用户群来设计的, 具有专用性的特点。 实时性好 目前的嵌入式系统或多或少都具备实时性。在 硬件极少使用存取速度慢的磁盘等存储器;在软件上需精心 设计,使系统能够快速响应外部事件。 可裁剪性好 为了使嵌入式系统产品在通用和专用之间达 到某种平衡,把嵌入式系统硬件和操作系统设计成可裁剪的, 以便使嵌入式系统开发人员根据实际应用需要来量体裁衣, 去除冗余,从而使系统在满足应用要求的前提下达到最精简 的配置。
CISC复杂指令系统:指令种类多、指令格式不规范、寻址方式多 RISC精简指令系统:从复杂指令集中精简出来的,只包含处理器经常使用的指令,具有 简单高效的特点。对不常用的处理器功能,常通过组合指令来完成
2、实时调度
为了使内核是可剥夺型的,实时操作系统的调度器必须 采用基于优先级的调度算法。 代表性的实时调度算法介绍: ① 单调速率RM(Rate-Monotonic)算法 是一种典型的静态优先级调度算法,主要用来处理周期性实时 进程。凡是执行周期越短、执行频度越高的进程,其紧急程度 越高,优先级别越高;反之其紧急程度越低,优先级别越低 令进程的优先级别为prio(取整数)
d>0:意味着该进程在截止期限到来之前可以运行完毕, 即其计算结果时间正确,这种进程叫做截止期限可达的 进程 d<0:截止期限不可达的进程
×
④ 最小裕度算法 使用进程的截止裕度d来确定进程的优先级别: 截止裕度d小的进程,优先级别高 截止裕度d大的进程,优先级别低
4、实时进程的可调度性
所谓实时进程的可调度性,指多个实时进程是否可经过适当 的调度使它们都能正确地完成工作。 ① 对于使用单调速率算法的周期性进程集 ,若满足下列条件:
可靠性高 嵌入式系统通常应用在涉及产品质量、人身设 备安全、国家机密等重大场合,所以与普通系统相比较,对 嵌入式系统可靠性的要求极高 功耗低 有很多嵌入式系统的宿主对象都是一些小型应用 系统,例如移动电话、MP3、数码相机等,这些设备不可能 配备容量较大的电源,因此低功耗一直是嵌入式系统追求的 目标。通常嵌入式系统中的软件及数据一般不存储于磁盘等 载体中,而大多存储在EPROM、EEPROM或闪存(Flash Memory) 中
工业锅炉压力和温度数据采集处理系统
② 截止期限最早优先算法 算法思想,进程截止期限(由系统设计者根据系统的实 时要求给出的进程完成的最晚时间值)越近,则这个进 程紧急程度越高,优先级别越高,具体实施时按优先级 别来排队
例题:在系统中,某个事件在t=0时刻激活了三个实时进程:进程A、B 和C,已知这三个进程的截止期限分别为DA、DB和DC,三个进程的运 行情况如所示
例题:有三个同时发生的周期型进程,进程1、进程2 和进程3,这三个进程的周期分别为P1=70ms、P2= 80ms和P3=30ms,它们完成任务所需的时间分别为 C1=20ms、C2=15ms和C3=10ms。试判断该进程 集是否为可调度的? 答:
20 15 10 0.807 1 70 80 30
2.2 实时操作系统
2.2.1 实时系统及其特点
1、什么是实时系统
实例1
在舰船的头部通常装有用来发现礁石的声纳,以避免发生触礁事故。现用一个计 算机系统接收并处理声纳信号,处理结果用来控制舵机的动作
必须在有限的时间 内获得正确结果
若声纳发现礁石,此时舰船将在10 min后与礁石相撞;而舵机完成合理的规避动 作需要8 min ,则留给计算机系统用来计算和控制舵机做出合理动作所需的时间 就不能超过2 min,并且应保证计算结果正确无误
满足要求,所以题目中的三个进程是可调度的
5、实时系统的时钟
实时时钟是实时操作系统的时间基准,没有实时时钟,就没 有实时系统的一切活动 实际应用中,实时时钟是通过硬件时钟中断实现的
实时时钟是一种计时器,就像一只正常行走的钟表
实时时钟的缩写是RTC (Real_Time Clock) RTC 是集成电路,通常称为时钟芯片
若事件在t=t1时刻激活这三个 进程 可以想象:进程A和进程B均不 能在截止期限完成,即出现时 间不正确!!!
进程运行时间
进程截止时间
③ 可达截止期限最早优先算法 该算法是对期限最早优先算法的改进,其主要思想是: 在调度时,先观察所有被激活的进程里是否有进程在该 进程的截止期限内干不完事情的。如果有(反正干完也 没有用),该进程就不被运行,而去运行那些能把工作 做完的进程。
第二章 嵌入式系统 和嵌入式实时操作系统
2.1 嵌入式系统 2.2 实时操作系统 2.3 嵌入式实时操作系统
2.1 嵌入式系统
为了区别于原有的通用计算机系统,人们把嵌入到对象体系 中,为实现对象体系智能化控制的计算机系统,称做嵌入式 计算机系统,简称嵌入式系统
在人们的日常生活中随时都可看到嵌入式系统的应用:
当具有高优先级别的中断请求(通常对应于更紧急的实 时任务)出现时,若处理器正处于关闭中断状态,则该 中断不会被响应。这对于紧急任务来说就是一个延时, 低级中断服务程序关闭中断时间越长,这段延时也就越 长,对紧急任务的及时处理就越不利。
如何解决:例Linux系统把中断服务程序分为前后两部分,把必须在关中断状态进行的任 务放在前半部分并使其尽可能短,而把大多数工作放在了中断开放的后半部分
1、实时操作系统
目前用来保证系统实时性的主要是软件,特别是操作系统。 实时操作系统的设计应尽量满足5个条件 : ① 实时操作系统必须是多任务系统 多任务系统把一个大的应用程序分成相对独立的多个任务来 完成,给应用程序的设计和维护提供了极大的方便。同时, 这种组织方式特别适合用外部事件来激活
Байду номын сангаас
② 实时操作系统的内核应该是可剥夺型的 调度器能以强硬的方式获得处理器使用权并分配给另外的进 程。系统中的每个进程都有一个表示其紧急程度的优先级 别,调度器根据优先级别来决定是否要剥夺当前进程的处理 器使用权。 ③ 进程调度的延时可预测并尽可能小 该延时指的是调度器进行任务切换时所需要的时间。该时间 必须是可预知的,即调度器所用的时间不能受其他因素(例 如任务数目)的影响。 调度时间是否可预测主要取决于调度算法。
20 15 10 0.807 70 80 30
n n 2 1 3 3 2 1 0.777



不满足要求,所以题目中的三个进程是不可调度的
② 对于使用截止期优先算法或最小裕度算法的周期性进程集, 若满足下列条件: n
Ci 1 i 1 P i
则这个进程集被称为是可调度的
④ 系统提供的服务时间可预知
实时操作系统提供的所有服务的运行时间必须是可预知 的,至少要有一个最坏界限 ⑤ 中断延时尽可能小
外部事件 (发出中断申请)
处理器 (系统内核接受该请求并做出中断响应)
从请求发出到中断被响应所经历的时间称为中断延时
有哪些因素影响中断延时的大小? 首先处理器不是随时都可以响应中断申请的。处理器关闭中 断时不能响应中断申请;处理器在正在执行一条指令时也不 能响应中断申请。
这种延时的可预测性极差,是设计实时系统的难点之一
造成中断延时的因素还有DMA(直接内存访问Direct
相关主题