—嵌入式操作系统

上传人:gp****x 文档编号:243380232 上传时间:2024-09-22 格式:PPT 页数:67 大小:99KB
返回 下载 相关 举报
—嵌入式操作系统_第1页
第1页 / 共67页
—嵌入式操作系统_第2页
第2页 / 共67页
—嵌入式操作系统_第3页
第3页 / 共67页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,嵌入式操作系统,2006年5月12日,嵌入式系统,1,主要内容,嵌入式操作系统,实时操作系统,微内核与单内核,2,嵌入式操作系统发展,近十年来,嵌入式操作系统得到飞速的发展,从支持,8,位微处理器到,16,位、,32,位甚至,64,位微处理器;,从支持单一品种的微处理器芯片到支持多品种微处理器芯片;,从只有内核到除了内核外还提供其他功能模块,如文件系统,,TCP/IP,网络系统,窗口图形系统等。,3,嵌入式操作系统技术现状,适应不同的嵌入式硬件平台,具有可移植、可伸缩能力,。,采用的主要技术:,编程语言普遍采用高级语言实现,主要以C语言为主。,体系结构采用分层和模块化结构或微内核结构。,4,嵌入式操作系统技术现状(续),分层和模块化结构,,将操作系统分为:,硬件无关层,硬件抽象层,硬件相关层,每层再划分功能模块,移植工作集中在,硬件相关层,,与其余两层无关,功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。,5,嵌入式操作系统技术现状(续),功能复杂,具有可剪裁、可配置的能力,采用的主要技术:,可剪裁技术。操作系统以内核为中心,包括很多独立的功能组件如文件、网络等。除内核外其他组件的选择任意搭配,由应用决定。,可配置技术。每个功能组件都可以根据应用的要求进行配置,比如最大任务数、内存地址、堆栈大小、系统任务的优先级、缓冲区大小及文件数等。,6,嵌入式操作系统技术现状(续),良好的实时性,:,时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。,采用的主要技术:,采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。,采用内存静态分配策略和零拷贝技术保证确定性。,内存管理不采用虚存管理机制,采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题,7,嵌入式操作系统技术现状(续),可靠性和高可用,采用的主要技术:,利用存储管理单元(MMU)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。,8,嵌入式操作系统的发展趋势,体系结构向微内核方向发展,可伸缩、可移植、可剪裁、可配置,行业的标准:多种操作系统平台,应用决定操作系统,结构紧凑、功能强大,高可用(High Available)、高可靠(High Reliable )、支持多处理器和分布式计算,可动态加载和升级软件,与开发工具有机的结合起来,9,行业标准,行业性嵌入式软硬件平台,嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台,吸取PC的成功经验,形成不同行业的标准。,统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。,10,嵌入式操作系统,嵌入式操作系统常常有实时要求,早期:嵌入式操作系统 = 实时操作系统,近期:,1)手持计算机和掌上计算机的出现;,2)CPU速度的提高;,3)常规操作系统增加实时进程调度的支持,如POSIX.4,嵌入式操作系统 实时操作系统,11,嵌入式操作系统,许多嵌入式操作系统的内核是微内核结构,许多嵌入式操作系统都不带磁盘,根本不支持文件系统,结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能,12,嵌入式操作系统,许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术,许多嵌入式操作系统不划分“系统空间”和“用户空间”,操作系统的“内核”与外围应用程序之间不再有物理的边界;,系统中所谓“进程”实际上全都是内核线程,静态连接、系统调用、进程调度/切换,13,嵌入式操作系统,对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之;,系统调用的界面太庞大;,共享变量的访问,需要谨慎对待;,把通用操作系统上的应用移植过来需考虑“可重入”的问题;,14,嵌入式操作系统,不分系统空间和用户空间 必须静态连接,如DOS、CP/M的INT21,不分系统空间和用户空间 不能用页面映射技术,但只用于不同进程之间,而非不同空间之间,即使采用了存储管理,基本上都不采用页面交换技术,重启动技术(watch dog),15,RTOS,是否实时,一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;,另一方面同时也是反映速度在多大的程度上得到保证的问题,16,中断延迟(Interrupt Latency),中断不可嵌套,LINUX的Bottom Half,中断可嵌套:优先级中断,大多微处理器不支持;,LINUX不支持;,UNIX支持,与指令集有关,DMA操作有关,保证系统调用的原子性有关,17,调度延迟(Scheduling Latency),中断处理程序,进程处理,一般调度算法(Round Robin)不能及时选中,基于优先级调度算法,一般能及时选中,如果目标进程优先级低呢?,可剥夺调度和不可剥夺调度,LINUX是属于什么调度?,Linux既不是完全的可剥夺,也不是完全的不可剥夺,18,上下文切换延迟(Context Switch Latency),大小取决于CPU和操作系统,采用MMU 不采用MMU,19,只要发生调度,就能选中目标进程吗?,根据时间片的耗用调整优先级,拉开距离,分等级,对实时进程而言,“应该没有问题”不够。,是否可以不用中断、也不用调度,回到最简单的“监控程序” ?,20,实时性简介,对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务,实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型,一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度,21,实时调度分类,各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:,基于优先级的调度算法(Priority-driven scheduling-PD),基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD),基于时间的进程调度算法(Time-driven scheduling-TD),从调度方式上来讲可以分为:,可抢占,不可抢占,从时间片来分:,固定时间片,可变时间片,22,实时性改造,对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展,向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多,向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理,23,实时多任务OSRTOS,单片机,无os,主程序,RTOS,资源包装,API,可移植(只要14%),24,实时系统,在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间,响应时间限定,可预知,25,实时操作系统与I/O,实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。即:,系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。,系统能够处理和存储控制系统所需要的大量的数据。,26,周期性的系统,非周期性系统,硬实时系统,灾难后果,软实时系统,性能下降,27,RTOS与分时系统,事件响应时间限定,事件随机到达,系统可确定性,28,RTOS基本struct,实时多任务core,任务管理:多任务和基于优先级的任务调度,定时器:系统的实时时钟服务,以及各个定时任务的调入等,Mem:管理系统的内存资源,如DRAM,ROM,FLASHRAM等,资源管理:管理系统的各种资源如系统的各种设备,端口,中断等;,事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的通讯,29,RTOS的系统调用,90%以上的设备独立,RTOS的任务分时系统Process,30,实时带来的问题1-时间,在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法,系统提供一种指定时间尺度的方法,通用系统的延时不能满足,31,问题2实时系统的结构,实时系统的体系结构必须满足:,高运算速度,高速的中断处理,高的I/O吞吐率,合理的处理器和I/O设备的拓扑连接,高速可靠的和有时间约束的通信,体系结构支持的出错处理,体系结构支持的调度,体系结构支持的操作系统,体系结构支持的实时语言特性,32,问题3容错与分布,稳定性,容错,分布式应用,33,问题4实时通讯,逻辑正确,要有确定的延迟时间,34,问题5其他问题,时间特性的指定和确正,这点与实际系统设计相同。,实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。,实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。,35,实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方法。如Ada语言,FORTH语言。,分布式的实时数据库,系统的容错,实时时钟的同步,实时系统中的人工智能,36,与通用计算机区别,通用:,方便用户管理计算机资源,追求系统资源最大利用率,RTOS,调度的实时性,响应时间可确定性,高可靠性,37,性能衡量标准,对传统的通用系统:,大的系统吞吐量,合理的响应速度,对每个系统用户相对公平的进行计算资源的分配,实时系统,实时的数据吞吐取代了以吞吐量为目标的标准。,对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。,系统的计算资源和其他外设资源必须优先满足实时应用的要求,38,RTOS的衡量指标,系统响应时间(System response time ):系统发出处理要求到系统给出应答信号的时间;,上下文切换时间(Context-switching time):任务之间切换而使用的时间;,中断延迟(Interrupt latency time ) :是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间;,39,RTOS的任务调度机制,决定了多任务能力与实时性,通用模式:,调度策略:优先级调度、时间片轮转调度,调度方式:抢占式、不可抢占式、选择可抢占式,时间片:定长时间片与变长时间片,RTOS一般使用抢占式任务调度,40,时间限定的任务调度算法,速度单调算法,工作由定期任务组织,任务时间定长度,使用频率高的优先级高,时限驱动算法,工作定期与不定期,执行时长随着时间变化,下一个要安排执行的任务是时限最早的任务,41,存储管理单元(MMU),实模式,保护模式,Mem管理,42,中断禁止时间,用户态中断态,43,中断延时时间,确认中断-,中断服务第一语句执行,三部分,Microprocessor 的硬件延时,RTOS由中断将权利交给相关代码的时间,中断禁止时间,44,可中断式内核,中断发生时;即使运行核心服务也保证一定时间内响应,缩短中断延时时间,45,任务切换时间,控制权取回,交给另外一任务,46,两个主要评价实时性的指标:,最大中断禁止时间,任务切换时间,47,任务,分时系统以进程(线程)为基本单位,RTOS以任务为基本单位,组成:,任务控制块,程序区,数据区,堆栈区,系统堆栈,用户堆栈,48,任务的状态,运行,就绪,挂起,休眠,49,任务的同步与通讯,消息,事件,信号量,信箱,共享内存,50,消息,系统公用数据交换区,私有消息缓冲区,公用消息缓冲池,消息机制,创建,删除,接受消息,发送消息,广播消息,紧急消息,消息可以是定长与不定长,51,事件,应用于同步,通讯数据量不大,接受事件,发送事件,RTOS一般有1532个事件,52,信号量,创建,删除,P操作,V操作,RTOS需要解决优先级倒置问题,53,优先级倒置问题,条件,高优先级任务H,低优先级任务L,中优先级任务M,共享内存Y,写操作,信号量S,互斥,54,优先级倒置问题,步骤,1)L取得S(P操作),但是未做V操作,2)H中断,H运行态,3)H写Y,但是Y的S被占用,4)L重新取得控制权,5)M出现,取得控制权,结果:,M比H优先如果不断的M出现,H不能执行,55,解决方法,1、采用非抢占式任务管理,2、优先级继承,L抢回控制权后,暂时继承H的优先级,(priority inheritance),设S为正占用着某项共享资源的进程P以及所有正在等待占用这个资源的进程的集合;,找出这个集合中的优先级最高者,其优先级为P,把进程P的优先级设置成P,56,优先级封顶(priority ceiling),设S为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限p,使得这个集合中所有进程的优先级都小于p。注意p并不一定是整个系统中的最好优先级。,在创建保护该项资源的信号量或互斥量时,将p作为一个参数。,每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到p,一直到释放该项资源的时候才恢复其原有的优先级。,57,可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的,可预测性,问题。,58,微内核与单内核,分层模拟,通用计算机需要“大而全”的内核,你不需要,别人可能需要,当局限于某个具体领域时,做些“裁减”,嵌入式系统的用户群以及对功能的要求是相对封闭的,商业上考虑,大而全也不合适,59,微内核与单内核(续),“裁减”或“系统生成”没有根本上解决问题,将内核中的部分内容移到内核外面,作为服务进程运行。,代表:MACH,把内核中的部分内容移到外面,但不作为独立的进程运行,而是作为让应用程序调用的库函数存在。,fopen与open,socket,60,微内核与单内核(续),在微内核中保留哪些东西?,进程管理,存储管理,进程间通信,中断响应框架,61,微内核的优先级倒置问题,有A、B两个应用程序,A的优先级比B高,但是A在睡眠,而B在运行。,B需要进行文件操作,发请求给文件服务进程,自己进入睡眠,等待文件操作完成,本来在睡眠的文件服务进程接受到B的请求后开始为B服务。,此时A因某外部事件而变成就绪。,发生调度时,A与文件服务进程都是就绪状态。文件服务进程由于优先级高而更为优先。可是文件服务进程代表的是B,因此发生优先级倒置。,62,微内核的优先级倒置问题,以上问题的解决办法是采用“客户驱动优先级”,但是对于LINUX等操作系统,由于是不可剥夺的,因此天生不可解决。,63,微内核的优先级倒置问题,A B C ,C正在运行,C需要文件操作,发请求给文件服务进程,进入睡眠,等待文件操作完成。,文件服务进程开始为C服务,并将优先级设成与C相同。,此时A被外部时间唤醒,也需要文件操作,发请求,进入睡眠。,A的请求在文件服务进程的等待队列中。发生优先级倒置。,64,微内核的优先级倒置问题,B由于外部事件变成就绪,由于B C,B会被调度。,对于C是合理的,但是对于A,太不公平。,如果还有B1,B2,B3,B4,65,微内核的优点,小而且简单,容易理解,容易维护,各模块可以独立开发,系统配置灵活方便,66,微内核的缺点,效率降低,安全降低,67,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!