《嵌入式系统软件嵌入式系统软件.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统软件嵌入式系统软件.pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1嵌入式系统软件嵌入式系统软件杨剑锋杨剑锋1.1.嵌入式操作系统嵌入式操作系统?嵌入式操作系统是个集合嵌入式操作系统是个集合,而且是个无限而且是个无限集合集合 监控程序监控程序?常规操作系统常规操作系统(红外线红外线?紫外线紫外线)一维和多维一维和多维?嵌入式操作系统常常有实时要求嵌入式操作系统常常有实时要求 早期早期:嵌入式操作系统嵌入式操作系统=实时操作系统实时操作系统 近期近期:1)1)手持计算机和掌上计算机的出现手持计算机和掌上计算机的出现;2)2)CPUCPU速度的提高速度的提高;3)3)常规操作系统增加实时进程调度的支持常规操作系统增加实时进程调度的支持,如如POSIX.4POSI
2、X.4?嵌入式操作系统嵌入式操作系统 实时操作系统实时操作系统?许多嵌入式操作系统的内核是微内核结构许多嵌入式操作系统的内核是微内核结构?许多嵌入式操作系统都不带磁盘许多嵌入式操作系统都不带磁盘 根本不支持文件系统根本不支持文件系统 结构上为了设备驱动而支持文件系统,但不结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能支持文件系统的文件存储功能?许多嵌入式操作系统不采用存储管理技许多嵌入式操作系统不采用存储管理技术术,即不支持虚拟存储技术即不支持虚拟存储技术?许多嵌入式操作系统不划分许多嵌入式操作系统不划分“系统空间系统空间”和和“用户空间用户空间”操作系统的操作系统的“内核内
3、核”与外围应用程序之间不再与外围应用程序之间不再有物理的边界有物理的边界;系统中所谓系统中所谓“进程进程”实际上全都是内核线程实际上全都是内核线程 静态连接、系统调用、进程调度静态连接、系统调用、进程调度/切换切换 对任何一个应用程序做细微的修改,都得重对任何一个应用程序做细微的修改,都得重新生成整个系统,并且新生成整个系统,并且“下载下载”之;之;系统调用的界面太庞大;系统调用的界面太庞大;共享变量的访问,需要谨慎对待;共享变量的访问,需要谨慎对待;把通用操作系统上的应用移植过来需考虑把通用操作系统上的应用移植过来需考虑“可重入可重入”的问题;的问题;2?不分系统空间和用户空间不分系统空间和
4、用户空间 必须静态连接必须静态连接 如如DOSDOS、CP/MCP/M的的INT21INT21?不分系统空间和用户空间不分系统空间和用户空间 不能用页面映不能用页面映射技术射技术 但只用于不同进程之间,而非不同空间之间但只用于不同进程之间,而非不同空间之间?即使采用了存储管理,基本上都不采用页即使采用了存储管理,基本上都不采用页面交换技术面交换技术?重启动技术(重启动技术(watch dogwatch dog)2.2.RTOSRTOS?是否实时是否实时 一方面是多大程度上充分发挥硬件潜力,即一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;综合速度快慢的问题;另一方面同时也是反映的速度
5、在多大的程度另一方面同时也是反映的速度在多大的程度上得到保证的问题上得到保证的问题?中断延迟(中断延迟(Interrupt LatencyInterrupt Latency)中断不可嵌套中断不可嵌套 LINUXLINUX的的Bottom HalfBottom Half 中断可嵌套:优先级中断中断可嵌套:优先级中断 大多微处理器不支持;大多微处理器不支持;LINUXLINUX不支持;不支持;UNIXUNIX支持支持 与指令集有关与指令集有关 DMADMA操作有关操作有关 保证系统调用的原子性有关保证系统调用的原子性有关?调度延迟(调度延迟(Scheduling LatencyScheduling
6、 Latency)中断处理程序中断处理程序进程处理进程处理 一般调度算法(一般调度算法(Round RobinRound Robin)不能及时选不能及时选中中 基于优先级调度算法,一般能及时选中基于优先级调度算法,一般能及时选中 如果目标进程优先级低呢?如果目标进程优先级低呢?可剥夺调度和不可剥夺调度可剥夺调度和不可剥夺调度 LINUXLINUX是属于什么调度?是属于什么调度?事件或软中断Linux既不是完全的可剥夺,也不是完全的不可剥夺?上下文切换延迟(上下文切换延迟(Context Switch LatencyContext Switch Latency)大小取决于大小取决于CPUCPU和
7、操作系统和操作系统 采用采用MMU MMU 不采用不采用MMUMMU?只要发生调度,就能选中目标进程吗?只要发生调度,就能选中目标进程吗?根据时间片的耗用调整优先级根据时间片的耗用调整优先级 拉开距离,分等级拉开距离,分等级?对实时进程而言,对实时进程而言,“应该没有问题应该没有问题”不够。不够。?是否可以不用中断、也不用调度,回到是否可以不用中断、也不用调度,回到最简单的最简单的“监控程序监控程序”?3实时性实时性实时性实时性简介简介?对于什么是实时系统,对于什么是实时系统,POSIX 1003.bPOSIX 1003.b作了这作了这样的定义:指系统能够在限定的响应时间样的定义:指系统能够在
8、限定的响应时间内提供所需水平的服务内提供所需水平的服务?实时系统根据其对于实时性要求的不同,实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型可以分为软实时和硬实时两种类型?一个计算机系统为了提供对于实时性的支一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于持,它的操作系统必须对于CPUCPU和其他资源和其他资源进行有效的调度和管理,即实时调度进行有效的调度和管理,即实时调度实时调度分类实时调度分类?各种实时操作系统的实时调度算法从调度策略各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度上可以分为如下三种类别:基于优先级的调度算法(算
9、法(PriorityPriority-driven schedulingdriven scheduling-PDPD)、)、基于基于CPUCPU使用比例的共享式的调度算法(使用比例的共享式的调度算法(ShareShare-driven schedulingdriven scheduling-SDSD)、)、以及基于时间的进程以及基于时间的进程调度算法(调度算法(TimeTime-driven schedulingdriven scheduling-TDTD)?从调度方式上来讲可以分为:可抢占、不可抢从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片占;从时间片来分
10、:固定时间片、可变时间片实时性改造实时性改造实时性改造实时性改造?对操作系统实时性的扩展可以从两方面对操作系统实时性的扩展可以从两方面进行进行:向外扩展和向上扩展向外扩展和向上扩展?向外扩展是从范围上扩展,让实时系统向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多支持的范围更广,支持的设备更多?向上扩展是扩充操作系统内核,从功能向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理上扩充系统的实时处理实时多任务实时多任务OSOSRTOSRTOS?单片机单片机 无无osos 主程序主程序?RTOSRTOS 资源包装资源包装 APIAPI 可移植(只要可移植(只要1 14%)4%)
11、实时系统实时系统?在实时计算中,系统的正确性不仅仅依在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产赖于计算的逻辑结果而且依赖于结果产生的时间生的时间?响应时间限定响应时间限定?可预知可预知实时操作系统与实时操作系统与I/OI/O?实时操作系统还需要有效的中断处理能实时操作系统还需要有效的中断处理能力来处理异步事件和高效的力来处理异步事件和高效的I/OI/O能力来处能力来处理有严格时间限制的数据收发应用。就理有严格时间限制的数据收发应用。就是是:?系统应该有在事先定义的时间范围内系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。识别和处理离散的事件的能力。?系统能
12、够处理和存储控制系统所需要系统能够处理和存储控制系统所需要的大量的数据。的大量的数据。4?周期性的系统周期性的系统?非周期性系统非周期性系统?硬实时系统硬实时系统 灾难后果灾难后果?软实时系统软实时系统 性能下降性能下降RTOSRTOS与分时系统与分时系统?事件响应时间限定事件响应时间限定?事件随机到达事件随机到达?系统可确定性系统可确定性RtosRtos的历史的历史?1 1)早早期的监控系统)早早期的监控系统 系统系统initinit 时钟时钟 简单的任务调度简单的任务调度?2 2)专用实时)专用实时OSOS 依赖于特定硬件依赖于特定硬件 移植性不好移植性不好?3 3)通用)通用RTOSRT
13、OS嵌入式软件开发平台嵌入式软件开发平台?RTOSRTOS?标准化标准化?可移植可移植?设备独立设备独立RTOSRTOS基本基本structstruct?实时多任务实时多任务corecore 任务管理任务管理:多任务和基于优先级的任务调度多任务和基于优先级的任务调度 定时器定时器:系统的实时时钟服务,以及各个定时任务的系统的实时时钟服务,以及各个定时任务的调入等调入等 MemMem:管理系统的内存资源,如管理系统的内存资源,如DRAM,ROM,FLASHRAMDRAM,ROM,FLASHRAM等等 资源管理资源管理:管理系统的各种资源如系统的各种设备,管理系统的各种资源如系统的各种设备,端口,
14、中断等;端口,中断等;事件和消息管理:管理各种系统级的事件,如实时事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的量和邮箱等)以及各种系统消息和应用程序之间的通讯通讯?RTOSRTOS的系统调用的系统调用?90%90%以上的设备独立以上的设备独立?RTOSRTOS的任务分时系统的任务分时系统ProcessProcess5实时带来的问题实时带来的问题1 1-时间时间?在实时系统中最基本的是系统应该能够在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法提供对
15、时间正确性进行指定的方法?系统提供一种指定时间尺度的方法系统提供一种指定时间尺度的方法?通用系统的延时不能满足通用系统的延时不能满足问题问题2 2实时系统的结构实时系统的结构?实时系统的体系结构必须满足:实时系统的体系结构必须满足:?高运算速度高运算速度?高速的中断处理高速的中断处理?高的高的I/OI/O吞吐率吞吐率?合理的处理器和合理的处理器和I/OI/O设备的拓扑连接设备的拓扑连接?高速可靠的和有时间约束的通信高速可靠的和有时间约束的通信?体系结构支持的出错处理,体系结构支持的出错处理,?体系结构支持的调度体系结构支持的调度?体系结构支持的操作系统,体系结构支持的操作系统,?体系结构支持的
16、实时语言特性。体系结构支持的实时语言特性。问题问题3 3容错与分布容错与分布?稳定性稳定性?容错容错?分布式应用分布式应用问题问题4 4实时通讯实时通讯?逻辑正确逻辑正确?要有确定的延迟时间要有确定的延迟时间问题问题5 5其他问题其他问题?时间特性的指定和确正,这点与实际系统设时间特性的指定和确正,这点与实际系统设计相同。计相同。?实时的调度理论。由于实时系统应用的特殊实时的调度理论。由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高
17、度动态的,是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。满足在线需求的,适应性的实时调度。?实时操作系统的设计和实现。在设计上首要实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。及其他关键的可重入性。?实时的编程语言和设计方法。在编程实时的编程语言和设计方法。在编程语言级完成或提供实时应用所需要的方语言级完成或提供实时
18、应用所需要的方法。法。?比如象比如象AdaAda语言,语言,FORTHFORTH语言。语言。?分布式的实时数据库。分布式的实时数据库。?系统的容错。系统的容错。?实时时钟的同步。实时时钟的同步。?实时系统中的人工智能实时系统中的人工智能6与与通用计算机区别通用计算机区别?通用:通用:方便用户管理计算机资源方便用户管理计算机资源 追求系统资源最大利用率追求系统资源最大利用率?RTOSRTOS 调度的实时性调度的实时性 响应时间可确定性响应时间可确定性 高可靠性高可靠性性能衡量标准性能衡量标准?对传统的通用系统对传统的通用系统:大的系统吞吐量大的系统吞吐量 合理的响应速度合理的响应速度 对每个系统
19、用户相对公平的进行计算资源的分配对每个系统用户相对公平的进行计算资源的分配?实时系统实时系统 实时的数据吞吐取代了以吞吐量为目标的标准。实时的数据吞吐取代了以吞吐量为目标的标准。对硬实时应用的优先响应取代了对每个用户的恰当对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。的反应速度。系统的计算资源和其他外设资源必须优先满足实时系统的计算资源和其他外设资源必须优先满足实时应用的要求应用的要求RTOSRTOS的衡量指标的衡量指标?系统响应时间系统响应时间(System response time)System response time):系统系统发出处理要求到系统给出应答信号的时间发出处理
20、要求到系统给出应答信号的时间;?任务切换时间任务切换时间(ContextContext-switching time):switching time):任务之任务之间切换而使用的时间间切换而使用的时间;?中断延迟中断延迟(Interrupt latency time):Interrupt latency time):是计算机是计算机接收到中断信号到操作系统作出响应,并完成接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间换道转入中断服务程序的时间;RTOSRTOS的任务调度机制的任务调度机制?决定了多任务能力与实时性决定了多任务能力与实时性?通用模式:通用模式:调度策略:优先级
21、调度、时间片轮转调度调度策略:优先级调度、时间片轮转调度 调度方式:抢占式、不可抢占式、选择可抢调度方式:抢占式、不可抢占式、选择可抢占式占式 时间片:定长时间片与变长时间片时间片:定长时间片与变长时间片?RTOSRTOS一般使用抢占式任务调度一般使用抢占式任务调度时间限定的任务调度算法时间限定的任务调度算法?速度单调算法速度单调算法 工作由定期任务组织工作由定期任务组织 任务时间定长度任务时间定长度 使用频率高的优先级高使用频率高的优先级高?时限驱动算法时限驱动算法 工作定期与不定期工作定期与不定期 执行时长随着时间变化执行时长随着时间变化 下一个要安排执行的任务是时限最早的任务下一个要安排
22、执行的任务是时限最早的任务?MMUMMU?实模式实模式?保护模式保护模式MemMem管理管理7最小最小memmem开销开销?PricePrice?256K RAM256K RAM?4M4M?32M RAM32M RAM中断禁止时间中断禁止时间?用户态用户态 中断态中断态中断延时时间中断延时时间?确认中断确认中断-?中断服务第一语句执行中断服务第一语句执行?三部分三部分?Microprocessor Microprocessor 的硬件延时的硬件延时?RTOSRTOS由中断将权利交给相关代码的时间由中断将权利交给相关代码的时间?中断禁止时间中断禁止时间可中断式内核可中断式内核?中断发生时;即使运
23、行核心服务也保证中断发生时;即使运行核心服务也保证一定时间内响应一定时间内响应?缩短中断延时时间缩短中断延时时间任务切换时间任务切换时间?控制权取回控制权取回?交给另外一任务交给另外一任务两个主要评价实时性的指标:两个主要评价实时性的指标:?最大中断禁止时间最大中断禁止时间任务切换时间任务切换时间8任务任务?分时系统以进程(线程)为基本单位分时系统以进程(线程)为基本单位?RTOSRTOS以任务为基本单位以任务为基本单位?组成:组成:任务控制块任务控制块 程序区程序区 数据区数据区 堆栈区堆栈区 系统堆栈系统堆栈 用户堆栈用户堆栈任务的状态任务的状态?运行运行?就绪就绪?挂起挂起?休眠休眠任务
24、的同步与通讯任务的同步与通讯?消息消息?事件事件?信号量信号量?信箱信箱?共享内存共享内存消息消息?系统公用数据交换区系统公用数据交换区 私有消息缓冲区私有消息缓冲区 公用消息缓冲池公用消息缓冲池?消息机制消息机制 创建创建 删除删除 接受消息接受消息 发送消息发送消息 广播消息广播消息 紧急消息紧急消息?消息可以是定长与不定长消息可以是定长与不定长事件事件?应用于同步,通讯数据量不大应用于同步,通讯数据量不大?接受事件接受事件?发送事件发送事件?RTOSRTOS一般有一般有15153232个事件个事件信号量信号量?创建创建?删除删除?P P操作操作?V V操作操作?RTOSRTOS需要解决优
25、先级倒置问题需要解决优先级倒置问题9优先级倒置问题优先级倒置问题?条件条件 高优先级任务高优先级任务H H 低优先级任务低优先级任务L L 中优先级任务中优先级任务MM 共享内存共享内存Y Y,写操作写操作 信号量信号量S S,互斥互斥?步骤步骤?1 1)L L取得取得S S(P P操作),但是未做操作),但是未做V V操作操作?2 2)H H中断,中断,H H运行态运行态?3 3)H H写写Y Y,但是但是Y Y的的S S被占用被占用?4 4)L L重新取得控制权重新取得控制权?5 5)MM出现,取得控制权出现,取得控制权?结果:结果:?MM比比H H优先优先如果不断的如果不断的MM出现,出
26、现,H H不能执行不能执行解决方法解决方法?1 1、采用非抢占式任务管理、采用非抢占式任务管理?2 2、优先级继承、优先级继承 L L抢回控制权后,暂时继承抢回控制权后,暂时继承H H的优先级的优先级?(priority inheritancepriority inheritance)设设S S为正占用着某项共享资源的进程为正占用着某项共享资源的进程P P以及所以及所有正在等待占用这个资源的进程的集合;有正在等待占用这个资源的进程的集合;找出这个集合中的优先级最高者,其优先级找出这个集合中的优先级最高者,其优先级为为P P 把进程把进程P P的优先级设置成的优先级设置成P P?优先级封顶(优先
27、级封顶(priority ceilingpriority ceiling)设设S S为所有可能竞争使用某项共享资源的进程的集为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限合。事先为这个集合规定一个优先级上限p p,使得使得这个集合中所有进程的优先级都小于这个集合中所有进程的优先级都小于p p。注意注意p p 并不并不一定是整个系统中的最好优先级。一定是整个系统中的最好优先级。在创建保护该项资源的信号量或互斥量时,将在创建保护该项资源的信号量或互斥量时,将p p 作作为一个参数。为一个参数。每当有进程通过这个信号量或互斥量取得共享资源每当有进程通过这个信号量或互斥量
28、取得共享资源时,就将此进程的优先级暂时提高到时,就将此进程的优先级暂时提高到p p,一直到释一直到释放该项资源的时候才恢复其原有的优先级。放该项资源的时候才恢复其原有的优先级。可以看出,操作系统的可以看出,操作系统的“实时实时”与否,并不仅与否,并不仅仅取决于速度问题,甚至更多的是反应速仅取决于速度问题,甚至更多的是反应速度和处理时间的度和处理时间的可预测性可预测性问题。问题。实时操作系统和通用操作系统实时操作系统和通用操作系统区别区别?对于通用操作系统,总体的效率是更高对于通用操作系统,总体的效率是更高的目标,必要时宁可牺牲个别进程的反的目标,必要时宁可牺牲个别进程的反应速度来达到总体效率的
29、提高;而实时应速度来达到总体效率的提高;而实时操作系统却反过来,必要时宁可牺牲总操作系统却反过来,必要时宁可牺牲总体效率也要保证个别进程的反应速度。体效率也要保证个别进程的反应速度。?对于通用操作系统,公正性更为重要,对于通用操作系统,公正性更为重要,必要时宁可必要时宁可“劫富济贫劫富济贫”。而实时操作系统,。而实时操作系统,高优先级进程的运行更为重要,必要时高优先级进程的运行更为重要,必要时宁可宁可“劫贫济富劫贫济富”10?对于通用操作系统,性能的分析是统计对于通用操作系统,性能的分析是统计分析、平均值分析。而实时操作系统性分析、平均值分析。而实时操作系统性能分析则是能分析则是“最坏情况最坏
30、情况”分析。分析。?通用操作系统充分利用通用操作系统充分利用CPUCPU处理能力,处理能力,而实时操作系统有意让而实时操作系统有意让CPUCPU处理能力供处理能力供过于求,以确保反应速度和任务的完成。过于求,以确保反应速度和任务的完成。3.3.微内核与单内核微内核与单内核?分层模拟分层模拟?通用计算机需要通用计算机需要“大而全大而全”的内核的内核 你不需要,别人可能需要你不需要,别人可能需要 当局限于某个具体领域时,做些当局限于某个具体领域时,做些“裁减裁减”?嵌入式系统的用户群以及对功能的要求嵌入式系统的用户群以及对功能的要求是相对封闭的是相对封闭的?商业上考虑,大而全也不合适商业上考虑,大
31、而全也不合适?“裁减裁减”或或“系统生成系统生成”没有根本上解决问题没有根本上解决问题?将内核中的部分内容移到内核外面,作将内核中的部分内容移到内核外面,作为服务进程运行。为服务进程运行。代表:代表:MACHMACH?把内核中的部分内容移到外面,但不作把内核中的部分内容移到外面,但不作为独立的进程运行,而是作为让应用程为独立的进程运行,而是作为让应用程序调用的库函数存在。序调用的库函数存在。fopenfopen与与openopen socketsocket?在微内核中保留哪些东西?在微内核中保留哪些东西?进程管理进程管理 存储管理存储管理 进程间通信进程间通信 中断响应框架中断响应框架微内核的
32、优先级倒置问题微内核的优先级倒置问题?有有A A、B B两个应用程序,两个应用程序,A A的优先级比的优先级比B B高,但高,但是是A A在睡眠,而在睡眠,而B B在运行。在运行。?B B需要进行文件操作,发请求给文件服务进程,需要进行文件操作,发请求给文件服务进程,自己进入睡眠,等待文件操作完成自己进入睡眠,等待文件操作完成?本来在睡眠的文件服务进程接受到本来在睡眠的文件服务进程接受到B B的请求后的请求后开始为开始为B B服务。服务。?此时此时A A因某外部事件而变成就绪。因某外部事件而变成就绪。?发生调度时,发生调度时,A A与文件服务进程都是就绪状态。与文件服务进程都是就绪状态。文件服
33、务进程由于优先级高而更为优先。可是文件服务进程由于优先级高而更为优先。可是文件服务进程代表的是文件服务进程代表的是B B,因此发生优先级倒因此发生优先级倒置。置。以上问题的解决办法是采用以上问题的解决办法是采用“客户驱动优先客户驱动优先级级”,但是对于,但是对于LINUXLINUX等操作系统,由于是等操作系统,由于是不可剥夺的,因此天生不可解决。不可剥夺的,因此天生不可解决。11?A B C A B C,C C正在运行正在运行?C C需要文件操作,发请求给文件服务进程,需要文件操作,发请求给文件服务进程,进入睡眠,等待文件操作完成。进入睡眠,等待文件操作完成。?文件服务进程开始为文件服务进程开
34、始为C C服务,并将优先级服务,并将优先级设成与设成与C C相同。相同。?此时此时A A被外部时间唤醒,也需要文件操作,被外部时间唤醒,也需要文件操作,发请求,进入睡眠。发请求,进入睡眠。?A A的请求在文件服务进程的等待队列中。的请求在文件服务进程的等待队列中。发生优先级倒置。发生优先级倒置。?B B由于外部事件变成就绪由于外部事件变成就绪?由于由于B C,BB C,B会被调度。会被调度。?对于对于C C是合理的,但是对于是合理的,但是对于A A,太不公平。太不公平。?如果还有如果还有B1B1,B2B2,B3B3,B4B4,噢。噢。微内核的优点微内核的优点?小而且简单,容易理解,容易维护小而
35、且简单,容易理解,容易维护?各模块可以独立开发各模块可以独立开发?系统配置灵活方便系统配置灵活方便微内核的缺点微内核的缺点?效率降低效率降低?安全降低安全降低?MinuxMinux的作者的作者Andy Andy TanenbaumTanenbaum:“Only Only because the brainbecause the brain-dead nature of the Intel dead nature of the Intel CPUs makes that difficult to do otherwiseCPUs makes that difficult to do otherw
36、ise”?单一内核的努力:单一内核的努力:可安装模块可安装模块4 4 常用的商品嵌入式操作系统常用的商品嵌入式操作系统?L Licenseicense?CECE的源代码的源代码12VxWorksVxWorks?美国美国WindRiverWindRiver?统一空间统一空间?函数接口多(函数接口多(30003000多)多)?是是UNIXUNIX的远房变种,但区别也很大的远房变种,但区别也很大?为不带为不带MMUMMU的处理器设计的,当然允许可选的处理器设计的,当然允许可选?可剥夺调度可剥夺调度?采用优先级继承方法解决倒置问题采用优先级继承方法解决倒置问题?支持消息、信号、管道等进程间通信支持消息
37、、信号、管道等进程间通信?支持支持POSIXPOSIX?网络支持很全面网络支持很全面?新版本:新版本:VxWorksVxWorks AE,AE,分离空间分离空间QNXQNX?加拿大加拿大QNX Software SystemQNX Software System公司公司?类似于类似于MACHMACH?进程管理、文件系统管理、设备管理、网络管进程管理、文件系统管理、设备管理、网络管理都在内核之外理都在内核之外?符合符合POSIXPOSIX?采用消息作为进程间通信采用消息作为进程间通信?可剥夺可剥夺?GUIGUI类似于类似于X WINDOWSX WINDOWS?支持网络和分布式计算支持网络和分布式
38、计算pSOSpSOS?原美国原美国Integrated SystemIntegrated System公司产品,现被公司产品,现被WindRiverWindRiver收购收购?接近单一内核的微内核系统接近单一内核的微内核系统?文件系统移到内核外文件系统移到内核外?采用优先级继承和优先级封顶技术采用优先级继承和优先级封顶技术?存储管理可以根据需要舍取存储管理可以根据需要舍取?消息和事件作为进程间通信消息和事件作为进程间通信?设备驱动留在内核中设备驱动留在内核中?S Socketocket提供网络接口提供网络接口Windows CEWindows CE?MicrosoftMicrosoft公司的产
39、品公司的产品?微内核,可剥夺微内核,可剥夺?采用页式存储管理,页面换入技术(可以锁定)采用页式存储管理,页面换入技术(可以锁定)?内核映像既可以在内核映像既可以在ROMROM中,也可以在中,也可以在RAMRAM中中运行运行?动态连接动态连接DLLDLL?中断处理分中断处理分ISRISR与与ISTIST,不支持嵌套不支持嵌套?设备驱动也分两层设备驱动也分两层?WinsockWinsock提供网络接口提供网络接口?GUIGUI丰富丰富5 5 开源的嵌入式操作系统开源的嵌入式操作系统?公开源码公开源码 不是商品不是商品 C/OSC/OS13MACHMACH?Carnegie Mellon Unive
40、rsityCarnegie Mellon University?RTRT-MACHMACHRTLINUXRTLINUX?New Mexico TechNew Mexico Tech的的Victor Victor YodaikenYodaiken等人等人研制研制?变种:变种:RTAIRTAI ADEOSADEOSKURTKURT?L Linuxinux的变种,的变种,Kansas UniversityKansas University?时钟精度提高时钟精度提高?增加一些系统调用增加一些系统调用?增加针对硬实时进程的调度策略增加针对硬实时进程的调度策略ARMARM-LINUXLINUXPreemp
41、t LinuxPreempt Linux?Robert M.LoveRobert M.Love?针对针对LINUXLINUX的不可剥夺调度的不可剥夺调度?20012001年年RMLRML补丁补丁TimeSysTimeSys LinuxLinux?美国公司,原致力于美国公司,原致力于MACH,MACH,现转向现转向linuxlinux146 6 因特网时代应用模型的演变因特网时代应用模型的演变因特网时代应用模型的演变因特网时代应用模型的演变?程序作为动态构件自动加载运行,而不程序作为动态构件自动加载运行,而不需要由用户去逐个启动。需要由用户去逐个启动。?构件支持脚本语言控制,多个构件可以构件支持
42、脚本语言控制,多个构件可以相互操作,交换信息。相互操作,交换信息。?以浏览器为交互式操作界面,既便于有以浏览器为交互式操作界面,既便于有户掌握,又为程序开发提供了统一标准。户掌握,又为程序开发提供了统一标准。?网络化资源管理,程序自动下载运行,网络化资源管理,程序自动下载运行,不需要用户介入。不需要用户介入。因特网时代应用模型的演变因特网时代应用模型的演变因特网时代应用模型的演变因特网时代应用模型的演变来自不同软件开发商的软件模块动态组织起来运行灵活内核技术灵活内核技术灵活内核技术灵活内核技术浏览器成为统一的用户界面浏览器成为统一的用户界面浏览器成为统一的用户界面浏览器成为统一的用户界面操作系
43、统对操作系统对操作系统对操作系统对XMLXML的支持的支持的支持的支持?XMLXML文本描述语言的广泛使用将是因特文本描述语言的广泛使用将是因特网时代操作系统的另一明显标志网时代操作系统的另一明显标志?XMLXML的每个标签(的每个标签(tagtag)都可以由用户定都可以由用户定义义?XMLXML兼顾了对于人的可读性和计算机的兼顾了对于人的可读性和计算机的处理效率处理效率?XMLXML已经成了因特网信息交换的标准,已经成了因特网信息交换的标准,未来的操作系统内核会对未来的操作系统内核会对XMLXML进行最有进行最有效的支持效的支持因特网时代操作系统技术的发因特网时代操作系统技术的发展展 15硬
44、件设备即插即用硬件设备即插即用硬件设备即插即用硬件设备即插即用?因特网时代要求硬件设备能即插即用因特网时代要求硬件设备能即插即用?解决方案只能是在驱动程序对象中加入非执行的描述信息,解决方案只能是在驱动程序对象中加入非执行的描述信息,?这种描述信息就是通常所说的元数据(这种描述信息就是通常所说的元数据(metadatametadata),它可以它可以“告诉告诉”访问者它有哪些特性和功能。访问者它有哪些特性和功能。?元数据可以是元数据可以是XMLXML形式、二进制或两者兼有。我们知道对形式、二进制或两者兼有。我们知道对象加上元数据就是构件。象加上元数据就是构件。?操作系统可以根据构件中的元数据生
45、成中间件。这种在内操作系统可以根据构件中的元数据生成中间件。这种在内核里动态生成的中间件是连接驱动构件与用户程序的核里动态生成的中间件是连接驱动构件与用户程序的“桥桥梁梁”,?而这而这 桥梁桥梁 是内核根据硬件设备的元数据动态生成的,此是内核根据硬件设备的元数据动态生成的,此时的新型操作系统仍然是时的新型操作系统仍然是 以不变应万变以不变应万变 体系结构由固定变为灵活体系结构由固定变为灵活体系结构由固定变为灵活体系结构由固定变为灵活?操作系统体系结构大致分为两种:大内核操作系统体系结构大致分为两种:大内核(Monolithic KernelMonolithic Kernel)和微内核(和微内核
46、(Micro KernelMicro Kernel)?大内核操作系统将图形、设备驱动、文件系统等大内核操作系统将图形、设备驱动、文件系统等全部功能在操作系统内核中实现,运行在内核状全部功能在操作系统内核中实现,运行在内核状态、同一地址空间。优点是减少进程间通信和状态、同一地址空间。优点是减少进程间通信和状态切换的系统开销,获得较好的运行效率。缺点态切换的系统开销,获得较好的运行效率。缺点是内核庞大,占用资源多,剪裁不易,并且一旦是内核庞大,占用资源多,剪裁不易,并且一旦个别驱动程序运行出错,就会导致整个系统崩溃,个别驱动程序运行出错,就会导致整个系统崩溃,稳定性、安全性不好。稳定性、安全性不好
47、。?微内核在内核中只实现那些必须由内核实现的基微内核在内核中只实现那些必须由内核实现的基本功能,而将图形、文件系统、设备驱动、通讯本功能,而将图形、文件系统、设备驱动、通讯等功能放在内核之外,作为系统服务来提供相应等功能放在内核之外,作为系统服务来提供相应的功能,这些程序在用户状态下运行。这样做的的功能,这些程序在用户状态下运行。这样做的优点是有一个精炼的内核,便于剪裁、移植。优点是有一个精炼的内核,便于剪裁、移植。服务器服务器服务器服务器-中间件中间件中间件中间件-用户用户用户用户”编程模型编程模型编程模型编程模型操作系统与虚拟机操作系统与虚拟机操作系统与虚拟机操作系统与虚拟机?操作系统可以
48、作为虚拟机,直接提供中操作系统可以作为虚拟机,直接提供中间件的运行环境间件的运行环境?操作系统可以对应用程序构件进行各种操作系统可以对应用程序构件进行各种各样的控制,使得封装好的构件能够适各样的控制,使得封装好的构件能够适应不同的运行环境和用户要求应不同的运行环境和用户要求?操作系统利用中间件技术支持和控制应操作系统利用中间件技术支持和控制应用程序的运行环境,就形成了因特网时用程序的运行环境,就形成了因特网时代操作系统的关键技术代操作系统的关键技术基于中间件技术的嵌入式操作系基于中间件技术的嵌入式操作系基于中间件技术的嵌入式操作系基于中间件技术的嵌入式操作系统统统统?操作系统的实现采用构件技术
49、,提供构件运行的虚拟机环操作系统的实现采用构件技术,提供构件运行的虚拟机环境,支持动态加载构件境,支持动态加载构件?构件的互操作性定义了编程语言无关、可扩展、跨平台的构件的互操作性定义了编程语言无关、可扩展、跨平台的二进制标准。构件之间的相互作用通过一组称作接口二进制标准。构件之间的相互作用通过一组称作接口(interface)interface)的功能实现的功能实现?提供接口描述语言提供接口描述语言CDLCDL,为服务器中新功能的实现提供了为服务器中新功能的实现提供了方便,如脚本语言调用构件对象函数等方便,如脚本语言调用构件对象函数等?运行环境(虚拟机)可以在操作系统上自动生成中间件运行环境
50、(虚拟机)可以在操作系统上自动生成中间件(代理构件),提供构件定位、调用、管理、中间件自动(代理构件),提供构件定位、调用、管理、中间件自动生成、构件通信生成、构件通信(进程内、跨进程、跨网络等不同运行环进程内、跨进程、跨网络等不同运行环境境)等机制等机制?件技术保证了软件互操作性、版本升级独立性和运行环境件技术保证了软件互操作性、版本升级独立性和运行环境透明性,提供了提高系统安全、软件协同开发、软件容错、透明性,提供了提高系统安全、软件协同开发、软件容错、可靠性、软件复用、软件升级的有效手段可靠性、软件复用、软件升级的有效手段基于中间件技术的操作系统的技基于中间件技术的操作系统的技基于中间件