嵌入式系统软件嵌入式系统软件
嵌入式软件使用说明

嵌入式软件使用说明随着科技的不断发展,嵌入式系统在我们的日常生活中发挥着越来越重要的作用,而嵌入式软件则成为了嵌入式系统中不可或缺的一部分。
嵌入式软件的使用可能存在一些问题,本文将对嵌入式软件的使用进行一些说明和指导。
一、了解嵌入式软件嵌入式软件,是一种针对特定应用领域及使用环境、具有特殊功能和特殊结构的软件。
它运行在嵌入式系统中,通常不需要人工干预。
与常用的计算机操作系统不同,嵌入式软件的特点是占用系统资源小、运行速度快、可靠性高。
但是嵌入式软件也有其自身的限制,主要体现在硬件资源、运行环境和应用场景方面。
二、选择嵌入式软件在选择嵌入式软件时,需要考虑以下几个方面:1、应用场景:不同的应用场景需要的嵌入式软件是不同的,需要评估所选软件是否能满足应用场景的需求。
2、开发成本:嵌入式软件的开发成本一般比较高,需要考虑所选软件的开发成本是否在预算范围内。
3、可维护性:嵌入式软件的可维护性对于长期运行的嵌入式系统非常重要,需要考虑所选软件的可维护性是否足够好。
4、技术支持:选择一个拥有足够技术支持的软件供应商很重要,这样在出现问题时可以得到及时的解决。
三、嵌入式软件的安装嵌入式软件的安装需要先进行下载,然后进行解压、安装等操作。
在解压和安装过程中,需要根据嵌入式软件的使用说明选择相应的文件路径和配置信息。
安装完毕后,需要进行软件的配置和对相应的参数进行设置,确保软件可以正常运行。
四、嵌入式软件的调试嵌入式软件的调试是非常重要的一项工作。
在调试过程中,需要根据嵌入式软件的使用说明,了解嵌入式软件的运行流程和相关接口。
在调试过程中,需要注意以下几个方面:1、调试工具:需要选择适合的调试工具,如仿真器、示波器等。
2、调试方法:嵌入式软件调试方法多种多样,如断点调试、跟踪调试、远程调试等。
3、调试技巧:需要掌握一些调试技巧,如错误定位、变量观测等。
五、嵌入式软件的优化在嵌入式软件的开发过程中,为了提高软件的性能和可靠性,可以进行优化。
嵌入式系统-2-嵌入式软件基础

嵌入式软件体系结构
无操作系统的体系结构--轮询结构
轮询结构是最简单的结构,程序一次检查每个I/O设备,并且为需要服 务的设备提供服务。
特点:没有中断,没有共享数据,无须考虑延迟时间。例如在数字万用表中 用于连续的测量并可改变显示的内容。
缺点: • 如果一个设备需要比微处理器在最坏情况下完成一个循环的时间更短的响
嵌入式系统
第一部分 嵌入式系统基础
1.3 嵌入式系统软件基础
嵌入式软件分类 嵌入式软件体系结构 嵌入式软件开发 嵌入式软件开发实例
嵌入式软件分类
嵌入式软件
单线程程序
• 分支多 • 技术差系统
多任务系统
单机多任务系统
分布式系统
• 操作系统: Linux、μC/OS-II/III、VxWorks、Android、IOS、WinCE • 硬件平台: ARM、单片机、FPGA、DSP、POWERPC、XScale • 编程语言: C、C++、Object-C、Java、汇编
缺点:若某个较低优先级的运行时间较长,就有可能 影 响较高优先级函数的响应时间。
嵌入式软件体系结构
无操作系统的体系结构--有限状态机 (FSM,Finite State Machine)
控制门状态的有限状态机示意图:
优点: • 对小系统便于编程和理解。 • 以快速执行。 • 只是通过改变输出功能来改变机器的响应。
缺点:所有的任务代码以同样的优先级来执行。
嵌入式软件体系结构
无操作系统的体系结构--函数队列调度结构
在这种结构中,中断程序在一个函数指针队列中添加 一个函数指针,以供程序调用,主程序仅需要从该队列中读 取相应的指针并且调用相关的函数。
优点:该结构没有规定主程序必须按中断程序发生的顺序 来调用函数,主函数可以根据任何达到目的的优先级方案 来调用函数,这样人和需要更快响应的任务代码都可以被 更早地执行。
嵌入式系统与软件(2)

