1、课件1嵌入式系统软件课件21.嵌入式操作系统n n嵌入式操作系统是个集合,而且是个无限集合监控程序监控程序常规操作系统常规操作系统(红外线红外线 紫外线紫外线)一维和多维一维和多维课件3n n嵌入式操作系统常常有实时要求早期早期:嵌入式操作系统嵌入式操作系统=实时操作系统实时操作系统近期近期:1)1)手持计算机和掌上计算机的出现手持计算机和掌上计算机的出现;2)CPU2)CPU速度的提高速度的提高;3)3)常规操作系统增加实时进程调度的支持常规操作系统增加实时进程调度的支持,如如POSIX.4POSIX.4嵌入式操作系统实时操作系统课件4n n许多嵌入式操作系统的内核是微内核结构n n许多嵌入
2、式操作系统都不带磁盘根本不支持文件系统根本不支持文件系统结构上为了设备驱动而支持文件系统,但不结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能支持文件系统的文件存储功能课件5n n许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术n n许多嵌入式操作系统不划分“系统空间”和“用户空间”操作系统的操作系统的“内核内核”与外围应用程序之间不与外围应用程序之间不再有物理的边界再有物理的边界;系统中所谓系统中所谓“进程进程”实际上全都是内核线程实际上全都是内核线程 静态连接、系统调用、进程调度静态连接、系统调用、进程调度/切换切换课件6对任何一个应用程序做细微的修改,都得重对任
3、何一个应用程序做细微的修改,都得重新生成整个系统,并且新生成整个系统,并且“下载下载”之;之;系统调用的界面太庞大;系统调用的界面太庞大;共享变量的访问,需要谨慎对待;共享变量的访问,需要谨慎对待;把通用操作系统上的应用移植过来需考虑把通用操作系统上的应用移植过来需考虑“可重入可重入”的问题;的问题;课件7n n不分系统空间和用户空间必须静态连接如如DOSDOS、CP/MCP/M的的INT21INT21n n不分系统空间和用户空间不能用页面映射技术但只用于不同进程之间,而非不同空间之间但只用于不同进程之间,而非不同空间之间n n即使采用了存储管理,基本上都不采用页面交换技术n n重启动技术(w
4、atchdog)课件82.RTOSn n是否实时一方面是多大程度上充分发挥硬件潜力,即一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;综合速度快慢的问题;另一方面同时也是反映的速度在多大的程度另一方面同时也是反映的速度在多大的程度上得到保证的问题上得到保证的问题课件9n n中断延迟(中断延迟(InterruptLatencyInterruptLatency)中断不可嵌套中断不可嵌套 LINUXLINUX的的BottomHalfBottomHalf 中断可嵌套:优先级中断中断可嵌套:优先级中断 大多微处理器不支持;大多微处理器不支持;LINUXLINUX不支持;不支持;UNIXUNIX
5、支持支持 与指令集有关与指令集有关 DMADMA操作有关操作有关 保证系统调用的原子性有关保证系统调用的原子性有关课件10n n调度延迟(SchedulingLatency)中断处理程序中断处理程序进程处理进程处理一般调度算法(一般调度算法(RoundRobinRoundRobin)不能及时选)不能及时选中中基于优先级调度算法,一般能及时选中基于优先级调度算法,一般能及时选中 如果目标进程优先级低呢?如果目标进程优先级低呢?可剥夺调度和不可剥夺调度可剥夺调度和不可剥夺调度 LINUXLINUX是属于什么调度?是属于什么调度?Linux既不是完全的可剥夺,也不是完全的不可剥夺课件11n n上下文
6、切换延迟(ContextSwitchLatency)大小取决于大小取决于CPUCPU和操作系统和操作系统采用采用MMUMMU不采用不采用MMUMMU课件12n n只要发生调度,就能选中目标进程吗?根据时间片的耗用调整优先级根据时间片的耗用调整优先级拉开距离,分等级拉开距离,分等级n n对实时进程而言,“应该没有问题”不够。n n是否可以不用中断、也不用调度,回到最简单的“监控程序”?课件13实时性实时性简介n n对于什么是实时系统,POSIX1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务n n实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型n n一
7、个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度课件14实时调度分类n n各种实时操作系统的实时调度算法从调度策略各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度上可以分为如下三种类别:基于优先级的调度算法(算法(Priority-drivenscheduling-PDPriority-drivenscheduling-PD)、基于)、基于CPUCPU使用比例的共享式的调度算法(使用比例的共享式的调度算法(Share-Share-drivenscheduling-SDdrivenscheduling-SD
8、)、以及基于时间的进程)、以及基于时间的进程调度算法(调度算法(Time-drivenscheduling-TDTime-drivenscheduling-TD)n n从调度方式上来讲可以分为:可抢占、不可抢从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片占;从时间片来分:固定时间片、可变时间片 课件15实时性改造实时性改造n n对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展n n向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多n n向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理课件16实时多任务OSRTOSn n单片机无无o
9、sos主程序主程序n nRTOS资源包装资源包装APIAPI可移植(只要可移植(只要1 14%)4%)课件17实时系统n n在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间n n响应时间限定n n可预知课件18实时操作系统与I/On n实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。就是:n n系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。n n系统能够处理和存储控制系统所需要的大量的数据。课件19n n周期性的系统n n非周期性系统n n硬实时系统灾难后果灾难后果n n软实时系统性能下降性能下降
10、课件20RTOS与分时系统n n事件响应时间限定n n事件随机到达n n系统可确定性课件21Rtos的历史n n1)早早期的监控系统系统系统initinit时钟时钟简单的任务调度简单的任务调度n n2)专用实时OS依赖于特定硬件依赖于特定硬件移植性不好移植性不好n n3)通用RTOS课件22嵌入式软件开发平台n nRTOSn n标准化n n可移植n n设备独立课件23RTOS基本structn n实时多任务实时多任务corecore 任务管理任务管理:多任务和基于优先级的任务调度多任务和基于优先级的任务调度 定时器定时器:系统的实时时钟服务,以及各个定时任务的系统的实时时钟服务,以及各个定时任
11、务的调入等调入等 Mem:Mem:管理系统的内存资源,如管理系统的内存资源,如DRAM,ROM,FLASHRAMDRAM,ROM,FLASHRAM等等 资源管理资源管理:管理系统的各种资源如系统的各种设备,管理系统的各种资源如系统的各种设备,端口,中断等;端口,中断等;事件和消息管理:管理各种系统级的事件,如实时事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的量和邮箱等)以及各种系统消息和应用程序之间的通讯通讯课件24n nRTOS的系统调用n n90%以上的设备独立
12、n nRTOS的任务分时系统Process课件25实时带来的问题1-时间n n在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法n n系统提供一种指定时间尺度的方法n n通用系统的延时不能满足课件26问题2实时系统的结构n n实时系统的体系结构必须满足:实时系统的体系结构必须满足:n n 高运算速度高运算速度n n 高速的中断处理高速的中断处理n n 高的高的I/OI/O吞吐率吞吐率n n 合理的处理器和合理的处理器和I/OI/O设备的拓扑连接设备的拓扑连接n n 高速可靠的和有时间约束的通信高速可靠的和有时间约束的通信n n 体系结构支持的出错处理,体系结构支持的出错处理,n
13、n 体系结构支持的调度体系结构支持的调度n n 体系结构支持的操作系统,体系结构支持的操作系统,n n 体系结构支持的实时语言特性。体系结构支持的实时语言特性。课件27问题3容错与分布n n稳定性n n容错n n分布式应用课件28问题4实时通讯n n逻辑正确n n要有确定的延迟时间课件29问题5其他问题n n 时间特性的指定和确正,这点与实际系统设时间特性的指定和确正,这点与实际系统设计相同。计相同。n n 实时的调度理论。由于实时系统应用的特殊实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。
14、主要要求法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。满足在线需求的,适应性的实时调度。n n 实时操作系统的设计和实现。在设计上首要实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。及其他关键的可重入性。课件30n n实时的编程语言和设计方
15、法。在编程语言级完成或提供实时应用所需要的方法。n n比如象Ada语言,FORTH语言。n n分布式的实时数据库。n n系统的容错。n n实时时钟的同步。n n实时系统中的人工智能课件31与通用计算机区别n n通用:方便用户管理计算机资源方便用户管理计算机资源追求系统资源最大利用率追求系统资源最大利用率n nRTOS调度的实时性调度的实时性响应时间可确定性响应时间可确定性高可靠性高可靠性课件32性能衡量标准n n对传统的通用系统对传统的通用系统:大的系统吞吐量大的系统吞吐量 合理的响应速度合理的响应速度 对每个系统用户相对公平的进行计算资源的分配对每个系统用户相对公平的进行计算资源的分配 n
16、n实时系统实时系统 实时的数据吞吐取代了以吞吐量为目标的标准。实时的数据吞吐取代了以吞吐量为目标的标准。对硬实时应用的优先响应取代了对每个用户的恰当对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。的反应速度。系统的计算资源和其他外设资源必须优先满足实时系统的计算资源和其他外设资源必须优先满足实时应用的要求应用的要求课件33RTOS的衡量指标n n 系统响应时间系统响应时间(Systemresponsetime)(Systemresponsetime):系统:系统发出处理要求到系统给出应答信号的时间发出处理要求到系统给出应答信号的时间;n n 任务切换时间任务切换时间(Context-s
17、witchingtime):(Context-switchingtime):任务之任务之间切换而使用的时间间切换而使用的时间;n n 中断延迟中断延迟(Interruptlatencytime):(Interruptlatencytime):是计算机接是计算机接收到中断信号到操作系统作出响应,并完成换收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间道转入中断服务程序的时间;课件34RTOS的任务调度机制n n决定了多任务能力与实时性n n通用模式:调度策略:优先级调度、时间片轮转调度调度策略:优先级调度、时间片轮转调度调度方式:抢占式、不可抢占式、选择可抢调度方式:抢占式、不可
18、抢占式、选择可抢占式占式时间片:定长时间片与变长时间片时间片:定长时间片与变长时间片n nRTOS一般使用抢占式任务调度课件35时间限定的任务调度算法n n速度单调算法工作由定期任务组织工作由定期任务组织 任务时间定长度任务时间定长度使用频率高的优先级高使用频率高的优先级高n n时限驱动算法工作定期与不定期工作定期与不定期执行时长随着时间变化执行时长随着时间变化下一个要安排执行的任务是时限最早的任务下一个要安排执行的任务是时限最早的任务课件36n nMMUn n实模式n n保护模式Mem管理课件37最小mem开销n nPricen n256KRAMn nn n4Mn nn n32MRAM课件3
19、8中断禁止时间n n用户态中断态课件39中断延时时间n n确认中断-中断服务第一语句执行n n三部分n nMicroprocessor的硬件延时n nRTOS由中断将权利交给相关代码的时间n n中断禁止时间课件40可中断式内核n n中断发生时;即使运行核心服务也保证一定时间内响应n n缩短中断延时时间课件41任务切换时间n n控制权取回n n交给另外一任务课件42两个主要评价实时性的指标:n n最大中断禁止时间任务切换时间课件43任务n n分时系统以进程(线程)为基本单位分时系统以进程(线程)为基本单位n nRTOSRTOS以任务为基本单位以任务为基本单位n n组成:组成:任务控制块任务控制块
20、 程序区程序区 数据区数据区 堆栈区堆栈区 系统堆栈系统堆栈 用户堆栈用户堆栈课件44任务的状态n n运行n n就绪n n挂起n n休眠课件45任务的同步与通讯n n消息n n事件n n信号量n n信箱n n共享内存课件46消息n n系统公用数据交换区系统公用数据交换区 私有消息缓冲区私有消息缓冲区 公用消息缓冲池公用消息缓冲池n n消息机制消息机制 创建创建 删除删除 接受消息接受消息 发送消息发送消息 广播消息广播消息 紧急消息紧急消息n n消息可以是定长与不定长消息可以是定长与不定长课件47事件n n应用于同步,通讯数据量不大n n接受事件n n发送事件n nRTOS一般有1532个事件
21、课件48信号量n n创建n n删除n nP操作n nV操作n nRTOS需要解决优先级倒置问题课件49优先级倒置问题n n条件条件 高优先级任务高优先级任务H H 低优先级任务低优先级任务L L 中优先级任务中优先级任务MM 共享内存共享内存Y Y,写操作,写操作 信号量信号量S S,互斥,互斥n n步骤步骤n n1 1)L L取得取得S S(P P操作),但是未做操作),但是未做V V操作操作n n2 2)H H中断,中断,H H运行态运行态n n3 3)H H写写Y Y,但是,但是Y Y的的S S被占用被占用课件50n n4)L重新取得控制权n n5)M出现,取得控制权n n结果:n nM
22、比H优先如果不断的M出现,H不能执行课件51解决方法n n1、采用非抢占式任务管理n n2、优先级继承L L抢回控制权后,暂时继承抢回控制权后,暂时继承H H的优先级的优先级n n(priorityinheritance)设设S S为正占用着某项共享资源的进程为正占用着某项共享资源的进程P P以及所以及所有正在等待占用这个资源的进程的集合;有正在等待占用这个资源的进程的集合;找出这个集合中的优先级最高者,其优先级找出这个集合中的优先级最高者,其优先级为为P P 把进程把进程P P的优先级设置成的优先级设置成P P 课件52n n优先级封顶(优先级封顶(priorityceilingpriori
23、tyceiling)设设S S为所有可能竞争使用某项共享资源的进程的集为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限合。事先为这个集合规定一个优先级上限p p,使得,使得这个集合中所有进程的优先级都小于这个集合中所有进程的优先级都小于p p。注意。注意p p 并并不一定是整个系统中的最好优先级。不一定是整个系统中的最好优先级。在创建保护该项资源的信号量或互斥量时,将在创建保护该项资源的信号量或互斥量时,将p p 作作为一个参数。为一个参数。每当有进程通过这个信号量或互斥量取得共享资源每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到时,就
24、将此进程的优先级暂时提高到p p,一直到释,一直到释放该项资源的时候才恢复其原有的优先级。放该项资源的时候才恢复其原有的优先级。课件53可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的可预测性问题。课件54实时操作系统和通用操作系统区别n n对于通用操作系统,总体的效率是更高的目标,必要时宁可牺牲个别进程的反应速度来达到总体效率的提高;而实时操作系统却反过来,必要时宁可牺牲总体效率也要保证个别进程的反应速度。n n对于通用操作系统,公正性更为重要,必要时宁可“劫富济贫”。而实时操作系统,高优先级进程的运行更为重要,必要时宁可“劫贫济富”课件55n n对
25、于通用操作系统,性能的分析是统计分析、平均值分析。而实时操作系统性能分析则是“最坏情况”分析。n n通用操作系统充分利用CPU处理能力,而实时操作系统有意让CPU处理能力供过于求,以确保反应速度和任务的完成。课件563.微内核与单内核n n分层模拟n n通用计算机需要“大而全”的内核你不需要,别人可能需要你不需要,别人可能需要当局限于某个具体领域时,做些当局限于某个具体领域时,做些“裁减裁减”n n嵌入式系统的用户群以及对功能的要求是相对封闭的n n商业上考虑,大而全也不合适课件57n n“裁减”或“系统生成”没有根本上解决问题n n将内核中的部分内容移到内核外面,作为服务进程运行。代表:代表
26、:MACHMACHn n把内核中的部分内容移到外面,但不作为独立的进程运行,而是作为让应用程序调用的库函数存在。fopenfopen与与openopensocketsocket课件58n n在微内核中保留哪些东西?进程管理进程管理存储管理存储管理进程间通信进程间通信中断响应框架中断响应框架课件59微内核的优先级倒置问题n n有有A A、B B两个应用程序,两个应用程序,A A的优先级比的优先级比B B高,但高,但是是A A在睡眠,而在睡眠,而B B在运行。在运行。n nB B需要进行文件操作,发请求给文件服务进程,需要进行文件操作,发请求给文件服务进程,自己进入睡眠,等待文件操作完成自己进入睡
27、眠,等待文件操作完成n n本来在睡眠的文件服务进程接受到本来在睡眠的文件服务进程接受到B B的请求后的请求后开始为开始为B B服务。服务。n n此时此时A A因某外部事件而变成就绪。因某外部事件而变成就绪。n n发生调度时,发生调度时,A A与文件服务进程都是就绪状态。与文件服务进程都是就绪状态。文件服务进程由于优先级高而更为优先。可是文件服务进程由于优先级高而更为优先。可是文件服务进程代表的是文件服务进程代表的是B B,因此发生优先级倒,因此发生优先级倒置。置。课件60以上问题的解决办法是采用“客户驱动优先级”,但是对于LINUX等操作系统,由于是不可剥夺的,因此天生不可解决。课件61n n
28、ABC,C正在运行n nC需要文件操作,发请求给文件服务进程,进入睡眠,等待文件操作完成。n n文件服务进程开始为C服务,并将优先级设成与C相同。n n此时A被外部时间唤醒,也需要文件操作,发请求,进入睡眠。n nA的请求在文件服务进程的等待队列中。发生优先级倒置。课件62n nB由于外部事件变成就绪n n由于BC,B会被调度。n n对于C是合理的,但是对于A,太不公平。n n如果还有B1,B2,B3,B4,噢。课件63微内核的优点n n小而且简单,容易理解,容易维护n n各模块可以独立开发n n系统配置灵活方便课件64微内核的缺点n n效率降低n n安全降低n nMinux的作者AndyTa
29、nenbaum:“Onlybecausethebrain-deadnatureoftheIntelCPUsmakesthatdifficulttodootherwise”课件65n n单一内核的努力:可安装模块可安装模块课件664常用的商品嵌入式操作系统n nLicensen nCE的源代码课件67VxWorksn n美国美国WindRiverWindRivern n统一空间统一空间n n函数接口多(函数接口多(30003000多)多)n n是是UNIXUNIX的远房变种,但区别也很大的远房变种,但区别也很大n n为不带为不带MMUMMU的处理器设计的,当然允许可选的处理器设计的,当然允许可选
30、n n可剥夺调度可剥夺调度n n采用优先级继承方法解决倒置问题采用优先级继承方法解决倒置问题n n支持消息、信号、管道等进程间通信支持消息、信号、管道等进程间通信n n支持支持POSIXPOSIXn n网络支持很全面网络支持很全面n n新版本:新版本:VxWorksAE,VxWorksAE,分离空间分离空间课件68QNXn n加拿大加拿大QNXSoftwareSystemQNXSoftwareSystem公司公司n n类似于类似于MACHMACHn n进程管理、文件系统管理、设备管理、网络管进程管理、文件系统管理、设备管理、网络管理都在内核之外理都在内核之外n n符合符合POSIXPOSIXn
31、 n采用消息作为进程间通信采用消息作为进程间通信n n可剥夺可剥夺n nGUIGUI类似于类似于XWINDOWSXWINDOWSn n支持网络和分布式计算支持网络和分布式计算课件69pSOSn n原美国IntegratedSystem公司产品,现被WindRiver收购n n接近单一内核的微内核系统n n文件系统移到内核外n n采用优先级继承和优先级封顶技术n n存储管理可以根据需要舍取n n消息和事件作为进程间通信n n设备驱动留在内核中n nSocket提供网络接口课件70WindowsCEn nMicrosoftMicrosoft公司的产品公司的产品n n微内核,可剥夺微内核,可剥夺n
32、n采用页式存储管理,页面换入技术(可以锁定)采用页式存储管理,页面换入技术(可以锁定)n n内核映像既可以在内核映像既可以在ROMROM中,也可以在中,也可以在RAMRAM中中运行运行n n动态连接动态连接DLLDLLn n中断处理分中断处理分ISRISR与与ISTIST,不支持嵌套,不支持嵌套n n设备驱动也分两层设备驱动也分两层n nWinsockWinsock提供网络接口提供网络接口n nGUIGUI丰富丰富课件715开源的嵌入式操作系统n n公开源码不是商品课件72C/OS课件73MACHn nCarnegieMellonUniversityn nRT-MACH课件74RTLINUXn
33、 nNewMexicoTech的VictorYodaiken等人研制n n变种:RTAIRTAIADEOSADEOS课件75KURTn nLinux的变种,KansasUniversityn n时钟精度提高n n增加一些系统调用n n增加针对硬实时进程的调度策略课件76ARM-LINUX课件77PreemptLinuxn nRobertM.Loven n针对LINUX的不可剥夺调度n n2001年RML补丁课件78TimeSysLinuxn n美国公司,原致力于MACH,现转向linux课件796 因特网时代应用模型的演变因特网时代应用模型的演变n n程序作为动态构件自动加载运行,而不需要由用
34、户去逐个启动。n n构件支持脚本语言控制,多个构件可以相互操作,交换信息。n n以浏览器为交互式操作界面,既便于有户掌握,又为程序开发提供了统一标准。n n网络化资源管理,程序自动下载运行,不需要用户介入。课件80因特网时代应用模型的演变因特网时代应用模型的演变来自不同软件开发商的软件模块动态组织起来运行 课件81灵活内核技术灵活内核技术课件82浏览器成为统一的用户界面浏览器成为统一的用户界面课件83操作系统对操作系统对XML的支持的支持n nXML文本描述语言的广泛使用将是因特网时代操作系统的另一明显标志n nXML的每个标签(tag)都可以由用户定义n nXML兼顾了对于人的可读性和计算机
35、的处理效率n nXML已经成了因特网信息交换的标准,未来的操作系统内核会对XML进行最有效的支持课件84因特网时代操作系统技术的发展课件85硬件设备即插即用硬件设备即插即用n n因特网时代要求硬件设备能即插即用因特网时代要求硬件设备能即插即用 n n解决方案只能是在驱动程序对象中加入非执行的描述信息,解决方案只能是在驱动程序对象中加入非执行的描述信息,n n这种描述信息就是通常所说的元数据(这种描述信息就是通常所说的元数据(metadatametadata),它可以它可以“告诉告诉”访问者它有哪些特性和功能。访问者它有哪些特性和功能。n n元数据可以是元数据可以是XMLXML形式、二进制或两者
36、兼有。我们知道对形式、二进制或两者兼有。我们知道对象加上元数据就是构件。象加上元数据就是构件。n n操作系统可以根据构件中的元数据生成中间件。这种在内操作系统可以根据构件中的元数据生成中间件。这种在内核里动态生成的中间件是连接驱动构件与用户程序的核里动态生成的中间件是连接驱动构件与用户程序的“桥桥梁梁”,n n而这而这 桥梁桥梁 是内核根据硬件设备的元数据动态生成的,此是内核根据硬件设备的元数据动态生成的,此时的新型操作系统仍然是时的新型操作系统仍然是 以不变应万变以不变应万变 课件86体系结构由固定变为灵活体系结构由固定变为灵活n n操作系统体系结构大致分为两种:大内核操作系统体系结构大致分
37、为两种:大内核(MonolithicKernelMonolithicKernel)和微内核()和微内核(MicroKernelMicroKernel)n n大内核操作系统将图形、设备驱动、文件系统等大内核操作系统将图形、设备驱动、文件系统等全部功能在操作系统内核中实现,运行在内核状全部功能在操作系统内核中实现,运行在内核状态、同一地址空间。优点是减少进程间通信和状态、同一地址空间。优点是减少进程间通信和状态切换的系统开销,获得较好的运行效率。缺点态切换的系统开销,获得较好的运行效率。缺点是内核庞大,占用资源多,剪裁不易,并且一旦是内核庞大,占用资源多,剪裁不易,并且一旦个别驱动程序运行出错,就
38、会导致整个系统崩溃,个别驱动程序运行出错,就会导致整个系统崩溃,稳定性、安全性不好。稳定性、安全性不好。n n微内核在内核中只实现那些必须由内核实现的基微内核在内核中只实现那些必须由内核实现的基本功能,而将图形、文件系统、设备驱动、通讯本功能,而将图形、文件系统、设备驱动、通讯等功能放在内核之外,作为系统服务来提供相应等功能放在内核之外,作为系统服务来提供相应的功能,这些程序在用户状态下运行。这样做的的功能,这些程序在用户状态下运行。这样做的优点是有一个精炼的内核,便于剪裁、移植。优点是有一个精炼的内核,便于剪裁、移植。课件87服务器服务器-中间件中间件-用户用户”编程模编程模型型课件88操作
39、系统与虚拟机操作系统与虚拟机n n操作系统可以作为虚拟机,直接提供中间件的运行环境n n操作系统可以对应用程序构件进行各种各样的控制,使得封装好的构件能够适应不同的运行环境和用户要求n n操作系统利用中间件技术支持和控制应用程序的运行环境,就形成了因特网时代操作系统的关键技术课件89基于中间件技术的嵌入式操作系基于中间件技术的嵌入式操作系统统n n操作系统的实现采用构件技术,提供构件运行的虚拟机环操作系统的实现采用构件技术,提供构件运行的虚拟机环境,支持动态加载构件境,支持动态加载构件 n n构件的互操作性定义了编程语言无关、可扩展、跨平台的构件的互操作性定义了编程语言无关、可扩展、跨平台的二
40、进制标准。构件之间的相互作用通过一组称作接口二进制标准。构件之间的相互作用通过一组称作接口(interface)(interface)的功能实现的功能实现 n n提供接口描述语言提供接口描述语言CDLCDL,为服务器中新功能的实现提供了,为服务器中新功能的实现提供了方便,如脚本语言调用构件对象函数等方便,如脚本语言调用构件对象函数等 n n运行环境(虚拟机)可以在操作系统上自动生成中间件运行环境(虚拟机)可以在操作系统上自动生成中间件(代理构件),提供构件定位、调用、管理、中间件自动(代理构件),提供构件定位、调用、管理、中间件自动生成、构件通信生成、构件通信(进程内、跨进程、跨网络等不同运行
41、环进程内、跨进程、跨网络等不同运行环境境)等机制等机制 n n件技术保证了软件互操作性、版本升级独立性和运行环境件技术保证了软件互操作性、版本升级独立性和运行环境透明性,提供了提高系统安全、软件协同开发、软件容错、透明性,提供了提高系统安全、软件协同开发、软件容错、可靠性、软件复用、软件升级的有效手段可靠性、软件复用、软件升级的有效手段 课件90基于中间件技术的操作系统的技基于中间件技术的操作系统的技术优势术优势n n提供系统的安全保护机制n n硬件设备的即插即用n n稳定、健壮的系统特性n n灵活内核操作系统体系结构课件917.嵌入式Linux课件92一、嵌入式Linux的定义n n嵌入式L
42、inux(Embeded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几十万字节或几十亿字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统课件93嵌入式Linux的优势 n nLinux系统是层次结构且内核完全开放n n强大的网络支持功能n nLinux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍n nLinux具有广泛的硬件支持特性课件94嵌入式嵌入式Linux的特点的特点课件95主流嵌入式主流嵌入式Linux系统系统n nClinuxn nEmbedixn nRTLinuxn nRTA
43、In nMontaVistaLinux课件96Linux的实时性n n一般的通用linux已经具备一定的实时性n n但无法满足硬实时的要求运行于运行于linuxlinux内核空间的进程(核心态)不能内核空间的进程(核心态)不能被抢先被抢先 在在linuxlinux中,中断有时候会出于保护临界区操中,中断有时候会出于保护临界区操作的目的而被屏蔽作的目的而被屏蔽 通用通用linuxlinux的时间滴答长度为的时间滴答长度为10ms10ms(硬件时钟(硬件时钟频率频率100HZ100HZ),但是这对于时间精度要求很),但是这对于时间精度要求很高(微秒级)的实时进程来说是不够的高(微秒级)的实时进程来
44、说是不够的 课件97嵌入式Linux的实时性改造n n可以引入一个双内核结构可以引入一个双内核结构 n n对对LinuxLinux内核代码作一些修改内核代码作一些修改LinuxLinux本身的任务本身的任务以及以及LinuxLinux内核本身作为一个优先级最低的任务内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务以,而实时任务作为优先级最高的任务以LinuxLinux的的内核模块内核模块(LoadableKernelModule(LoadableKernelModule,LKM)LKM)的形的形式存在的式存在的 n n资源核方法:这种方法是为解决传统实时操作资源核方法:这种方法
45、是为解决传统实时操作系统中固定优先级抢占式调度策略的局限性而系统中固定优先级抢占式调度策略的局限性而产生的产生的 课件98Linux 2.6内核实时性分析内核实时性分析n n2.6中内核自身是可抢占的,它允许自身在执行任务时被打断n n2.6版本的Linux内核使用了由IngoMolnar开发的新的调度器算法,称为O(1)算法课件99嵌入式Linux面临的挑战n n1、扩充Linux的实时系统内核不支持事件优先级和抢占实时特性内核不支持事件优先级和抢占实时特性对对LinuxLinux实时性的扩展可以从两方面进行实时性的扩展可以从两方面进行:向外扩展(让实时系统支持的范围更广,支持的向外扩展(让
46、实时系统支持的范围更广,支持的设备更多)设备更多)向上扩展(扩充向上扩展(扩充LinuxLinux内核,从功能上扩充内核,从功能上扩充LinuxLinux的实时处理和控制系统)的实时处理和控制系统)课件100n nRT-Linux的做法LinuxLinux本身的任务以及本身的任务以及LinuxLinux内核本身作为一内核本身作为一个优先级最低的任务个优先级最低的任务实时任务作为优先级最高的任务实时任务作为优先级最高的任务实时任务以实时任务以LinuxLinux的内核模块的内核模块(Loadable(Loadable Kernel ModuleKernel Module,LKM)LKM)的形式存
47、在的形式存在课件101RTLinux硬实时操作系统简介硬实时操作系统简介n nRTLinuxRTLinux是一硬实时操作系统是一硬实时操作系统 n n实现了一个微内核的小的实时操作系统,而将实现了一个微内核的小的实时操作系统,而将普通普通LinuxLinux系统作为一个该操作系统中的一个低系统作为一个该操作系统中的一个低优先级的任务来运行优先级的任务来运行 n n普通普通LinuxLinux系统中的任务可以通过系统中的任务可以通过FIFOFIFO和实时和实时任务进行通信任务进行通信 n n通过软件来模拟硬件的中断控制器通过软件来模拟硬件的中断控制器 n nRT-LinuxRT-Linux通过将
48、系统的实时时钟设置为单次触通过将系统的实时时钟设置为单次触发状态,可以提供十几个微秒级的调度粒度发状态,可以提供十几个微秒级的调度粒度 课件102RTLinux内核结构内核结构课件1032、改变Linux内核的体系结构n nMonolithic内核体系n nMicroKernel体系n n执行效率n n内核的体积n n升级、维护和移植课件104微内核技术n n缺点:操作系统的服务模块在独立的地址空间运行,使得进程间通信和上下文切换的系统开销大大增加,降低了系统效率。课件1053、完善Linux的集成开发环境n nLinux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还
49、存在差距课件106POSIX实时扩展n nPOSIX(PortableOperatingSystemInterface)是为标准化类UNIX操作系统所必须具有的特征和接口而制定,其思想就是为了增强为类UNIX操作系统编写的软件的可移植性课件107二、嵌入式linux开发n n最小的嵌入式最小的嵌入式 LinuxLinux系统仅需要三个基本元素:系统仅需要三个基本元素:引导实用程序引导实用程序 LinuxLinux微内核,由内存管理、进程管理和定时服务微内核,由内存管理、进程管理和定时服务构成构成 初始化过程初始化过程n n硬件驱动程序硬件驱动程序 一个或多个应用进程,以提供所需功能一个或多个应
50、用进程,以提供所需功能 课件108面向嵌入式Linux 系统的图形用户界面n nMicoroWindows/NanoXMicoroWindows/NanoX开放源码开放源码无任何硬件加速能力无任何硬件加速能力图形引擎中存在许多低效算法图形引擎中存在许多低效算法代码质量较差代码质量较差n nOpenGUIOpenGUI可移植性稍差可移植性稍差n nQt/EmbeddedQt/Embedded 低的程序效率、大的资源消耗低的程序效率、大的资源消耗n nMiniGUIMiniGUI课件109嵌入式Linux开发n n了解硬件了解硬件 n n针对所用针对所用CPUCPU的编译器的编译器/汇编器汇编器/
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100