嵌入式系统7课件_第1页
嵌入式系统7课件_第2页
嵌入式系统7课件_第3页
嵌入式系统7课件_第4页
嵌入式系统7课件_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

—嵌入式操作系统2006年5月12日

嵌入式系统主要内容嵌入式操作系统实时操作系统微内核与单内核嵌入式操作系统发展近十年来,嵌入式操作系统得到飞速的发展从支持8位微处理器到16位、32位甚至64位微处理器;从支持单一品种的微处理器芯片到支持多品种微处理器芯片;从只有内核到除了内核外还提供其他功能模块,如文件系统,TCP/IP网络系统,窗口图形系统等。嵌入式操作系统技术现状(续)

分层和模块化结构,将操作系统分为:硬件无关层硬件抽象层硬件相关层每层再划分功能模块移植工作集中在硬件相关层,与其余两层无关功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。嵌入式操作系统技术现状(续)功能复杂,具有可剪裁、可配置的能力

采用的主要技术:可剪裁技术。操作系统以内核为中心,包括很多独立的功能组件如文件、网络等。除内核外其他组件的选择任意搭配,由应用决定。可配置技术。每个功能组件都可以根据应用的要求进行配置,比如最大任务数、内存地址、堆栈大小、系统任务的优先级、缓冲区大小及文件数等。嵌入式操作系统技术现状(续)良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。采用的主要技术:采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。采用内存静态分配策略和零拷贝技术保证确定性。内存管理不采用虚存管理机制采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题嵌入式操作系统的发展趋势体系结构向微内核方向发展可伸缩、可移植、可剪裁、可配置行业的标准:多种操作系统平台,应用决定操作系统结构紧凑、功能强大高可用(HighAvailable)、高可靠(HighReliable)、支持多处理器和分布式计算可动态加载和升级软件与开发工具有机的结合起来行业标准行业性嵌入式软硬件平台嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台吸取PC的成功经验,形成不同行业的标准。统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。嵌入式操作系统嵌入式操作系统常常有实时要求早期:嵌入式操作系统=实时操作系统近期:1)手持计算机和掌上计算机的出现;2)CPU速度的提高;3)常规操作系统增加实时进程调度的支持,如POSIX.4嵌入式操作系统<>实时操作系统嵌入式操作系统许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术许多嵌入式操作系统不划分“系统空间”和“用户空间”操作系统的“内核”与外围应用程序之间不再有物理的边界;系统中所谓“进程”实际上全都是内核线程静态连接、系统调用、进程调度/切换嵌入式操作系统对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之;系统调用的界面太庞大;共享变量的访问,需要谨慎对待;把通用操作系统上的应用移植过来需考虑“可重入”的问题;嵌入式操作系统不分系统空间和用户空间<>必须静态连接如DOS、CP/M的INT21不分系统空间和用户空间<>不能用页面映射技术但只用于不同进程之间,而非不同空间之间即使采用了存储管理,基本上都不采用页面交换技术重启动技术(watchdog)中断延迟(InterruptLatency)中断不可嵌套LINUX的BottomHalf中断可嵌套:优先级中断大多微处理器不支持;LINUX不支持;UNIX支持与指令集有关DMA操作有关保证系统调用的原子性有关调度延迟(SchedulingLatency)中断处理程序进程处理一般调度算法(RoundRobin)不能及时选中基于优先级调度算法,一般能及时选中如果目标进程优先级低呢?可剥夺调度和不可剥夺调度LINUX是属于什么调度?Linux既不是完全的可剥夺,也不是完全的不可剥夺上下文切换延迟(ContextSwitchLatency)大小取决于CPU和操作系统采用MMU>不采用MMU实时性简介对于什么是实时系统,POSIX1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度实时调度分类各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度算法(Priority-drivenscheduling-PD)基于CPU使用比例的共享式的调度算法(Share-drivenscheduling-SD)基于时间的进程调度算法(Time-drivenscheduling-TD)从调度方式上来讲可以分为:可抢占不可抢占从时间片来分:固定时间片可变时间片

实时性改造