8
嵌入式微处理器分类
按用途来分,嵌入式微处理器可分为四种: 按用途来分,嵌入式微处理器可分为四种: 嵌入式微处理器:由通用计算机的CPU演变而来, 嵌入式微处理器:由通用计算机的CPU演变而来,不同的 CPU演变而来 是只保留了和嵌入式以后能够用紧密相关的功能硬件, 是只保留了和嵌入式以后能够用紧密相关的功能硬件,去 除了其他冗余功能,并配上了必要的外围扩展电路, 除了其他冗余功能,并配上了必要的外围扩展电路,减小 了体积和功耗。 了体积和功耗。 嵌入式微控制器:又称单片机, 嵌入式微控制器:又称单片机,一般以一种微处理器为核 片内集成了ROM EPROM、RAM、总线、总线逻辑、 ROM、 心,片内集成了ROM、EPROM、RAM、总线、总线逻辑、定 时器、计数器、I/O等 时器、计数器、I/O等。 嵌入式DSP处理器:专用于数字信号处理,采用哈佛结构, 嵌入式DSP处理器:专用于数字信号处理,采用哈佛结构, DSP处理器 采用一系列措施保证数字信号的处理速度,如对FFT FFT( 采用一系列措施保证数字信号的处理速度,如对FFT(快 速傅立叶变换)的专门优化。 速傅立叶变换)的专门优化。 嵌入式片上系统SoC:又系统级芯片, 嵌入式片上系统SoC:又系统级芯片,在一个硅片上实现 SoC 了一个更为复杂的计算机系统。 了一个更为复杂的计算机系统。 9
6
操作
可以对存储器和寄存器进行运 算和操作
编译
难以用优化编译器生成高效的 目标代码程序
嵌入式微处理器
经过近20年的发展,嵌入式微处理器的集成度、 经过近20年的发展,嵌入式微处理器的集成度、主 20年的发展 频、位数都得到了提高
20世纪 年 世纪80年 世纪 代中后期 制作工艺 主频 晶体管 个数 位数 1 - 0.8 µm < 33 MHz > 500K 8/16bit 20世纪 年 世纪90年 世纪 代初期 0.8 - 0.5 µm <100 MHz >2M 8/16/32bit 20世纪 年 世纪90年 世纪 代中后期 0.5 – 0.35 µm <200 MHz >5M 8/16/32bit 21世纪初期 世纪初期 0.25 - 0.13 µm < 600 MHz >22M 8/16/32/64bit
七款嵌入式Linux操作系统简介分享

七款嵌入式Linux操作系统简介分享于日本的绿色Midori,用来反映其Linux 操作系统的环保外观。
红旗嵌入式Linux由北京中科院红旗软件公司推出的嵌入式Linux 是国内做得较好的一款嵌入式操作系统。
目前,中科院计算所自行开发的开放源码的嵌入式操作系统Easy Embedded OS(EEOS)也已经开始进入实用阶段了。
该款嵌入式操作系统重点支持p-Java。
系统目标一方面是小型化,另一方面能重用Linux 的驱动和其它模块。
由于有中科院计算所的强大科研力量做后盾,EEOS 有望发展成为功能完善、稳定、可靠的国产嵌入式操作系统平台。
思考与展望以上列举的众多嵌入式Linux 操作系统中,国内对于uClinux 和RT- Linux 研究的较多,很多基于它们的产品已经面世,比如华恒公司已经把uClinux 成功移植,并投放到市场。
正是由于Linux 开放源代码的特点,所以全世界的开发厂商都站在同一个起跑线上。
国内的研究机构和企业也正在积极投入人力、物力,力争在嵌入式操作系统上有所为。
但应该清醒认识到,绝大多数的嵌入式系统的硬件平台还掌握在外国公司的手中。
国产的嵌入式操作系统在技术含量、兼容性、市场运作模式等方面还有很多工作要做。
国家对嵌入式领域的发展也极为重视。
信息产业部《2003 年度电子发展基金项目指南》在软件类重点产品项目中,第五小类就是关于嵌入式软件与系统开发的,并提出要重点进行如下重点项目的研制与开发:嵌入式实时操作系统、嵌入式软件集成开发平台和嵌入式数据库管理软件。
由于嵌入式系统研发在国内起步比较晚,我国目前还基本处于实验室阶段。
但是嵌入式操作系统的巨大的商业价值和Linux 的开放性,为民族软件。
嵌入式系统的软件架构设计

