嵌入式 进程和线程
- 格式:ppt
- 大小:934.50 KB
- 文档页数:40


现 代 计 算 机! ^! 总i 第 实践与经验
嵌入式系统开发的实时性能和可靠性探讨
唐颖颖
f广东省高级技工学校.博罗516100) 摘 要:为了理解RTOS如何通过系统调度策略实现实时性要求.通过描述嵌入式系统和实时 系统的关键特性,探讨在硬件和软件组件的基础上开发嵌入式系统的解决方案.介绍抢 占式调度、可抢占的内核、优先级继承和中断处理等概念。 关键词:实时操作系 ̄k,(RTOS):嵌入式系统:调度策略
1嵌入式系统简介 嵌入式系统是一个包含微处理器的特殊计算机 系统. 许多具备数字接口的没备,例如数控没备、家用 电器和汽车等都会用到嵌入式系统 有些嵌入式系统 需要使用操作系统.有些则用单个程序实现整个逻 辑.但所有嵌入式系统提供的功能都要比通用计算系 统更专业些 RTOS对于很多嵌入式系统来说不但是有益的. 而且也是必要的.认识到这一点很重要 例如.一个播 放如MPEG格式电影的设备.如果依靠软件来实现其 整个内容传输.可能会出现用户难以接受的高丢帧 率 然而,通过使用RTOS.系统设计工程师能够准确 地控制软件过程的执行顺序.从而保证按照给定的媒 体速率进行播放 上述大部分情况适用于用户希望对 输入做fj3立即响应的系统 通过RTOS,开发人员能够 保证南用户的操作总能得到及时的响应.除非一个更 重要的操作f例如一项有助于保障用户安全的操作1必 须首先执行 2抢占式调度 在RTOS中.线程按照其优先级顺序执行 如果 一个高优先级的线程准备运行时.它将在一个短的、 有限时间间隔内从任何可能正在运行的低优先级进 程接管CPU .另外.高优先级的线程能够不被中断地 运行.直到它已经完成了需要做的事情.当然是在不 被更高优先级进程抢占的前提下 这种方法就是抢占 式调度.保证了高优先级线程始终满足其最终期限. 而不管有多少其他线程正在竞争CPU时间 抢占式调度仅在高优先级的线程在一个短的、有 限时间段内抢占低优先级线程的情况下有效 否则. 系统将不可能预测要花费多长时间来执行一个给定 的操作。可以将线程看作是最小的“执行单元”.而将 进程看作是一个或多个线程的“容器”.进程定义了线 程将要在其中执行的地址空间 显然.最坏情形的前 后关系切换时间将比最坏情形的线程切换时间要慢. 尽管在一个好的RTOS设计中差别可能是微不足道 的 将所有的线程放在几个大的进程中将是错误的. 因为线程提供的切换速度更快 虽然线程能实现并行 处理优势因而适合于某些设计.但将一个应用分成多 个内存保护的进程使得代码更容易调试.提供了更好 的错误隔离和恢复能力.并允许系统进行新功能的动 态升级。 3可抢占的内核 在RTOS中.内核操作是可抢占的 尽管仍然会存 在一些时间窗口.在这些时间窗口中可能没有抢占. 但是这些时间间隔应该是相当短暂的.通常在几百纳 秒 另外.必须有一个关于抢占被推迟或中断被禁止 的时间上限.这样开发者可以确定最坏情形下的等待 时间 为了实现这个目标.操作系统内核必须尽可能 简洁.只有具有较短执行路径的服务才被包含在内核 中.任何需要大量工作f例如进程加载1的操作必须被 安排到外部进程或线程 这种方法有助于通过内核确 保最长的不可抢占代码路径具有一个时间上限
第2期 2010年4月 微处理机 MICR0PR0CESS0RS NO.2 Apr.,2010
基于嵌入式Nucleus系统的多进程实现方案
刘洲洲
(西安航空技术高等专科学校电气工程系,西安710077)
摘要:Nucleus是一种实时的嵌入式操作系统。深入全面地探讨了Nucleus中多进程控制的
实现方法。首先,对Nucleus的内核进行了概述;其次,阐述了Nucleus的多进程解决方法;最后,给 出了Nucleus的解决后的线程和进程处理接口函数。 关键词:嵌入式操作系统;多进程;接口函数
DOI编码:10.3969/j.issn.1002—2279.2010.02.025 中图分类号:TP311.5 文献标识码:A 文章编号:1002—2279(2010)02—0085—02
The I mplementation Method of Process ControIin the Embedded
Real——timeOperating System Nucleus
LIU Zhou—zhou (xi’an aero technical collge,Xi’a12 710077,China)
Abstract:Nucleus is a kind of real—time embedded operating system.Nucleus—depth and compre-
hensive exploration of the multiple process control are implemented.First,the kernel provides an overview of Nucleus;Secondly,described Nucleus of the multi—process solutions;Finally,a solution of Nucleus of threads and processes to deal with post—interface functions.
Windows CE 嵌入式系统
Windows CE是Microsoft公司的嵌入式操作系统产品。它是一个紧凑、高效和可扩展的操作系统,具有多线程、多任务、确定性的实时和完全抢先式优先级的操作系统环境,适合于只有有限硬件资源的硬件系统。操作系统的定制采用模块化设计方式,便于用户的使用。支持Win32 API和MFC,具有Windows程序设计经验的用户可迅速掌握其编程方法。
第一章 绪论
BSP
BSP是介于主板硬件和操作系统之间的一层,也可以说是操作系统的一部分,主要目的是为了支持操作系统,使之能够正常地在主板上运行.
“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素。
一般情况下,嵌入式操作系统可分为两类:一类是面向控制和通信等领域的实时操作系统,如WinRiver公司的VxWorks、ISI公司的pSOS、QNX公司的QNX和ATI的Nucleus等.另一类是面向消费电子产品的非实时操作系统,
Windows CE是一个实时操作系统.实时支持功能在以下几个方面提升了Windows CE的性能.
(1)支持嵌套中断
(2)允许更高优先级别的中断首先得到响应,而不是等待低级别的中断服务线程(IST)
(3)更好的线程响应能力
(4)对高级别中断服务线程的响应时间上限的要求更加严格,在线程响应能力方面的改进,可帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助开发人员创建更好的嵌入式应用程序.
(5)更多的优先级别,256个优先级别可使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性.
(6)更强的控制能力,对系统内的线程数量的控制能力可使开发人员更好地掌握调度程序的工作情况.
5 丰富的多媒体和多语言支持
第二章 Windows CE的体系结构和功能
2.1 Windows CE的层次结构
2.2 进程、线程与调度
2.3 内存管理
2007年第2期 福建电脑 39 关于嵌入式实时操作系统内核的研究 陈颖。罗克露 (电子科技大学计算机科学与工程学院m)Jl成都610054) 【摘要】:本文首先阐述嵌入式和RTOS系统的基本概念。进而以x86作为硬件体系平台来描述一个嵌入式RTOS的 内核的主要内容以及实现的方法,包括任务的实现,调度等,并研究了VXWORKS系统的任务的实现和调度。 【关键词】:嵌入式系统RTOS多任务线程调度 1.引言 嵌入式时实操作系统目前应用的范围越来越广.逐渐成为 今后操作系统开发和发展的主要方向。其应用领域大到工业控 制,小到个人消费用品如数码相机,手机,PDA等无处不在。通信 系统也大量的使用嵌入式实时操作系统作为操作系统平台.本 文对RTOS的内核进行研究.并深入的研究了内核对任务的管 理。 2.嵌入式和实时系统介绍 嵌入式系统在我们的生活中已经无处不在.如火星探测器. 汽车上的电动装置,可视电话,PDA,嵌入式网络交换系统等等。 嵌入式系统在我们的生活中发挥着巨大的作用.嵌入式系统是 为实现特定功能。并且软硬件紧密结合在一起的计算机系统 实时嵌入式系统是嵌入式系统的一种.它能够对外部事件 给予及时响应。对外部事件的响应有三个步骤:对外部事件的识 别,必要的处理。以及结果的输出。实时系统又分为硬实时和软 实时两种。在软实时系统中.系统的宗旨是使各个任务运行得越 快越好,对响应时间的介定有一定的灵活性:在硬实时系统中. 各任务不仅要执行无误而且要做到准时.一旦不能在确定的时 间内完成。有可能导致灾难性后果。实时操作系统(RTOS)以及时 的方式进行任务调度、系统资源的管理以及为应用开发提供一 个稳固的平台。RTOS可以是一个小而简单的系统,也可以是一 个大而全的系统.具体要视实际应用而定.目前流行的许多 RTOS都是用户可裁剪定制的,如vxworks和pSOS等 3.嵌入式时实操作系统内核的组成与实现 组成RTOS的几个基本要素是:kernel和BSP。BSP(Board Support Packet)包含设备驱动程序(Device Driver)、启动代码、 OS装载程序 配置文件等与特定板相关的文件和代码。它的功 能就是为一个板提供初始化功能.引导操作系统和为操作系统 提供访问硬件的接口,是硬件和软件的桥梁。Kereel则是操作系 统的关键,其主要功能是:任务调度(schedule),目标对象管理和 提供服务 f11任务调度 决定何时,哪个任务应该运行。 f21目标对象管理 管理kernel内部目标。如task. semaphore,message queue等。 f31提供服务 kernel提供的一些服务,如时钟,中断和 异常处理。资源管理等。 3.1调度及调度策略 目前操作系统主流都是多任务系统. 务调度以及调度策略是非常关键的技术. 调度的方法性能和系统的整体性能。 [二 ] 匪三 ; 三=] 图1 RTOS组成 而在多任务系统中任 决定了操作系统任务 为了实时性的要求,RTOS中任务的调度应该是抢占式的. 而不是时间片分时方式.当然也可以采取基于抢占的时间片分 时方式。任务依照优先级进行排序。高优先级的任务可以抢占低 优先级的任务,占用系统资源。同优先级的任务则采用先到先执 行的策略。任务的优先级是固定.而不象UNIX等系统周期的改 变进程优先级。以公平服务的原则。中断不是任务.它的优先级 高于所有任务。也就是说当中断发生时.RToS必须立即处理中 断。保证对外部事件的实时响应。 Kemel本身可以被设计成一个任务或进程.但如果想提高 kernel的实时性。kernel应该被设计成非进程或任务的kereel, 运行在特权级下,可独立存在的代码。 3.2任务 任务是独立的调度单元.是独立执行的线程。对于实时性要 求高的应用.采用任务调度.而对于实时性要求不高的应用则依 然使用分时非抢占进程调度。 任务描述: 任务的名称,任务当前状态,任务优先级,阻塞任务的事件。 任务堆栈的大小等通过一个结构:任务控制块(TCB)或任务描述 符来描述,保存在内核内存空间,在创建任务时分配。 任务控制块主要描述的任务信息有: (1)任务名和标识:每一个任务都由string nallle和一个唯 一的ID来标识.任务名和标识符用来检索一个任务控制块 查 找TCB的方法有很多。比如顺序查找.但如果任务数增多会导致 查找缓慢:还有就是利用散列表查找.用空间换时间的方法加快 查找速度:用任务描述符的指针值作为标识符.直接通过标识符 得到任务描述符,此方法最为简便高效,vxworks就使用这种方 法。 (2)任务优先级:任务描述符中记录任务当前优先级以及 优先级反转情况 (3)阻塞事件:记录任务所发生的所有导致阻塞的事件。 (4)任务状态:描述了任务当前所处的状态。基本的几个状 态有:ready,running。block和delay. (5)任务剩余时间片:尽管RTOS中不采用时间片方式进 行调度.但是时间片仍然一个重要参数。例如,任务进入等待状 态,等待多少时间片后需要被激活,剩余的时间需要被记录。 (6)任务人口地址:任务的人口地址实际上指向一个函数 的地址.这个函数的主体是由用户或应用程序在创建任务时提 供的。但仅仅这个函数是不够。在创建任务时系统可能会根据要 求在函数的头或尾添加一些代码以完成一些特殊功能.例如可 以在末尾加入exit0函数.以便主体函数结束后能够自动运行 e)【it0代码,完成任务和任务控制块的删除等工作。 (7)任务栈:任务栈是任务运行的内存空间,同时也是任务 上下文的一部分,任务描述符中有任务栈地址和大小的描述 (8)上下文:其包括两部分,一部分是软件的,如任务当前状 态,任务栈当前指针等等,另一部分是硬件上下文,主要是CPU 寄存器的内容。以x86的LA32结构为例.在进行上下文的切换 时,以下l6个寄存器的值需要保存或恢复。 通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP。这 8个寄存器是用来存储操作数和指针的 其中ESP按惯例是用 来保存堆栈指针,不做他用。 段寄存器:CS,DS,SS,ES, ,GS。这6个寄存器用来保存 6个段选择器。 程序状态和控制寄存器:EFLAGS包含了一组状态标志,