第二章 嵌入式系统和嵌入式实时操作系统_第1页
第二章 嵌入式系统和嵌入式实时操作系统_第2页
第二章 嵌入式系统和嵌入式实时操作系统_第3页
第二章 嵌入式系统和嵌入式实时操作系统_第4页
第二章 嵌入式系统和嵌入式实时操作系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章嵌入式系统

和嵌入式实时操作系统2.1嵌入式系统2.2实时操作系统2.3嵌入式实时操作系统2.1嵌入式系统为了区别于原有的通用计算机系统,人们把嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,称做嵌入式计算机系统,简称嵌入式系统在人们的日常生活中随时都可看到嵌入式系统的应用:自动驾驶仪或发动机状态监测系统洗衣机中提供不同的洗涤模式安装到音像设备中可以获得高保真的音响和影像等导航设备工业自动化仪表工业流水线控制嵌入式系统常用芯片嵌入式系统的特点:专用性强嵌入式系统通常是面向某个特定应用的,所以它的硬件和软件(尤其是软件),都是为特定用户群来设计的,具有专用性的特点。实时性好目前的嵌入式系统或多或少都具备实时性。在硬件极少使用存取速度慢的磁盘等存储器;在软件上需精心设计,使系统能够快速响应外部事件。可裁剪性好为了使嵌入式系统产品在通用和专用之间达到某种平衡,把嵌入式系统硬件和操作系统设计成可裁剪的,以便使嵌入式系统开发人员根据实际应用需要来量体裁衣,去除冗余,从而使系统在满足应用要求的前提下达到最精简的配置。可靠性高嵌入式系统通常应用在涉及产品质量、人身设备安全、国家机密等重大场合,所以与普通系统相比较,对嵌入式系统可靠性的要求极高功耗低有很多嵌入式系统的宿主对象都是一些小型应用系统,例如移动电话、MP3、数码相机等,这些设备不可能配备容量较大的电源,因此低功耗一直是嵌入式系统追求的目标。通常嵌入式系统中的软件及数据一般不存储于磁盘等载体中,而大多存储在EPROM、EEPROM或闪存(FlashMemory)中2.2实时操作系统2.2.1实时系统及其特点1、什么是实时系统实例1在舰船的头部通常装有用来发现礁石的声纳,以避免发生触礁事故。现用一个计算机系统接收并处理声纳信号,处理结果用来控制舵机的动作若声纳发现礁石,此时舰船将在10min后与礁石相撞;而舵机完成合理的规避动作需要8min,则留给计算机系统用来计算和控制舵机做出合理动作所需的时间就不能超过2min,并且应保证计算结果正确无误必须在有限的时间内获得正确结果实时系统的定义:①能及时响应外部事件的请求②能在一个规定的时间内完成对事件的处理两个基本要求:①实时系统必须产生正确的计算结果,称为逻辑或功能正确(LogicalorFunctionalCorrectness)②实时系统的计算必须在预定的时间内完成,称为时间正确(TimingCorrectness)实时→及时→动作快→动作需快到什么程度?需要具体问题具体分析实例2用来生产钢板的轧钢机系统钢板的厚度由轧辊之间的缝隙决定设被轧制的钢板以20m/s的速度通过轧辊的辊缝,当钢板测厚仪发现钢板不满足厚度的质量要求时,需要用100ms的时间来控制辊缝,那么这个控制系统的响应速度是否及时呢?如钢板的总长度为100m,并要求废品率不超过3%,则系统合格,是实时系统若要求废品率不超过1%,则系统不合格2、实时系统的特点通常,把必须在有限时间内完成的任务叫做实时任务,用来完成实时任务的系统就是实时系统实时任务具有确切的完成期限时间要求严格的称为硬实时系统;要求不严格的称为软实时系统实时任务的活动是不可逆的实时任务大多由外部事件激活的用来完成实时任务的计算机系统叫做实时计算机系统

