版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1嵌入式系统设计与实例开发嵌入式系统设计与实例开发ARMARM与与 C/OS-C/OS-第二讲第二讲 嵌入式系统的基本概念嵌入式系统的基本概念21、什么是嵌入式系统、什么是嵌入式系统2、硬件基础、硬件基础3、嵌入式操作系统、嵌入式操作系统嵌入式系统的基本概念嵌入式系统的基本概念3IEEEIEEE定义定义根据根据IEEE(国际电气和电子工程师协会)的定义:(国际电气和电子工程师协会)的定义:嵌入式系统是嵌入式系统是“用于控制、监视或者辅助操作用于控制、监视或者辅助操作机器和设备的装置机器和设备的装置”(原文为(原文为devices used to control, monitor, or ass
2、ist the operation of equipment, machinery or plants)。)。可以看出此定义是从应用上考虑的,嵌入式系可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属统是软件和硬件的综合体,还可以涵盖机电等附属装置。装置。 4嵌入式系统的几个重要特征嵌入式系统的几个重要特征(1)系统内核小)系统内核小由于嵌入式系统一般是应用于小型电子装置的,由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小系统资源相对有限,所以内核较之传统的操作系统要小得多。得多。比如比如ENEA公司的公司的OSE分布
3、式系统,内核只有分布式系统,内核只有5K,而,而Windows的内核则要大得多。的内核则要大得多。5()专用性强()专用性强嵌入式系统的个性化很强,其中的软件系统和硬件嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用改,程序
4、的编译下载要和系统相结合,这种修改和通用软件的软件的“升级升级”是完全不同的概念。是完全不同的概念。 6()系统精简()系统精简嵌入式系统一般没有系统软件和应用软件的明显嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。方面利于控制系统成本,同时也利于实现系统安全。()高实时性()高实时性OS这是这是嵌入式软件的基本要求,而且软件要求固态嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性存储,以提高速度。软件代码要求高质量和高可靠性
5、、实时性。、实时性。 7(5)嵌入式软件开发走向标准化)嵌入式软件开发走向标准化嵌入式系统的应用程序可以没有操作系统直接在嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。芯片上运行。为了合理地调度多任务、利用系统资源、系统函为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配数以及和专家库函数接口,用户必须自行选配RTOS(RealTime Operating System)开发平台,这样才)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。,保障软件质量。8(6)嵌入式系统开发需要开
6、发工具和环境)嵌入式系统开发需要开发工具和环境由于其本身不具备自主开发能力,即使设计完成以后,用户通由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。境才能进行开发。这些工具和环境一般是基于通用计算机上的软硬件设备以及各这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行
7、机,开发时需要交替结合进行。标机作为最后的执行机,开发时需要交替结合进行。 9 嵌入式系统与嵌入式系统与PC之间的区别之间的区别嵌入式系统一般是专用系统,而嵌入式系统一般是专用系统,而PC是通用计算平台是通用计算平台嵌入式系统的资源比嵌入式系统的资源比PC少得多少得多嵌入式系统软件故障带来的后果比嵌入式系统软件故障带来的后果比PC机大得多机大得多嵌入式系统一般采用实时操作系统嵌入式系统一般采用实时操作系统嵌入式系统大都有成本、功耗的要求嵌入式系统大都有成本、功耗的要求嵌入式系统得到多种微处理体系的支持嵌入式系统得到多种微处理体系的支持嵌入式系统需要专用的开发工具嵌入式系统需要专用的开发工具10
8、典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashRAMROMUSBLCDKeyboard外围电路外围电路Other外设外设11典型嵌入式系统基本组成软件典型嵌入式系统基本组成软件处理器处理器存储器存储器输入输入输出输出操作系统操作系统应用程序应用程序软件软件结构结构硬件硬件结构结构12嵌入式处理器嵌入式处理器 嵌入式处理器是嵌入式系统的核心,是控制、辅助嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。系统运行的硬件单元。 位、位、 位单片机,位单片机,16位、位、 32位位、64位嵌入式位嵌入式CPU。实时操作
9、系统实时操作系统 实时操作系统是嵌入式系统目前最主要的组成部分实时操作系统是嵌入式系统目前最主要的组成部分。实时性需要调度一切可利用的资源完成实时控制任务。实时性需要调度一切可利用的资源完成实时控制任务,着眼于提高计算机系统的使用效率,满足对时间的限,着眼于提高计算机系统的使用效率,满足对时间的限制和要求。制和要求。13 系统响应时间(系统响应时间(System response timeSystem response time):):系统发出处理要求,到系统给出应答信号的时间。系统发出处理要求,到系统给出应答信号的时间。 任务切换时间(任务切换时间(Context-switching tim
10、eContext-switching time):):任务之间切换而使用的时间。任务之间切换而使用的时间。 中断延迟(中断延迟(Interrupt latencyInterrupt latency):):计算机接收到中断信号到操作系统作出响应,并完成切换转入中计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。断服务程序的时间。14冯冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构CISC与与RICS影响影响CPU性能的因素性能的因素存储器系统存储器系统I/O接口接口二、硬件基础二、硬件基础15冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控
11、制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4数据数据数据数据0数据数据1数据数据216指令的执行周期指令的执行周期T1)取指令()取指令(Instruction Fetch):TF2)指令译码()指令译码(Instruction Decode):):TD3)执行指令()执行指令(Instruction Execute):):TE4)存储()存储(Storage):):TS每条指令的执行周期:每条指令的执行周期:T= TF+TD+TE+TS17冯冯诺依曼体系的特点诺依曼体系的特点1)数据与指令都存储在存储器中)数据
12、与指令都存储在存储器中2)被大多数计算机所采用)被大多数计算机所采用3)ARM7冯诺依曼体系冯诺依曼体系在冯在冯诺依曼体系结构中,数据和程序存储器是共享诺依曼体系结构中,数据和程序存储器是共享数据总线的。数据总线共享有很多优点,比如减小总数据总线的。数据总线共享有很多优点,比如减小总线的开销。另外一个优点在于能够把线的开销。另外一个优点在于能够把RAM映射到程序映射到程序空间,这样设备也能访问空间,这样设备也能访问EEPROM中的内存。中的内存。18哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令
13、1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据19哈佛体系结构的特点哈佛体系结构的特点1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的数存储器带宽)提供了较大的数存储器带宽3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构5)ARM9是哈佛结构是哈佛结构20 对于哈佛体系结构的计算机,程序和数据总线是分开的对于哈佛体系结构的计算机,程序和数据总线是分开的。这种方式的优势在于能够在一个时钟周期内同时读取程序。这种方式的优势在于能够在一个时钟周期内同时读取程序和数据,这样就相应地减少了
14、执行每一条指令所需的时钟周和数据,这样就相应地减少了执行每一条指令所需的时钟周期。早期的哈佛架构的计算机是不能把查找表储存在程序存期。早期的哈佛架构的计算机是不能把查找表储存在程序存储器中的,而这个问题在现在的大多数设备中已经解决了。储器中的,而这个问题在现在的大多数设备中已经解决了。哈佛体系结构计算机中存在的另外一个问题就是,如果哈佛体系结构计算机中存在的另外一个问题就是,如果要和外部的程序和数据存储器进行交互,对于两部分存储器要和外部的程序和数据存储器进行交互,对于两部分存储器来说,由于地址总线和数据总线的相互独立性,就需要额外来说,由于地址总线和数据总线的相互独立性,就需要额外增加大量的
15、芯片管脚。因此,只有当至少有一种存储器的类增加大量的芯片管脚。因此,只有当至少有一种存储器的类型是内部的情况下,微处理器才会采用哈佛体系结构。型是内部的情况下,微处理器才会采用哈佛体系结构。21CISC和和RISCRISC(精简指令集计算机精简指令集计算机)和和CISC(复杂指令集计算机复杂指令集计算机)是当前是当前CPU的两种架构。它们的区别在于不同的的两种架构。它们的区别在于不同的CPU设计理念和方法。设计理念和方法。CISC:复杂指令集(:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/2原则:原则:80%
16、的程序只使用的程序只使用20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。指令复杂化、编译复杂化,运行时间长,部件效率不高,不利指令复杂化、编译复杂化,运行时间长,部件效率不高,不利于并行处理和于并行处理和VLSI的实现的实现22CISC :复杂指令集(:复杂指令集(Complex Instruction Set Computer)早期的早期的CPU全部是全部是CISC架构,它的设计目的是要用最少的机架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。器语言指令来完成所需的计算任务。比如对于乘法运算,在比如对于乘法运算,在CISC架构的架
17、构的CPU上,您可能需要这样上,您可能需要这样一条指令:一条指令:MUL ADDRA, ADDRB就可以将就可以将ADDRA和和ADDRB中的数相乘并将结果储存在中的数相乘并将结果储存在ADDRA中。将中。将ADDRA, ADDRB中中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。中设计的逻辑来实现。这种架构会增加这种架构会增加CPU结构的复杂性和对结构的复杂性和对CPU工艺的要求,但对工艺的要求,但对于编译器的开发十分有利。于编译器的开发十分有利。比如上面的例子,比如上面的例子,C程序中的程序中的a*=b
18、就可以直接编译为一条乘法就可以直接编译为一条乘法指令。指令。今天只有今天只有Intel及其兼容及其兼容CPU还在使用还在使用CISC架构。架构。23RISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)RISC架构要求软件来指定各个操作步骤。如果要在架构要求软件来指定各个操作步骤。如果要在RISC架构上实现将架构上实现将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL
19、 A, B; STR ADDRA, A。这种架构可以降低。这种架构可以降低CPU的复杂性以及允许在同样的的复杂性以及允许在同样的工艺水平下生产出功能更强大的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要,但对于编译器的设计有更高的要求。求。 在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单将频率最高的操作作为指令系统的基本操作将频率最高的操作作为指令系统的基本操作 适于适于VLSI、并行处理的发展趋势、并行处理的发展趋势当然,当然,RISC也有它的缺点:代
20、码密度不高,可执行文件体积较大,也有它的缺点:代码密度不高,可执行文件体积较大,汇编代码可读性较差。代码密度不高是个值得关注的问题:若不使用汇编代码可读性较差。代码密度不高是个值得关注的问题:若不使用cache,会需要更大的指令存储空间,取指时也占用更大的存储器带宽。若采用会需要更大的指令存储空间,取指时也占用更大的存储器带宽。若采用cache,又会降低,又会降低cache的命中率。的命中率。 24CISC与与RISC的数据通道的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道25关于周期的概念关于周期的概念执行一条指令所需要的时间称为指令周期
21、执行一条指令所需要的时间称为指令周期,指令周期常常用指令周期常常用若干个时钟周期来表示。若干个时钟周期来表示。l 时钟脉冲的重复周期称为时钟周期,时钟周期是时钟脉冲的重复周期称为时钟周期,时钟周期是CPU的的基本时间计量单位,它由计算机主频决定。基本时间计量单位,它由计算机主频决定。l 一个一个CPU同外部设备和内存储器之间进行信息交换过程同外部设备和内存储器之间进行信息交换过程所需要的时间称为总线周期。所需要的时间称为总线周期。26影响影响CPU性能的因素:流水线、超标量和缓存性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行 提高了提高了CPU
22、的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp27超标量执行超标量执行超标量执行:超标量超标量执行:超标量CPU采用多条流水线结构采用多条流水线结构 执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据28高速缓存(高速缓存(CACHE)1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。内存的平均性能。2、高速缓存的工作原理、高速缓存的工作原
23、理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。拷贝。 CPU高速缓存控制器CACHE主存数据数据地址29总线和总线桥总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线30存储器系统存储器系统RAM:随机存取存储器,:随机存取存储器, SRAM:静态随机存储器,:静态随机存储器, DRAM:动态随机存储器:动态随机存储器 1)SRAM比比DRAM快快 2)SRAM比比DRAM耗电多耗电多 3)DRAM存储密度比存储密度比SRAM高得多高得多 4)DRM需要周期性刷新需要周期性刷新ROM:只读存储器:只读存
24、储器FLASH:闪存:闪存31输入输出接口输入输出接口1)I/O2)A/D、D/A3)键盘)键盘4)LCD5)存储器接口)存储器接口6)设备接口)设备接口32三、嵌入式操作系统三、嵌入式操作系统操作系统的分类操作系统的分类嵌入式实时操作系统嵌入式实时操作系统多任务,任务优先级,调度多任务,任务优先级,调度前台与后台前台与后台实时操作系统实时操作系统中的重要概念中的重要概念33操作系统的分类操作系统的分类(1)顺序执行系统:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPU的运的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序行时间,按语句顺序执行该程序,直至执行完
25、毕,另一程序才能启动运行。如才能启动运行。如DOS操作系统。操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的的时间分按顺序分成若干片,每个时间片内执行不同的程序。如程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有同的优先级,只有最高优先级的任务才能占有CPU的控制权的控制权。34 具有强实时特点的嵌入式操作系统具有强实时特点的嵌入式操作系统 具有弱实特点的嵌入式操作系统
26、具有弱实特点的嵌入式操作系统 没有实时特点的嵌入式操作系统没有实时特点的嵌入式操作系统按实时性分类按实时性分类351.强实时系统,其系统响应时间在毫秒或微秒级(强实时系统,其系统响应时间在毫秒或微秒级(数控机床);数控机床);2.一航实时系统,其系统响应时间在毫秒几秒的一航实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。子菜谱的查询)。3.弱实时系统,其系统响应时间约为数十秒或更长弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。(工程机械)。36(1).循环轮询系统:(循环轮询系统:(P
27、olling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。一个输入条件,一旦条件成立就进行相应的处理。Initialize()While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n();按软件结构分类按软件结构分类37(2).事件驱动系统:(事件驱动系统:(Event-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括事件驱动系统是能
28、对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。要形式。应用程序是一个无限的循环,循环中调用相应的函数完应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(成相应的操作,这部分可以看成后台行为(background)。)。中断服务程序处理异步事件,这部分可以看成前台行为(中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,
29、例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。理器处在停机状态,所有的事都靠中断服务来完成。38前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台后台 前台前台ISR时间时间39嵌入式实时操作系统嵌入式实时操作系统实时操作系统的特点:实时操作系统的特点:1、多任务、多任务CPU寄存器寄存器任务任务控制控制块块1任务任务控制控制块块2任务任务控制控制块块n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任
30、务任务1任务任务2任务任务nCPU寄存器寄存器40一个任务,也称作一个线程,是一个简单的运行一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,赋予一定的优先级, 有它自己的一套有它自己的一套CPU寄存器和自寄存器和自己的栈空间。己的栈空间。多任务运行的实现实际上是靠多任务运行的实现实际上是靠CPU(中央处理单(中央处理单元)在许多任务之间转换、调度。元)在许多任务之间转换、调度。 CPU只有一个,轮番服务于一系列任务中的某一只有一个,轮番服务于一系列任务中的某一个。多任务运行使个。多任务运
31、行使CPU的利用率得到最大的发挥,并使的利用率得到最大的发挥,并使应用程序模块化。应用程序模块化。在实际应用中,多任务的最大特点是,开发人员在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、位可以将很复杂的应用程序层次化综合实验(时钟、位图、图、USB、KEY)。)。41任务任务实时任务实时任务非实时任务非实时任务事件驱动事件驱动时间驱动时间驱动内部事件:运算结果、设备请求等内部事件:运算结果、设备请求等外部事件:开关量输入等外部事件:开关量输入等绝对时间驱动绝对时间驱动相对时间驱动相对时间驱动2、任务的事件驱动、任务的事件驱动423、中断与中断优先级、中断
32、与中断优先级CPU中断控制器1中断控制器2外部事件434、同步与异步、同步与异步 一系列时间相关事件称为同步事件,驱动的任一系列时间相关事件称为同步事件,驱动的任务为同步任务务为同步任务 随机发生的事件称为异步事件,驱动的任务为随机发生的事件称为异步事件,驱动的任务为异步任务,如中断异步任务,如中断445、资源与临界资源、资源与临界资源 程序进行时可使用的软硬件环境称为资源,程序进行时可使用的软硬件环境称为资源,2个以上任务可同个以上任务可同时访问的共享资源称为临界资源。时访问的共享资源称为临界资源。 任何任务所占用的实体都可称为资源。资源可以是输入输出设备任何任务所占用的实体都可称为资源。资
33、源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量、一个结,例如打印机、键盘、显示器,资源也可以是一个变量、一个结构或一个数组等。构或一个数组等。任务1共享内存任务2任务N45嵌入式操作系统的几个主要概念嵌入式操作系统的几个主要概念任务 Task调度 Scheduler 优先级 Priority 代码临界区 Critical Section可预测性 predictability上下文切换 Context Switch 46任务 Task指拥有所有指拥有所有CPU资源的简单程序。资源的简单程序。在进行实时应用设计时通常要把工作分割成多在进行实时应用设计时通常要把工作分割成多个任
34、务,每个任务处理一部分问题,并被赋予个任务,每个任务处理一部分问题,并被赋予一定的优先级、一套自己的一定的优先级、一套自己的CPU寄存器及堆栈寄存器及堆栈。 实时系统中的大部分任务是周期的,体现在编实时系统中的大部分任务是周期的,体现在编程上每个任务则是一个典型的无限循环。程上每个任务则是一个典型的无限循环。 任务的状态:睡眠、任务的状态:睡眠、就绪、运行、延迟、等待就绪、运行、延迟、等待 47任务:任务:example手持数据采集终端的打印手持数据采集终端的打印creatTASK(myprintf, priority) void myprintf( ) for (;) 等待接收队列信息;等待
35、接收队列信息; 往打印机发送打印信息;往打印机发送打印信息; 48内核内核(kernel)多任务系统的一部分,负责管理任务。多任务系统的一部分,负责管理任务。占先式占先式(preemptive)与非占先式与非占先式微内核微内核(Micro kernel)与单内核与单内核(monolithic kernel)49非占先式与占先式非占先式与占先式非占先式(非占先式(non-preemptive)非占先式调度法也称作合作型多任务(非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级
36、的任务由挂起状态变为就绪中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才的使用权时,那个高优先级的任务才能获得能获得CPU的使用权。的使用权。非占先式内核的一个特点是几乎不需要使用信号量保护共非占先式内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。,而不必担心被别的任务抢占。非占先式内核的最大缺陷在于其响应高优先级的任务慢,非占先
37、式内核的最大缺陷在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放前运行着的任务释放CPU。内核的任务级响应时间是不确定的,。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全的控制权,完全取决于应用程序什么时候释放取决于应用程序什么时候释放CPU。50非占先式非占先式(Non-Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使中
38、断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME51占先式(占先式(preemptive)当系统响应时间很重要时,要使用占先式(当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总)内核。最高优先级的任务一旦就绪,总能得到能得到CPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的进入了就绪态,当前任务的CPU使用权就被剥夺了,使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了或者说被挂起了,那个高优先级的任
39、务立刻得到了CPU的控制权。的控制权。使用占先式内核时,应用程序不应直接使用不可使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的重入型函数。如果调入可重入型函数时,低优先级的任务任务CPU的使用权被高优先级任务剥夺,不可重入型的使用权被高优先级任务剥夺,不可重入型函数中的数据有可能被破坏。函数中的数据有可能被破坏。52占先式占先式(Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TI
40、ME53可以被一个以上的任务调用,而不必担心数据的破坏。可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在局部变量,即变量保存在CPU寄存器中或堆栈中。寄存器中或堆栈中。一个不可重入型函数的例子一个不可重入型函数的例子int Temp;Void swap (int *x,int*y)Temp=*x;*X=*Y;*y=Temp;可重入型函数可重入型函数54一个可重入型函数的例子一
41、个可重入型函数的例子Void swap (int *x,int*y)int Temp;Temp=*x;*X=*Y;*y=Temp;55调度调度 Scheduler 内核的主要职责之一,决定任务运行的次序。内核的主要职责之一,决定任务运行的次序。 基本的调度算法有先来先服务基本的调度算法有先来先服务FCFS,最短周期优先最短周期优先SBF,优先级法优先级法(Priority),轮转法,轮转法(Round-Robin),多级队,多级队列法列法(multi-level queues),多级反馈队列,多级反馈队列(multi-level feedback queues)等。等。 调度的基本方式有可占先
42、式和非占先式。调度的基本方式有可占先式和非占先式。 多数实时内核是基于优先级调度的多种方法的复合。多数实时内核是基于优先级调度的多种方法的复合。56优先级(优先级(Priority) 每个任务按其重要性被赋予一定的优先级。每个任务按其重要性被赋予一定的优先级。 静态优先级与动态优先级。静态优先级与动态优先级。 基于优先级的系统会出现优先级倒置的问题,基于优先级的系统会出现优先级倒置的问题,一个好的实时内核应该提供解决倒置的方法。一个好的实时内核应该提供解决倒置的方法。 已开发出多种算法用于实时任务的优先级分配已开发出多种算法用于实时任务的优先级分配,基本的有单调执行率调度法,基本的有单调执行率调度法RMS和最早期和最早期限优先法限优先法EDF等。等。57 代码临界区代码临界区(Critical Section) 指一段不可分割的代码,一旦执行,不能被指一段不可分割的代码,一旦执行,不能被中断。中断。 实现代码临界区的方法有:一是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园食堂饮品销售方案
- 中国低空经济政策环境与监管趋势分析
- 低空经济的智能化发展与技术突破
- 二年级道德与法治下册 第二单元 我们好好玩 第6课《传统游戏我会玩》教案2 新人教版
- 城市更新多元化路径实施策略与模型解析
- 机械ug课程设计
- 机械 专业课程设计
- 机床主轴传动课程设计
- 机场贵宾接待课程设计
- 机器视觉检测课程设计
- 上海市普陀区2024-2025学年六年级(五四学制)上学期期中语文试题
- 24秋国家开放大学《当代中国政治制度》形考任务1-4参考答案
- 小学学校信息化管理章程
- 封条模板A4直接打印版
- 工程地质学—地貌
- 应聘登记表(CMHR
- 《海报设计》PPT课件(完整版)
- 制浆洗漂详细过程工艺
- 吉林省义务教育阶段新课程计划表(新)
- 大学的学习方法PowerPoint 演示文稿
- 混凝土拦挡坝的施工方案
评论
0/150
提交评论