嵌入式系统的软件架构设计一、嵌入式系统软件架构设计的原则1.单一职责原则:模块化设计,每个模块负责独立的功能或任务,使得系统具有高内聚性和低耦合性,易于维护和拓展。
2.低功耗原则:嵌入式系统通常运行在资源受限的环境中,所以在设计过程中应考虑功耗的优化,如合理使用睡眠模式、降低组件工作频率等。
3.实时性原则:对于需要实时响应的系统,需要保证任务的实时性和可靠性。
可以使用实时操作系统,合理分配任务优先级,提供正确的调度机制。
4.可靠性原则:嵌入式系统通常运行在无人值守的环境中,对于需要长时间运行的系统,需要考虑到系统的稳定性和错误处理机制,如保证数据一致性、异常处理等。
二、常用的嵌入式系统软件架构模式1.分层结构:将系统划分为若干层,每一层负责特定的功能或任务。
上层可以调用下层的服务,实现系统的复用和模块化设计。
常见的分层结构有应用层、服务层、驱动层等。
2.客户端-服务器模式:将系统拆分为客户端和服务器,客户端负责用户界面和输入输出处理,服务器负责核心业务逻辑和数据处理。
这种模式适用于需要分布式处理和网络通信的系统。
3.事件驱动模式:通过订阅和发布机制,实现模块之间的高效通信和数据传递。
当一个模块触发一个事件时,相关的订阅者可以接收并处理这个事件。
这种模式适用于需要实现松耦合的模块间通信的系统。
4.状态机模式:系统根据不同的状态进行不同的处理,通过定义状态转换规则,可以实现系统的复杂逻辑控制。
这种模式适用于需要根据不同状态处理不同事件的系统,如自动控制系统。
三、嵌入式系统软件架构设计的指导1.准确定义需求:在设计阶段之前,清楚地定义系统的功能需求、性能需求、可靠性需求等,并根据需求确定软件架构的基本模型和模式。
2.模块化设计和接口定义:将系统划分为若干独立的模块,并定义模块之间的接口和通信机制。
模块化设计可以提高系统的复用性、拓展性和维护性。
3.确定关键任务:对于需要实时响应的系统,需要确定关键任务,并按照优先级进行调度。
嵌入式系统体系结构

嵌入式系统体系结构嵌入式系统体系结构:嵌入式系统的组成包含了硬件层、中间层、系统软件层和应用软件层。
1、硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。
嵌入式核心模块=微处理器+电源电路+时钟电路+存储器Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。
它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。
2、中间层(也称为硬件抽象层HAL或者板级支持包BSP).它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。
BSP有两个特点:硬件相关性和操作系统相关性。
设计一个完整的BSP需要完成两部分工作:A、嵌入式系统的硬件初始化和BSP功能。
片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。
板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。
系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。
B、设计硬件相关的设备驱动。
3、系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
4、应用软件:由基于实时系统开发的应用程序组成。
嵌入式芯片体系结构介绍1.嵌入式微处理器(Micro Processor Unit,MPU)嵌入式微处理器是由通用计算机中的CPU演变而来的。
它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。
但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。
目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/ StrongARM系列等。
第三部分嵌入式软件体系结构