在实时计算机系统中配备的能满足实时任务需要的操作系统叫做实时操作系统2.2.2计算机实时操作系统1、实时操作系统目前用来保证系统实时性的主要是软件,特别是操作系统。实时操作系统的设计应尽量满足5个条件:①实时操作系统必须是多任务系统多任务系统把一个大的应用程序分成相对独立的多个任务来完成,给应用程序的设计和维护提供了极大的方便。同时,这种组织方式特别适合用外部事件来激活②实时操作系统的内核应该是可剥夺型的调度器能以强硬的方式获得处理器使用权并分配给另外的进程。系统中的每个进程都有一个表示其紧急程度的优先级别,调度器根据优先级别来决定是否要剥夺当前进程的处理器使用权。③进程调度的延时可预测并尽可能小该延时指的是调度器进行任务切换时所需要的时间。该时间必须是可预知的,即调度器所用的时间不能受其他因素(例如任务数目)的影响。调度时间是否可预测主要取决于调度算法。④系统提供的服务时间可预知实时操作系统提供的所有服务的运行时间必须是可预知的,至少要有一个最坏界限⑤中断延时尽可能小首先处理器不是随时都可以响应中断申请的。处理器关闭中断时不能响应中断申请;处理器在正在执行一条指令时也不能响应中断申请。

外部事件(发出中断申请)处理器(系统内核接受该请求并做出中断响应)从请求发出到中断被响应所经历的时间称为中断延时有哪些因素影响中断延时的大小?当具有高优先级别的中断请求(通常对应于更紧急的实时任务)出现时,若处理器正处于关闭中断状态,则该中断不会被响应。这对于紧急任务来说就是一个延时,低级中断服务程序关闭中断时间越长,这段延时也就越长,对紧急任务的及时处理就越不利。如何解决:例Linux系统把中断服务程序分为前后两部分,把必须在关中断状态进行的任务放在前半部分并使其尽可能短,而把大多数工作放在了中断开放的后半部分调度器引起的调度延时会反映到中断延时中,从而影响中断延时的大小,因为中断的服务有时是用一个进程来完成的。调度延时由两部分组成:一部分是调度器在调度工作时所必须耗费的时间(可明确大小);一部分是调度器等待调度所需要的时间(不可明确大小)。在操作系统中,在中断过程中是不允许进程调度的,中断的优先权是大于所有进程的。即调度器只能等待所有中断服务都结束之后才能进行进程调度。如果中断嵌套层次很多,这个延时的长度就很可观了!这种延时的可预测性极差,是设计实时系统的难点之一造成中断延时的因素还有DMA(直接内存访问DirectMemoryAccess,是一种不经过CPU而直接从内存存取数据的数据交换模式,可减轻CPU占有率,节省系统资源)DMA也是一种中断,只不过它向处理器请求的是总线的控制权,而不是处理器。所以,在DMA控制期间,由于处理器要把总线控制权让给DMA而失去总线控制权,尽管处理器还可以做一些不使用总线的工作,但不能马上响应来自总线的外部中断请求,因此也会造成较大的中断延时。在实时系统中是否以及如何使用DMA技术,在设计系统时要慎重考虑。一般在实时性要求较高的硬实时系统中不使用DMA技术实时计算机系统最好采用RISC指令系统。两个原因:一是RISC指令系统的指令执行时间比CISC系统指令短得多,所以指令执行时间所引起的中断延时也会小得多;二是在CISC指令系统中,指令的执行时间极不均匀,短的指令只需要几个时钟脉冲,长的指令需要几十个脉冲才能完成,这就给程序模块执行时间的预测带来了困难,使之难于满足实时系统执行时间可预测的要求。CISC复杂指令系统:指令种类多、指令格式不规范、寻址方式多RISC精简指令系统:从复杂指令集中精简出来的,只包含处理器经常使用的指令,具有简单高效的特点。对不常用的处理器功能,常通过组合指令来完成2、实时调度为了使内核是可剥夺型的,实时操作系统的调度器必须采用基于优先级的调度算法。代表性的实时调度算法介绍:①单调速率RM(Rate-Monotonic)算法是一种典型的静态优先级调度算法,主要用来处理周期性实时进程。凡是执行周期越短、执行频度越高的进程,其紧急程度越高,优先级别越高;反之其紧急程度越低,优先级别越低令进程的优先级别为prio(取整数)(其中k为比例系数;T为进程的周期)设进程延时表示为τ,则进程延时的严重程度为:τ/T(严重程度越高,优先级别越高)例题:一个事件发生的周期T=200ms,一般需要运行50ms才完毕,按单调速率算法确定该进程的优先级别答:如果取k=1,则prio=k/T=5工业锅炉压力和温度数据采集处理系统压力的波动比较频繁温度的变化相对较为缓慢为了能及时反映这两个参数的变化压力参数的检测周期比温度参数的检测周期小得多※负责处理压力参数的实时进程的优先度级别高※负责处理温度参数的实时进程的优先度级别低②截止期限最早优先算法算法思想,进程截止期限(由系统设计者根据系统的实时要求给出的进程完成的最晚时间值)越近,则这个进程紧急程度越高,优先级别越高,具体实施时按优先级别来排队例题:在系统中,某个事件在t=0时刻激活了三个实时进程:进程A、B和C,已知这三个进程的截止期限分别为DA、DB和DC,三个进程的运行情况如所示进程运行时间进程截止时间若事件在t=t1时刻激活这三个进程可以想象:进程A和进程B均不能在截止期限完成,即出现时间不正确!!!③可达截止期限最早优先算法该算法是对期限最早优先算法的改进,其主要思想是:在调度时,先观察所有被激活的进程里是否有进程在该进程的截止期限内干不完事情的。如果有(反正干完也没有用),该进程就不被运行,而去运行那些能把工作做完的进程。具体做法为:对就绪队列中的所有进程,仍按截止期限来确定优先级别;然后在激活进程的事件到来时和调度时,根据下式判断是否会有进程按照原来确定的优先级超出该进程的截止期限,如果有则取消该进程,其他进程的优先级别不变。d:进程的截止裕度D:进程的截止期限t1:系统当前时间E:估算的进程运行时间d>0:意味着该进程在截止期限到来之前可以运行完毕,即其计算结果时间正确,这种进程叫做截止期限可达的进程