对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理实时系统在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间响应时间限定可预知实时操作系统与I/O实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。即:系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。系统能够处理和存储控制系统所需要的大量的数据。RTOS基本struct实时多任务core任务管理:多任务和基于优先级的任务调度定时器:系统的实时时钟服务,以及各个定时任务的调入等Mem:管理系统的内存资源,如DRAM,ROM,FLASHRAM等资源管理:管理系统的各种资源如系统的各种设备,端口,中断等;事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的通讯RTOS的系统调用90%以上的设备独立RTOS的任务--分时系统Process实时带来的问题1-时间在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法系统提供一种指定时间尺度的方法通用系统的延时不能满足问题2-实时系统的结构实时系统的体系结构必须满足:高运算速度高速的中断处理高的I/O吞吐率合理的处理器和I/O设备的拓扑连接高速可靠的和有时间约束的通信体系结构支持的出错处理体系结构支持的调度体系结构支持的操作系统体系结构支持的实时语言特性问题3-容错与分布稳定性容错分布式应用问题4-实时通讯逻辑正确要有确定的延迟时间问题5-其他问题时间特性的指定和确正,这点与实际系统设计相同。实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Ada语言,FORTH语言。分布式的实时数据库系统的容错实时时钟的同步实时系统中的人工智能与通用计算机区别通用:方便用户管理计算机资源追求系统资源最大利用率RTOS调度的实时性响应时间可确定性高可靠性性能衡量标准对传统的通用系统:大的系统吞吐量合理的响应速度对每个系统用户相对公平的进行计算资源的分配实时系统实时的数据吞吐取代了以吞吐量为目标的标准。对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。系统的计算资源和其他外设资源必须优先满足实时应用的要求RTOS的衡量指标系统响应时间(Systemresponsetime):系统发出处理要求到系统给出应答信号的时间;上下文切换时间(Context-switchingtime):任务之间切换而使用的时间;中断延迟(Interruptlatencytime):是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间;RTOS的任务调度机制决定了多任务能力与实时性通用模式:调度策略:优先级调度、时间片轮转调度调度方式:抢占式、不可抢占式、选择可抢占式时间片:定长时间片与变长时间片RTOS一般使用抢占式任务调度时间限定的任务调度算法速度单调算法工作由定期任务组织任务时间定长度使用频率高的优先级高时限驱动算法工作定期与不定期执行时长随着时间变化下一个要安排执行的任务是时限最早的任务存储管理单元(MMU)实模式保护模式Mem管理中断禁止时间用户态->中断态中断延时时间确认中断-----中断服务第一语句执行三部分Microprocessor的硬件延时RTOS由中断将权利交给相关代码的时间中断禁止时间可中断式内核中断发生时;即使运行核心服务也保证一定时间内响应缩短中断延时时间任务切换时间控制权取回交给另外一任务两个主要评价实时性的指标:

最大中断禁止时间任务切换时间任务分时系统以进程(线程)为基本单位RTOS以任务为基本单位组成:任务控制块程序区数据区堆栈区系统堆栈用户堆栈任务的状态运行就绪挂起休眠任务的同步与通讯消息事件信号量信箱共享内存消息系统公用数据交换区私有消息缓冲区公用消息缓冲池消息机制创建删除接受消息发送消息广播消息紧急消息消息可以是定长与不定长事件应用于同步,通讯数据量不大接受事件发送事件RTOS一般有15-32个事件信号量创建删除P操作V操作RTOS需要解决优先级倒置问题优先级倒置问题条件高优先级任务H低优先级任务L中优先级任务M共享内存Y,写操作信号量S,互斥优先级倒置问题步骤1)L取得S(P操作),但是未做V操作2)H中断,H运行态3)H写Y,但是Y的S被占用4)L重新取得控制权5)M出现,取得控制权结果:M比H优先

如果不断的M出现,H不能执行解决方法1、采用非抢占式任务管理2、优先级继承L抢回控制权后,暂时继承H的优先级(priorityinheritance)设S为正占用着某项共享资源的进程P以及所有正在等待占用这个资源的进程的集合;找出这个集合中的优先级最高者,其优先级为P’把进程P的优先级设置成P’

优先级封顶(priorityceiling)设S为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限p’,使得这个集合中所有进程的优先级都小于p’。注意p’并不一定是整个系统中的最好优先级。在创建保护该项资源的信号量或互斥量时,将p’作为一个参数。每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到p’,一直到释放该项资源的时候才恢复其原有的优先级。可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的可预测性问题。微内核与单内核分层模拟通用计算机需要“大而全”的内核你不需要,别人可能需要当局限于某个具体领域时,做些“裁减”嵌入式系统的用户群以及对功能的要求是相对封闭的商业上考虑,大而全也不合适微内核与单内核(续)“裁减”或“系统生成”没有根本上解决问题将内核中的部分内容移到内核外面,作为服务进程运行。代表:MACH把内核中的部分内容移到外面,但不作为独立的进程运行,而是作为让应用程序调用的库函数存在。fopen与opensocket微内核与单内核(续)在微内核中保留哪些东西?进程管理存储管理进程间通信中断响应框架微内核的优先级倒置问题有A、B两个应用程序,A的优先级比B高,但是A在睡眠,而B在运行。B需要进行文件操作,发请求给文件服务进程,自己进入睡眠,等待文件操作完成本来在睡眠的文件服务进程接受到B的请求后开始为B服务。此时A因某外部事件而变成就绪。发生调度时,A与文件服务进程都是就绪状态。文件服务进程由于优先级高而更为优先。可是文件服务进程代表的是B,因此发生优先级倒置。微内核的优先级倒置问题以上问题的解决办法是采用“客户驱动优先级”,但是对于LINUX等操作系统,由于是不可剥夺的,因此天生

温馨提示

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

评论

0/150

提交评论