嵌入式系统软件嵌入式系统软件
- 格式:pdf
- 大小:2.48 MB
- 文档页数:36
嵌入式软件使用说明随着科技的不断发展,嵌入式系统在我们的日常生活中发挥着越来越重要的作用,而嵌入式软件则成为了嵌入式系统中不可或缺的一部分。
嵌入式软件的使用可能存在一些问题,本文将对嵌入式软件的使用进行一些说明和指导。
一、了解嵌入式软件嵌入式软件,是一种针对特定应用领域及使用环境、具有特殊功能和特殊结构的软件。
它运行在嵌入式系统中,通常不需要人工干预。
与常用的计算机操作系统不同,嵌入式软件的特点是占用系统资源小、运行速度快、可靠性高。
但是嵌入式软件也有其自身的限制,主要体现在硬件资源、运行环境和应用场景方面。
二、选择嵌入式软件在选择嵌入式软件时,需要考虑以下几个方面:1、应用场景:不同的应用场景需要的嵌入式软件是不同的,需要评估所选软件是否能满足应用场景的需求。
2、开发成本:嵌入式软件的开发成本一般比较高,需要考虑所选软件的开发成本是否在预算范围内。
3、可维护性:嵌入式软件的可维护性对于长期运行的嵌入式系统非常重要,需要考虑所选软件的可维护性是否足够好。
4、技术支持:选择一个拥有足够技术支持的软件供应商很重要,这样在出现问题时可以得到及时的解决。
三、嵌入式软件的安装嵌入式软件的安装需要先进行下载,然后进行解压、安装等操作。
在解压和安装过程中,需要根据嵌入式软件的使用说明选择相应的文件路径和配置信息。
安装完毕后,需要进行软件的配置和对相应的参数进行设置,确保软件可以正常运行。
四、嵌入式软件的调试嵌入式软件的调试是非常重要的一项工作。
在调试过程中,需要根据嵌入式软件的使用说明,了解嵌入式软件的运行流程和相关接口。
在调试过程中,需要注意以下几个方面:1、调试工具:需要选择适合的调试工具,如仿真器、示波器等。
2、调试方法:嵌入式软件调试方法多种多样,如断点调试、跟踪调试、远程调试等。
3、调试技巧:需要掌握一些调试技巧,如错误定位、变量观测等。
五、嵌入式软件的优化在嵌入式软件的开发过程中,为了提高软件的性能和可靠性,可以进行优化。
七款嵌入式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.嵌入式系统软件产品修订原则为更加客观、真实地反映我国嵌入式系统软件的发展现状,2006年原信息产业部经济体制改革与经济运行司在召集有关省市及重点企业共同研究讨论的基础上,重新修订了嵌入式系统软件产品的目录及计算方法,主要原则如下:一是软件附加值高。
为进一步推动我国嵌入式软件的快速发展,提高国内自主知识产品,鼓励软件企业做大做强,此次选取嵌入式软件的目录产品其软件附加值必须达到60%以上,直接购置镶嵌在硬件产品中的软件除外。
如:通信产品、以太网交换机等产品。
二是自主研发比例高。
为提高企业自主研发能力,凡是企业在购置的嵌入式软件基础上经过二次开发的,其开发后的软件增值率超过软件50%以上的产品。
如:网络设备、数字视频等产品。
三是市场潜力强。
为配合产业结构,提高产业结构升级。
一些新型的、市场潜力较强的产品,提前纳入到嵌入式软件产品目录中。
如:目前我国数字电视即将广泛开通,市场需求将快速崛起,数字电视、数字机顶盒及有关数字一体机等的市场和技术上都将有较大提高。
2.计算方法本次修订嵌入式软件计算方法采用的是权数分配法,计算公式为:嵌入式系统软件收入=某产品销售收入×权数例如. ×××××安全设备有限公司,本报告期生产安全防卫系统10000套,平均每套出厂价格为5000元。
《嵌入式软件产品目录及权数》规定的“权数”为0.10。
则:全部10000套安全防卫系统的嵌入式系统软件收入为:出厂价5000元/套×10000套×权数0.10 =500万元嵌入式系统软件产品目录及权数。
嵌入式系统与嵌入式软件嵌入式系统是一种专门为特定任务而设计的计算系统,它通常被嵌入到其他设备或产品中,用于控制和监控这些设备或产品的操作。
嵌入式系统与通用计算机系统的主要区别在于它们的性能、功耗、成本和可靠性等方面的要求。
一、嵌入式系统的组成1.处理器(CPU):嵌入式系统的核心,负责执行程序指令和处理数据。
2.存储器:用于存储程序指令和数据,包括只读存储器(ROM)、随机访问存储器(RAM)等。
3.输入/输出接口:用于连接外部设备,实现数据传输和控制功能。
4.定时器/计数器:用于实现定时、计数功能,常见于嵌入式系统的时钟管理和事件处理。
5.中断控制器:用于处理外部和内部中断,实现对系统任务的调度和管理。
6.电源管理:负责为嵌入式系统提供稳定的电源供应,并进行电源管理等。
7.通信接口:用于实现与其他设备的通信,如串行通信接口(UART)、以太网接口等。
二、嵌入式软件嵌入式软件是指运行在嵌入式系统上的程序,用于控制和管理和嵌入式系统的硬件资源,实现特定功能。
嵌入式软件的特点包括:1.实时性:嵌入式软件需要在规定的时间内完成任务,对时间要求较高。
2.资源受限:嵌入式系统硬件资源有限,如存储空间、计算能力等,嵌入式软件需要优化以充分利用资源。
3.可靠性:嵌入式系统常用于关键领域,对软件的可靠性要求较高。
4.低功耗:嵌入式系统常用于移动设备或其他功耗受限的场景,嵌入式软件需要优化功耗。
5.面向硬件:嵌入式软件需要紧密依赖于硬件,充分发挥硬件特性。
三、嵌入式系统与嵌入式软件的应用领域1.消费电子:如手机、平板电脑、智能家居设备等。
2.工业控制:如工业机器人、自动化生产线等。
3.医疗设备:如心脏起搏器、医疗影像设备等。
4.汽车电子:如车载娱乐系统、智能驾驶辅助系统等。
5.通信设备:如无线通信模块、网络设备等。
6.物联网:如传感器节点、智能路由器等。
7.航空航天:如卫星导航、飞行控制系统等。
综上所述,嵌入式系统与嵌入式软件是现代电子技术的重要组成部分,广泛应用于各个领域。
什么是嵌入式系统嵌入式系统(Embedded System)是指集成计算机科学和电子工程技术于一体的计算机系统,用于控制电子设备、仪器仪表、机械设备等。
它不同于个人电脑或服务器这样的通用计算机系统,而是被特定应用领域专用的计算机系统。
嵌入式系统通常由硬件和软件两部分组成。
硬件部分由处理器、存储器、输入输出接口、传感器等组成,而软件部分则由操作系统、驱动程序和应用软件等组成。
嵌入式系统的核心特点是具有实时性、可靠性和稳定性。
嵌入式系统的应用领域非常广泛。
从家用电器、车辆、通信设备到工业控制、医疗器械、航空航天等,几乎所有需要自动化控制或数据处理的领域都离不开嵌入式系统。
例如,智能手机就是一种嵌入式系统,它集成了处理器、存储器、传感器和操作系统等多种组件,能够实现通信、计算、娱乐等多种功能。
嵌入式系统与通用计算机系统相比,最大的区别在于其应用对象和环境的特殊性。
嵌入式系统通常被嵌入到其他设备中,与特定的硬件和软件进行紧密的集成,从而实现特定的任务。
同时,嵌入式系统在设计上需要考虑功耗、体积、成本等方面的限制,因为嵌入式系统往往需要长时间运行,所以更注重稳定性和可靠性。
嵌入式系统的开发过程包含硬件设计、软件开发和系统集成等多个环节。
硬件设计包括电路设计、电路板布线等工作,需要考虑电磁兼容、抗干扰等因素。
软件开发包括底层驱动程序的编写、应用程序的开发和系统的调试等工作,需要熟悉嵌入式系统的体系结构和相关开发工具。
系统集成则是将硬件和软件进行整合,进行功能测试和性能优化。
除了以上的技术挑战,嵌入式系统还面临着安全和隐私的问题。
由于嵌入式系统通常涉及到用户的个人数据和敏感信息,确保嵌入式系统的安全性和隐私保护成为一个重要的要求。
通过加密、认证、访问控制等技术手段,可以对嵌入式系统进行安全性评估和防护策略的制定。
值得一提的是,随着物联网的快速发展,嵌入式系统的重要性进一步凸显。
物联网将各种设备和物品通过互联网进行连接和交互,实现信息的传递和共享。
1.1.2 嵌入式系统的组成嵌入式系统由硬件和软件两大部分组成,硬件一般由高性能微处理器和外围接口电路组成,软件一般由操作系统和应用程序构成,软件和硬件之间由所谓的中间层(BSP层,板级支持包)连接。
嵌入式系统的硬件有:嵌入式微处理器、存储器、输入输出(I/O、A/D、D/A)。
嵌入式系统的软件有:操作系统、应用软件。
操作系统是连接计算机硬件与应用程序的系统程序。
嵌入式操作系统可以分为实时操作系统和分时操作系统两类。
实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。
实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务;其次才着眼于提高计算机系统的使用效率,其重要特点是通过任务调度来满足对于重要时间在规定的时间内做出正确的响应。
分时操作系统,软件在时间上的执行并不严格,时间上的延误或者时序上的错误,一般不会造成灾难性后果。
嵌入式系统从组织层次上看,嵌入式系统一般由硬件层、中间层、软件层和功能层组成。
(1)硬件层硬件层由嵌入式微处理器、存储器系统、通用设备接口和I/O接口(A/D、D/A、I/O等)组成。
在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM和RAM 等),就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM中。
(2)中间层硬件层和软件层之间为中间层,也称为硬件抽象层HAL和板级支持包BSP,它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
(3)软件层软件层由实时多任务操作系统RTOS、文件系统、图形用户接口GUI、网络系统及通用组件模块组成。
(4)功能层功能层由基于RTOS开发的应用程序组成,用来完成对被控对象的控制功能。
功能层是面向被控对象和用户的。
在专用的嵌入式板子上面运行GNU/Linux系统已经变得越来越流行。
一个嵌入式Linux 系统从软件的角度看通常可以分为四个层次:(1)引导加载程序。
什么是嵌入式软件开发?针对嵌入式设备的应用软件开发通常一个嵌入式设备,比如pda有一个嵌入式的操作系统(类似于一般的操作系统,比如xp,2000等等),但是光有一个系统什么都干不了,那么就需要嵌入式的应用软件,这样的软件的开发是基于嵌入式操作系统的,也就是嵌入式操作系统提供api,开发人员通过api 来开发应用软件,比如移动QQ,记事本等,开发出来的应用软件是运行在嵌入式操作系统之上的,因此嵌入式软件的开发与嵌入式操作系统是分不开的,有时我们甚至把嵌入式操作系统也归入嵌入式软件的范畴,只不过它是嵌入式系统软件。
什么是嵌入式软件?嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。
****************************************************************************** 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。
硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。
软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式系统的核心是嵌入式微处理器。
嵌入式微处理器一般就具备以下4个特点:1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
2)具有功能很强的存储区保护功能。
嵌入式系统软件杨剑锋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’,一直到释放该项资源的时候才恢复其原有的优先级。
可以看出,操作系统的“实时”与否,并不仅仅取决于速度问题,甚至更多的是反应速度和处理时间的可预测性问题。
实时操作系统和通用操作系统区别对于通用操作系统,总体的效率是更高的目标,必要时宁可牺牲个别进程的反应速度来达到总体效率的提高;而实时操作系统却反过来,必要时宁可牺牲总体效率也要保证个别进程的反应速度。