d<0:截止期限不可达的进程×④最小裕度算法使用进程的截止裕度d来确定进程的优先级别:截止裕度d小的进程,优先级别高截止裕度d大的进程,优先级别低4、实时进程的可调度性所谓实时进程的可调度性,指多个实时进程是否可经过适当的调度使它们都能正确地完成工作。①对于使用单调速率算法的周期性进程集,若满足下列条件:则这个进程集被称为是可调度的例题:有三个同时发生的周期型进程,进程1、进程2和进程3,这三个进程的周期分别为P1=70ms、P2=80ms和P3=30ms,它们完成任务所需的时间分别为C1=20ms、C2=15ms和C3=10ms。试判断该进程集是否为可调度的?答:

不满足要求,所以题目中的三个进程是不可调度的②对于使用截止期优先算法或最小裕度算法的周期性进程集,若满足下列条件:则这个进程集被称为是可调度的例题:有三个同时发生的周期型进程,进程1、进程2和进程3,这三个进程的周期分别为P1=70ms、P2=80ms和P3=30ms,它们完成任务所需的时间分别为C1=20ms、C2=15ms和C3=10ms。试判断该进程集是否为可调度的?答:

满足要求,所以题目中的三个进程是可调度的5、实时系统的时钟实时时钟是实时操作系统的时间基准,没有实时时钟,就没有实时系统的一切活动实际应用中,实时时钟是通过硬件时钟中断实现的实时时钟是一种计时器,就像一只正常行走的钟表实时时钟的缩写是RTC(Real_TimeClock)RTC是集成电路,通常称为时钟芯片类比时钟的重要性6、实时系统的存储管理工作速度高是实时系统的追求目标。所以在数据的存储上,实时系统一般不采用速度较慢的磁盘。通常是将操作系统、应用程序以及必要的数据这些必须永久存储的信息存放在具有“只读”特性且读/写速度比较快的半导体存储器中。在现有的技术水平下,比较理想的半导体存储介质是闪存(FlashMemory)在正常工作电压下就可以擦除和重写7、实时系统与普通系统的比较2.3嵌入式实时操作系统2.3.1什么是嵌入式实时操作系统嵌入式操作系统的特点:微型化嵌入式系统芯片内部存储器的容量通常很小(1MB以内);一般也不配置外存,电源的容量较小(常常用电池甚至微型电池供电);外部设备多样化,因而不允许嵌入式操作系统占用较多的资源,所以在保证应用功能的前提下,嵌入式操作系统的规模越小越好实时性