第三部分嵌入式软件体系结构
嵌入式软件体系结构是嵌入式系统的核心,是实现特定功能的硬件系统和软件系统的重要构成部分。
它主要用于控制嵌入式系统中的硬件和软件资源,同时也是嵌入式系统可靠性和可维护性的关键环节。
嵌入式软件体系结构由三个主要系统组成,即操作系统、中间件和应用系统。
其中,操作系统是嵌入式系统的基础,主要用于控制硬件和软件资源。
它提供基本的设备驱动、内存管理、任务调度和安全保护功能,以实现对硬件的有效控制和利用。
中间件是在操作系统和应用系统之间构成的桥梁,它主要负责支持多种应用系统之间的数据交换和信息传输,以及提供其他系统支持,包括数据库、Web服务和安全等。
最后,应用系统主要用于实现嵌入式系统的功能,它可以是定制开发的应用编程接口(API),也可以是基于标准的软件平台,如RTOS和Linux等。
应用程序可以是基于操作系统的程序,也可以是基于Web的程序。
嵌入式软件体系结构需要综合考虑硬件环境、软件环境和功能需求,为嵌入式系统的设计、开发和实施提供可靠的技术支撑。
嵌入式系统中的软件架构

嵌入式系统中的软件架构在嵌入式系统开发过程中,软件架构起着至关重要的作用。
软件架构定义了系统中各个组件的关系和功能,为系统的设计和开发提供了指导。
本文将从嵌入式系统的角度探讨软件架构在嵌入式系统中的重要性以及常见的软件架构模式。
一、嵌入式系统的定义与特点嵌入式系统是指嵌入在各种电子设备和机械设备中的计算机系统。
嵌入式系统的特点包括:资源受限、实时性要求高、功耗低、稳定性强等。
由于嵌入式系统的特殊性,软件架构的设计需要考虑这些特点,以满足系统的需求。
二、软件架构在嵌入式系统中的重要性1. 提高系统可维护性:嵌入式系统往往需要长时间稳定运行,因此良好的软件架构可以提高系统的可维护性,减少维护工作的复杂度。
通过模块化的设计,可以方便对系统进行修改和扩展。
2. 改进系统性能:软件架构能够提供合理的分层结构,使得系统的功能模块清晰明了。
通过优化和调整架构,可以提高系统的运行效率,降低资源消耗。
3. 增强系统可靠性:嵌入式系统通常需要长时间稳定运行,软件架构的设计需要考虑系统的可靠性。
通过合理的架构设计和模块化的开发,可以降低系统的错误率,提高系统的稳定性和可靠性。
三、常见的嵌入式系统软件架构模式1. 单体架构:单体架构是最简单的架构模式,将整个系统作为一个单一的实体进行开发和部署。
这种架构模式适用于中小规模的嵌入式系统开发,但是对于复杂的系统,单体架构的维护和扩展将变得困难。
2. 分层架构:分层架构将系统分为多个层次,每个层次负责不同的功能模块。
每个层次之间通过接口进行通信,实现了模块间的解耦。
这种架构模式适用于复杂的嵌入式系统,可以提高系统的可维护性和可扩展性。
3. 客户端-服务器架构:客户端-服务器架构将系统分为客户端和服务器两部分,客户端负责与用户交互,服务器负责处理业务逻辑。
这种架构模式适用于需要与外部系统进行通信的嵌入式系统,如物联网设备。
4. 事件驱动架构:事件驱动架构通过事件的响应来驱动系统的运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统软件杨剑锋1. 嵌入式操作系统嵌入式操作系统是个集合,而且是个无限集合–监控程序Æ常规操作系统(红外线Æ紫外线)–一维和多维嵌入式操作系统常常有实时要求–早期:嵌入式操作系统= 实时操作系统–近期:»1)手持计算机和掌上计算机的出现;»2)CPU速度的提高;»3)常规操作系统增加实时进程调度的支持,如POSIX.4Æ嵌入式操作系统<>实时操作系统 许多嵌入式操作系统的内核是微内核结构 许多嵌入式操作系统都不带磁盘–根本不支持文件系统–结构上为了设备驱动而支持文件系统,但不支持文件系统的文件存储功能许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术许多嵌入式操作系统不划分“系统空间”和“用户空间”–操作系统的“内核”与外围应用程序之间不再有物理的边界;–系统中所谓“进程”实际上全都是内核线程»静态连接、系统调用、进程调度/切换–对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之;–系统调用的界面太庞大;–共享变量的访问,需要谨慎对待;–把通用操作系统上的应用移植过来需考虑“可重入”的问题;不分系统空间和用户空间<>必须静态连接–如DOS、CP/M的INT21不分系统空间和用户空间<>不能用页面映射技术–但只用于不同进程之间,而非不同空间之间 即使采用了存储管理,基本上都不采用页面交换技术重启动技术(watch dog )2. RTOS是否实时–一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;–另一方面同时也是反映的速度在多大的程度上得到保证的问题中断延迟(Interrupt Latency)–中断不可嵌套–LINUX的Bottom Half–中断可嵌套:优先级中断»大多微处理器不支持;»LINUX不支持;»UNIX支持–与指令集有关–DMA操作有关–保证系统调用的原子性有关 调度延迟(Scheduling Latency)–中断处理程序进程处理–一般调度算法(Round Robin)不能及时选中–基于优先级调度算法,一般能及时选中»如果目标进程优先级低呢?–可剥夺调度和不可剥夺调度»LINUX是属于什么调度?⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→事件或软中断Linux 既不是完全的可剥夺,也不是完全的不可剥夺上下文切换延迟(Context Switch Latency)–大小取决于CPU和操作系统–采用MMU > 不采用MMU 只要发生调度,就能选中目标进程吗?–根据时间片的耗用调整优先级–拉开距离,分等级对实时进程而言,“应该没有问题”不够。
是否可以不用中断、也不用调度,回到最简单的“监控程序”?实时性简介对于什么是实时系统,POSIX 1003.b作了这样的定义:指系统能够在限定的响应时间内提供所需水平的服务实时系统根据其对于实时性要求的不同,可以分为软实时和硬实时两种类型一个计算机系统为了提供对于实时性的支持,它的操作系统必须对于CPU和其他资源进行有效的调度和管理,即实时调度实时调度分类各种实时操作系统的实时调度算法从调度策略上可以分为如下三种类别:基于优先级的调度算法(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD)从调度方式上来讲可以分为:可抢占、不可抢占;从时间片来分:固定时间片、可变时间片实时性改造对操作系统实时性的扩展可以从两方面进行:向外扩展和向上扩展向外扩展是从范围上扩展,让实时系统支持的范围更广,支持的设备更多向上扩展是扩充操作系统内核,从功能上扩充系统的实时处理实时多任务OS-RTOS 单片机–无os–主程序RTOS–资源包装–API–可移植(只要1-4%)实时系统在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间响应时间限定可预知实时操作系统与I/O实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。
就是:●系统应该有在事先定义的时间范围内识别和处理离散的事件的能力。
●系统能够处理和存储控制系统所需要的大量的数据。
周期性的系统 非周期性系统 硬实时系统–灾难后果软实时系统–性能下降RTOS与分时系统事件响应时间限定事件随机到达系统可确定性Rtos的历史 1)早早期的监控系统–系统init–时钟–简单的任务调度2)专用实时OS–依赖于特定硬件–移植性不好3)通用RTOS嵌入式软件开发平台RTOS标准化可移植设备独立RTOS基本struct实时多任务core–任务管理:多任务和基于优先级的任务调度–定时器:系统的实时时钟服务,以及各个定时任务的调入等–Mem:管理系统的内存资源,如DRAM,ROM,FLASHRAM等–资源管理:管理系统的各种资源如系统的各种设备,端口,中断等;–事件和消息管理:管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的通讯 RTOS的系统调用90%以上的设备独立RTOS的任务---分时系统Process实时带来的问题1-时间在实时系统中最基本的是系统应该能够提供对时间正确性进行指定的方法系统提供一种指定时间尺度的方法通用系统的延时不能满足问题2-实时系统的结构 实时系统的体系结构必须满足:●高运算速度●高速的中断处理●高的I/O吞吐率●合理的处理器和I/O设备的拓扑连接●高速可靠的和有时间约束的通信●体系结构支持的出错处理,●体系结构支持的调度●体系结构支持的操作系统,●体系结构支持的实时语言特性。
问题3-容错与分布 稳定性容错分布式应用问题4-实时通讯●逻辑正确●要有确定的延迟时间问题5-其他问题●时间特性的指定和确正,这点与实际系统设计相同。
●实时的调度理论。
由于实时系统应用的特殊性以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。
主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,适应性的实时调度。
●实时操作系统的设计和实现。
在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。
实现上要求操作系统的低开销,而且必须保证内核以及其他关键的可重入性。
●实时的编程语言和设计方法。
在编程语言级完成或提供实时应用所需要的方法。
比如象Ada语言,FORTH语言。
●分布式的实时数据库。
●系统的容错。
●实时时钟的同步。
●实时系统中的人工智能与通用计算机区别 通用:–方便用户管理计算机资源–追求系统资源最大利用率RTOS–调度的实时性–响应时间可确定性–高可靠性性能衡量标准对传统的通用系统:–大的系统吞吐量–合理的响应速度–对每个系统用户相对公平的进行计算资源的分配 实时系统–实时的数据吞吐取代了以吞吐量为目标的标准。
–对硬实时应用的优先响应取代了对每个用户的恰当的反应速度。
–系统的计算资源和其他外设资源必须优先满足实时应用的要求RTOS的衡量指标●系统响应时间(System response time ):系统发出处理要求到系统给出应答信号的时间;●任务切换时间(Context-switching time):任务之间切换而使用的时间;●中断延迟(Interrupt latency time ) :是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间;RTOS的任务调度机制决定了多任务能力与实时性通用模式:–调度策略:优先级调度、时间片轮转调度–调度方式:抢占式、不可抢占式、选择可抢占式–时间片:定长时间片与变长时间片RTOS 一般使用抢占式任务调度时间限定的任务调度算法速度单调算法–工作由定期任务组织–任务时间定长度–使用频率高的优先级高时限驱动算法–工作定期与不定期–执行时长随着时间变化–下一个要安排执行的任务是时限最早的任务 MMU实模式保护模式Mem管理最小mem开销Price256K RAM…4M…32M RAM中断禁止时间 用户态->中断态中断延时时间确认中断-----Æ中断服务第一语句执行 三部分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的优先级(priority inheritance)–设S为正占用着某项共享资源的进程P以及所有正在等待占用这个资源的进程的集合;–找出这个集合中的优先级最高者,其优先级为P’–把进程P的优先级设置成P ’ 优先级封顶(priority ceiling)–设S为所有可能竞争使用某项共享资源的进程的集合。
事先为这个集合规定一个优先级上限p’,使得这个集合中所有进程的优先级都小于p’。
注意p’并不一定是整个系统中的最好优先级。
–在创建保护该项资源的信号量或互斥量时,将p’作为一个参数。
–每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到p’,一直到释放该项资源的时候才恢复其原有的优先级。
可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的可预测性问题。
实时操作系统和通用操作系统区别对于通用操作系统,总体的效率是更高的目标,必要时宁可牺牲个别进程的反应速度来达到总体效率的提高;而实时操作系统却反过来,必要时宁可牺牲总体效率也要保证个别进程的反应速度。