要求系统能快速响应事件,具有较强的实时性,所以嵌入式实时操作系统的内核都是可剥夺型的

可裁剪性嵌入式操作系统运行的硬件平台多种多样,所以要求嵌入式操作系统中提供的各个功能模块可以让用户根据需要选择使用,即要求它具有良好的可裁剪性高可靠性嵌入式系统广泛应用于重要的生产设备领域,所以要求嵌入式操作系统必须有极高的可靠性,对关键、要害的应用还要提供必要的容错和防错措施,以进一步提高系统的可靠性易移植性嵌入式操作系统应可在不做大量修改的情况下能稳定地运行于不同的平台由于嵌入式系统存储器的容量较小,因此嵌入式系统的软件一般只有操作系统和应用软件两个层次2.3.2微内核1、微内核的客户/服务器结构微内核:把内核中应提供的部分服务功能模块移动到内核外来实现类比去饭店下馆子有可能服务员端上来的菜是其他饭店做的菜。如果一个饭店的大部分菜肴都可以这样来提供,那么这个饭店所占用的土地面积一定会小得多微内核的处理思想:把内核的某些服务模块作为一个进程放在内核以外当要求服务的进程有服务要求时,通过系统调用接口向内核提出服务申请系统调用接口接收到该申请后,则立即通过向内核外的服务进程发送一个消息来启动这个服务进程此时要求服务的进程和提供服务的进程都处在操作系统的用户区层,内核就变小了通常把要求服务的进程叫做“客户”,把提供服务的进程叫做“服务器”

这种微内核结构叫做“客户/服务器”结构与进程控制块相关的进程调度、进程创建、进程删除服务必须保留在内核中!进程通信的管理必须保留在内核中!中断的管理必须保留在内核中!注意!2、一类特殊的微内核结构在一些小型嵌入式实时操作系统中,不区分系统空间和用户空间,因此这种操作系统的内核没有比较清晰的边界,并且用户进程与操作系统的关系极为紧密。这样的操作系统大多只提供进程管理、进程通信管理及简单的存储管理,从逻辑上看这三个部分就是属于内核部分了。本课将要介绍的μC/OS就属于这样一种操作系统。2.3.3嵌入式实时操作系统的可裁剪性及其实现所谓操作系统的可裁剪性,就是一个规模大且功能齐全的操作系统,在结构上保证了用户可在其中有选择地保留某些模块,而删减掉一些模块的性能操作系统的可裁剪性也常被叫做操作系统的可配置性配置方法有两种:

在系统进行编译连接时进行配置

在系统运行时进行配置在系统进行编译连接时进行配置在操作系统中都有一个配置文件

在这个文件中系统的设计者可通过对一些配置常数的设置来选择使用或不使用的模块在对系统编译连接时,编译系统会按配置常数的设置值对与之对应的模块进行编译或不编译,可大大减小系统所占的内存条件编译是实现系统裁剪的有效手段前提条件:用户要获得待裁剪的操作系统的源代码

在系统运行时进行配置依靠系统在初始化运行阶段执行一些条件转移语句来实现这些条件语句是根据事先由目标系统开发人员编写的配置文件中的一些参数来跳转的实现了系统功能上的裁剪,但不是物理上的裁剪,即被裁剪的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论