1、嵌入式系统学习课件嵌入式系统学习课件2本节提要本节提要嵌入式系统硬件根底嵌入式系统硬件根底嵌入式系统软件根底嵌入式系统软件根底嵌入式操作系统嵌入式操作系统嵌入式系统设计方法嵌入式系统设计方法2.1.1 嵌入式系统硬件根本概念嵌入式系统硬件根本概念典型嵌入式系统根本组成硬件典型嵌入式系统根本组成硬件嵌入式系统的硬件是以嵌入式微处理器为核嵌入式系统的硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、心,主要由嵌入式微处理器、总线、存储器、输入输入/输出接口等设备组成。输出接口等设备组成。总线总线总线的概念总线的概念 所谓总线所谓总线Bus,一般指通过分时复用的方式,将信息以,一般指
2、通过分时复用的方式,将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。是一个或多个源部件传送到一个或多个目的部件的一组传输线。是电脑中传输数据的公共通道。电脑中传输数据的公共通道。CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线总线总线总线总线l嵌入式系统的总线一般集成在嵌入式微处理器嵌入式系统的总线一般集成在嵌入式微处理器中。中。l从微处理器的角度来看,总线可分为片外总线从微处理器的角度来看,总线可分为片外总线(如:如:PCI、ISA等等)和片内总线如:和片内总线如:AMBA、AVALON、OCP、WISHBONE等。等。l选择总线和选择嵌入式微处理器亲密相关,总选择总
3、线和选择嵌入式微处理器亲密相关,总线的种类随不同的微处理器的构造而不同。线的种类随不同的微处理器的构造而不同。嵌入式微处理器嵌入式微处理器l每个嵌入式系统至少包含一个嵌入式微处理器每个嵌入式系统至少包含一个嵌入式微处理器 l嵌入式微处理器体系构造可采用冯嵌入式微处理器体系构造可采用冯诺依曼诺依曼Von Neumann构造或哈佛构造或哈佛Harvard地址地址数据数据主存储器主存储器MOV r8,#8MOV r8,#8CPUCPUPCPC指令指令程序存储器程序存储器CPUCPUPCPC地址地址数据存储器数据存储器MOV r8,#8MOV r8,#8地址地址数据数据冯冯诺依曼构造诺依曼构造哈佛构造
4、哈佛构造l传统的微处理器采用的冯传统的微处理器采用的冯诺依曼构造将指令诺依曼构造将指令和数据存放在同一存储空间中,统一编址,和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。指令和数据通过同一总线访问。l哈佛构造那么是不同于冯哈佛构造那么是不同于冯诺依曼构造的一种诺依曼构造的一种并行体系构造,其主要特点是程序和数据存并行体系构造,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数储在不同的存储空间中,即程序存储器和数据存储器是两个互相独立的存储器,每个存据存储器是两个互相独立的存储器,每个存储器独立编制、独立访问。与之相对应的是储器独立编制、独立访问。与之相对应的是
5、系统中设置的两条总线程序总线和数据总系统中设置的两条总线程序总线和数据总线,从而使数据的吞吐率进步了一倍。线,从而使数据的吞吐率进步了一倍。微处理器的指令系统:微处理器的指令系统:CISC和和RISCCISCCISC:复杂指令集:复杂指令集Complex Instruction Set ComputerComplex Instruction Set Computer具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原那么:原那么:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就可以运行。大多数程序只使用少量的指令就可以运行。RISCRISC:精
6、简指令集:精简指令集Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件构造设计变得更为简单硬件构造设计变得更为简单 CISC的主要缺点的主要缺点l指令使用频度不平衡。指令使用频度不平衡。l高频度使用的指令占据了绝大部分的执行时间,扩大的复杂高频度使用的指令占据了绝大部分的执行时间,扩大的复杂指令往往是低频度指令。指令往往是低频度指令。l大量复杂指令的控制逻辑不规整,不适于大量复杂指令
7、的控制逻辑不规整,不适于VLSIVLSI工艺工艺lVLSIVLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实现的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度进,而不希望用微程序,因为微程序的使用反而制约了速度进步。步。(微码的存控速度比微码的存控速度比CPUCPU慢慢5-105-10倍倍)。l软硬功能分配软硬功能分配l复杂指令增加硬件的复杂度,使指令执行周期大大加长,直复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,降低了接访存次数增多,降低了CPUCPU性能。性能。l不利于先进指令级并行技术的采用不利于先进指令级并行
8、技术的采用l流水线技术流水线技术RISC根本设计思想根本设计思想l减小减小CPI(Clock cycles Per Instruction):CPI(Clock cycles Per Instruction):CPUtime=Instr_Count CPUtime=Instr_Count*CPI CPI*Clock_cycle Clock_cyclel精简指令集:保存最根本的精简指令集:保存最根本的,去掉复杂、使用频度不高去掉复杂、使用频度不高的指令的指令l采用采用Load/StoreLoad/Store构造,有助于减少指令格式,统一存构造,有助于减少指令格式,统一存储器访问方式储器访问方式l
9、采用硬接线控制代替微程序控制采用硬接线控制代替微程序控制CISC与与RISC的比照的比照类别类别CISCCISCRISCRISC指令系统指令系统指令数量很多指令数量很多较少,通常少于较少,通常少于100100执行时间执行时间有些指令执行时间很长,如有些指令执行时间很长,如整块的存储器内容拷贝;或整块的存储器内容拷贝;或将多个寄存器的内容拷贝到将多个寄存器的内容拷贝到存贮器存贮器没有较长执行时间的指令没有较长执行时间的指令编码长度编码长度编码长度可变,编码长度可变,1-151-15字节字节编码长度固定,通常为编码长度固定,通常为4 4个字节个字节寻址方式寻址方式寻址方式多样寻址方式多样简单寻址简
10、单寻址操作操作可以对存储器和寄存器进行可以对存储器和寄存器进行算术和逻辑操作算术和逻辑操作只能对寄存器对行算术和逻辑只能对寄存器对行算术和逻辑操作,操作,Load/StoreLoad/Store体系结构体系结构编译编译难以用优化编译器生成高效难以用优化编译器生成高效的目标代码程序的目标代码程序 采用优化编译技术,生成高效采用优化编译技术,生成高效的目标代码程序的目标代码程序 知识产权核知识产权核(IP核核,intellectual property)IPIP核是指具有知识产权的、功能详细、接口标准、可在多个集成电核是指具有知识产权的、功能详细、接口标准、可在多个集成电路设计中重复使用的功能模块
11、,是实现系统芯片路设计中重复使用的功能模块,是实现系统芯片SOCSOC的根本构的根本构件。件。IPIP复用意味着设计代价降低时间,价格复用意味着设计代价降低时间,价格 IPIP核的类别核的类别:微处理器微处理器微处理器微处理器:ARM,PowerPC;:ARM,PowerPC;存储器存储器存储器存储器:RAM,memory controller;:RAM,memory controller;外设外设:PCI,DMA controller;:PCI,DMA controller;多媒体处理多媒体处理:MPEG/JPEG;:MPEG/JPEG;encoder/decoder;encoder/dec
12、oder;数字信号处理器数字信号处理器(DSP)(DSP)通信通信:Ethernet controller,router,:Ethernet controller,router,IPIP核的种类核的种类lSoft Cores(“codeSoft Cores(“code)软核软核lHDLHDL语言描绘语言描绘l灵敏度高,可修改灵敏度高,可修改l与工艺独立,可根据详细的加工工艺重新综合;与工艺独立,可根据详细的加工工艺重新综合;lIPIP很难保护很难保护lFirm cores(“code+structureFirm cores(“code+structure)()(固核固核l逻辑综合后的描绘逻辑综
13、合后的描绘l与工艺相关与工艺相关lHard cores(“physicalHard cores(“physical)()(硬核硬核l物理综合后的描绘物理综合后的描绘l准备流片准备流片l包含工艺相关的布局和时序信息包含工艺相关的布局和时序信息lIPIP很容易保护很容易保护l多数的处理器和存储器多数的处理器和存储器存储器存储器l嵌入式系统的存储器包括嵌入式系统的存储器包括主存主存和和外存外存。l大多数嵌入式系统的大多数嵌入式系统的代码和数据都存储在处理代码和数据都存储在处理器可直接访问的存储空间即主存中器可直接访问的存储空间即主存中。l系统上电后在主存中的代码直接运行。主存储系统上电后在主存中的代
14、码直接运行。主存储器的特点是速度快,一般采用器的特点是速度快,一般采用ROM、EPROM、Nor Flash、SRAM、DRAM等存储器件。等存储器件。存储器系统存储器系统RAMRAM:随机存取存储器,:随机存取存储器,SRAMSRAM:静态随机存储器,:静态随机存储器,DRAMDRAM:动态随机存储器动态随机存储器 1 1SRAMSRAM比比DRAMDRAM快快 2 2SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3DRAMDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4DRMDRM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器FLASHFLASH:
15、闪存:闪存存储器系统的层次构造存储器系统的层次构造存放器存放器高速缓存高速缓存SRAM主存储器主存储器DRAM本地存储器本地存储器 Flash、ROM、磁盘、磁盘网络存储器网络存储器 Flash、ROM、磁盘、磁盘时时钟钟周周期期011050100l目前有些嵌入式系统除了主存外,还有外存。目前有些嵌入式系统除了主存外,还有外存。外存是处理器不能直接访问的存储器,用来存外存是处理器不能直接访问的存储器,用来存放各种信息,相对主存而言具有价格低、容量放各种信息,相对主存而言具有价格低、容量大的特点。大的特点。l在嵌入式系统中一般不采用硬盘而采用电子盘在嵌入式系统中一般不采用硬盘而采用电子盘做外存,
16、电子盘的主要种类有做外存,电子盘的主要种类有DOCDisk On Chip、NandFlash、CompactFlash、SmartMedia、Memory Stick、MultiMediaCard、SDSecure Digital卡等卡等。输入输入/输出接口和设备输出接口和设备l嵌入式系统的大多数输入嵌入式系统的大多数输入/输出接口和部分设备输出接口和部分设备已经集成在嵌入式微处理器中。已经集成在嵌入式微处理器中。l输入输入/输出接口主要有中断控制器、输出接口主要有中断控制器、DMA、串行、串行和并行接口等,设备主要有定时器和并行接口等,设备主要有定时器Timers、计数器、计数器count
17、ers、看门狗、看门狗watchdog timers、RTC、UARTs、PWMPulse width modulator、AD/DA、显示器、键盘、显示器、键盘和网络等。和网络等。本节提要本节提要嵌入式系统硬件根底嵌入式系统硬件根底嵌入式系统软件根底嵌入式系统软件根底嵌入式操作系统嵌入式操作系统嵌入式系统设计方法嵌入式系统设计方法嵌入式软件体系构造嵌入式软件体系构造l无操作系统的情形无操作系统的情形l在嵌入式系统的开展初期,由于硬在嵌入式系统的开展初期,由于硬件的配置比较低,对于是否有系统件的配置比较低,对于是否有系统软件的支持,要求还不是很强烈。软件的支持,要求还不是很强烈。在那个阶段,嵌
18、入式软件的设计主在那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系建立在硬件上,没有专门的操作系统。统。l有操作系统的情形有操作系统的情形l为什么要有设备驱动程序?为什么要有设备驱动程序?l嵌入式硬件设备本身无法工作,需要软件来驱嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等。动,如初始化、控制、数据读写等。l什么是设备驱动程序?什么是设备驱动程序?l直接与硬件打交道、对硬件进展控制和管理的直接与硬件打交道、对硬件进展控制和管理的软件。软件。l在一个嵌入式系统中,设备驱动程序是必不可在一个嵌入式系统中
19、,设备驱动程序是必不可少的。少的。设备驱动程序设备驱动程序设备驱动程序的主要功能设备驱动程序的主要功能l硬件启动硬件启动StartupStartup:在开机上电或重启的:在开机上电或重启的时候,对硬件进展初始化;时候,对硬件进展初始化;l硬件关闭硬件关闭ShutdownShutdown:把硬件配置成关机状:把硬件配置成关机状态;态;l硬件停用硬件停用DisableDisable:暂停使用硬件;:暂停使用硬件;l硬件启用硬件启用EnableEnable:重新启用硬件;:重新启用硬件;l硬件读操作硬件读操作ReadRead:从硬件中读取数据;:从硬件中读取数据;l硬件写操作硬件写操作WriteWr
20、ite:往硬件中写数据;:往硬件中写数据;l嵌入式操作系统嵌入式操作系统l嵌入式操作系统包括嵌入式内核、嵌入嵌入式操作系统包括嵌入式内核、嵌入式式TCP/IP网络系统、嵌入式文件系统、网络系统、嵌入式文件系统、嵌入式嵌入式GUI系统和电源管理等部分;系统和电源管理等部分;l嵌入式内核是根底和核心,其他部分要嵌入式内核是根底和核心,其他部分要根据嵌入式系统的需要来确定。根据嵌入式系统的需要来确定。嵌入式中间件嵌入式中间件l中间件中间件Middleware:在:在OS内核、设备驱内核、设备驱动程序和应用软件之外的所有系统软件;动程序和应用软件之外的所有系统软件;l中间件的根本思路:把本来属于应用软
21、件层的中间件的根本思路:把本来属于应用软件层的一些通用的功能模块抽取出来,形成独立的一一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在其上的各个应用软件提层软件,从而为运行在其上的各个应用软件提供一个灵敏、平安、移植性好、互相通信、协供一个灵敏、平安、移植性好、互相通信、协同工作的平台;同工作的平台;l优点:实现软件的可重用,降低应用软件的复优点:实现软件的可重用,降低应用软件的复杂性,降低开发本钱。杂性,降低开发本钱。嵌入式软件的目的嵌入式软件的目的l函数必须正确;函数必须正确;l源代码简洁、可读性好、可维护;源代码简洁、可读性好、可维护;l实时性要求较高的代码可以运行得足够快;
22、实时性要求较高的代码可以运行得足够快;l目的代码小且高效。目的代码小且高效。l总之,要优化对以下三种资源的使用:总之,要优化对以下三种资源的使用:l执行时间;执行时间;l存储空间;存储空间;l开发开发/维护时间。维护时间。数据类型与运算符数据类型与运算符宏定义:用一个指定的标识符来代表一个字宏定义:用一个指定的标识符来代表一个字符串。符串。#define 标识符标识符 字符串字符串如:如:#define PI 3.1415926,其作用是指定,其作用是指定用标识符用标识符PI来代替来代替“3.1415926这个字符串,这个字符串,在编译预处理时,将程序中出现的所有在编译预处理时,将程序中出现的
23、所有PI都都用用“3.1415926代替。代替。1宏定义宏定义宏定义的根本思想是:一次定义,屡次使用。其宏定义的根本思想是:一次定义,屡次使用。其优点是:优点是:可以用简短的标识符来代替长的数据,减少需要可以用简短的标识符来代替长的数据,减少需要输入的字符数;输入的字符数;用易于理解的标识符来代替那些不太好记的详细用易于理解的标识符来代替那些不太好记的详细的数据,便于程序的理解和维护;的数据,便于程序的理解和维护;有利于程序的修改和晋级,当这个数据需要修改有利于程序的修改和晋级,当这个数据需要修改时,只需改动宏定义之处即可。时,只需改动宏定义之处即可。if(myMoney 80.0)mySho
24、es+;myMoney=myMoney 80.0;#define COST_OF_SHOES 80.0if(myMoney COST_OF_SHOES)myShoes+;myMoney=myMoney COST_OF_SHOES;不用不用此法此法一次一次定义定义屡次屡次使用使用2const常量常量 常量数据:整数常量数据:整数12、字符、字符a、字符串字符串“hello和实数和实数3.14等;等;以变量的形式来定义的一个量,并且通以变量的形式来定义的一个量,并且通 过使用关键字过使用关键字const,来说明这个变量的,来说明这个变量的 值不能被改变。如:值不能被改变。如:const int x
25、 =1。3算术运算算术运算整数的算术运算整数的算术运算最快最快带有硬件支持的浮点运算带有硬件支持的浮点运算较慢较慢用软件来实现的浮点运算用软件来实现的浮点运算非常慢非常慢,快快 sin,log,sqrt,etc慢慢结论:结论:尽量使用整数尽量使用整数char、short、int和和long的加法的加法和减法;和减法;假如没有硬件支持,尽量防止使用乘法;假如没有硬件支持,尽量防止使用乘法;尽量防止使用除法;尽量防止使用除法;假如没有硬件支持,尽量防止使用浮点数;假如没有硬件支持,尽量防止使用浮点数;数学库函数使用得越少越好。数学库函数使用得越少越好。4位运算位运算C语言有很多位操作运算符:语言有
26、很多位操作运算符:&与操作;与操作;|或操作;或操作;异或操作;异或操作;取反操作;取反操作;右移操作;右移操作;左移操作。左移操作。a|=0 x4b&=0 x4c&=(1 3)d=(1=2/把第把第2位设置为位设置为1/把第把第2位设置为位设置为0/把第把第3位设置为位设置为0/把第把第5位反转位反转/把把 e 除以除以4int x,num=99,count=0;x=num;while(x)count+;x=x&(x 1);printf(result:%d,count);result:4分支语句分支语句if(a=1)ant();else if(a=2)bar();else if(a=3)ce
27、e();else if(a=4)due();else if(a=5)eat();else if(a=6)foo();switch(a)case 1:ant();break;case 2:bar();break;case 3:cee();break;case 4:due();break;case 5:eat();break;case 6:foo();break;Any Differences?函数函数函数原型函数原型main()函数调用函数调用 函数定义函数定义函数的使用形式函数的使用形式声明该函数声明该函数定义一个函数定义一个函数使用该函数使用该函数操作系统操作系统代码代码栈帧栈帧2栈帧栈帧1
28、全局变量全局变量内存分布状况内存分布状况全局变量区全局变量区域域静态分配静态分配栈栈自动分配自动分配堆堆动态分配动态分配主函数的执行过程主函数的执行过程int z;void main()int x,y;x =1;y =2;z =x+y;main()z =0全局变量区域全局变量区域栈帧栈帧(main)x =y =程序程序123一个简单的例子一个简单的例子int Times2(int value);int Times2(int value);main()main()int number;int number;printf(“printf(“请输入一个整数:请输入一个整数:););scanf(“%d
29、 scanf(“%d,&number);,&number);printf(“printf(“该数的两倍是:该数的两倍是:%d%d,Times2(number);,Times2(number);int Times2(int value)int Times2(int value)return(2 return(2*value);value);mainnumber3当一个函数被调用时:当一个函数被调用时:在内存的栈空间当中为其分配一个栈帧,用在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和部分变量;来存放该函数的形参和部分变量;把实参变量的值复制到相应的形参变量;把实参变量的值复制到相应的
30、形参变量;控制转移到该函数的起始位置;控制转移到该函数的起始位置;该函数开场执行;该函数开场执行;控制流和返回值返回到函数调用点。控制流和返回值返回到函数调用点。函数调用过程函数调用过程本节提要本节提要嵌入式系统硬件根底嵌入式系统硬件根底嵌入式系统软件根底嵌入式系统软件根底嵌入式操作系统嵌入式操作系统嵌入式系统设计方法嵌入式系统设计方法嵌入式操作系统概述嵌入式操作系统概述An Embedded Operating System(EOS)isan Operating System(OS)in an Embedded System environment.Being an OS meansn系统软
31、硬件资源的管理者:系统软硬件资源的管理者:J进程管理进程管理J存储管理存储管理JI/O设备管理设备管理J文件管理文件管理Being an EOS meansn完成某一项或有限项功能,非通用型;完成某一项或有限项功能,非通用型;n在性能和实时性方面可能有严格限制;在性能和实时性方面可能有严格限制;n能源、本钱和可靠性通常是影响设计的能源、本钱和可靠性通常是影响设计的重要因素;重要因素;n占有资源少,合适在有限存储空间运行占有资源少,合适在有限存储空间运行;n系统功能可针对需求进展裁剪、调整,系统功能可针对需求进展裁剪、调整,以便满足最终产品的设计要求。以便满足最终产品的设计要求。按响应时间分类按
32、响应时间分类n嵌入式实时操作系统嵌入式实时操作系统n当事件当事件/恳求发生时,相应的任务应该在恳求发生时,相应的任务应该在规定的时间内完成;规定的时间内完成;n分时操作系统分时操作系统n基于公平性原那么,各个进程分享处理基于公平性原那么,各个进程分享处理器,获得大致一样的运行时间。当一个器,获得大致一样的运行时间。当一个进程在进展进程在进展I/O操作时,交出处理器,让操作时,交出处理器,让其他进程运行。其他进程运行。实时操作系统实时操作系统(RTOS)A real-time operating system(RTOS)is an operating system whose correctne
33、ss includes its response time as well as its functional correctness.hard real time and soft real time按软件构造分类按软件构造分类n单体构造单体构造Monolithic Structuren分层构造分层构造Layered StructurenOut of daten微内核构造微内核构造Microkernel Model单体构造单体构造n最常用的组织构造;最常用的组织构造;n整个系统只有一个可整个系统只有一个可执行文件,包含所有执行文件,包含所有的操作系统组件;的操作系统组件;n系统的构造就是无构
34、系统的构造就是无构造,由一组函数组成造,由一组函数组成,互相之间可以随意,互相之间可以随意地调用。地调用。应用软件应用软件 文件文件I/O存储管理存储管理 进程管理进程管理 I/O驱动驱动 存储驱动存储驱动 中断驱动中断驱动 硬件硬件 单体内核单体内核 分层构造分层构造n在分层构造在分层构造layered中中,一个操作系统被划分为,一个操作系统被划分为假设干个层次假设干个层次0.N,各个层次之间的调用关系各个层次之间的调用关系是单向的,即某一层次上是单向的,即某一层次上的代码只能调用比它低层的代码只能调用比它低层的代码。的代码。n这种构造要求在每个层次这种构造要求在每个层次上都要提供一组上都要
35、提供一组API接口接口函数,这就会带来额外的函数,这就会带来额外的开销开销 微内核微内核 设备驱动程序设备驱动程序 微内核构造微内核构造n操作系统内核只包含操作系统内核只包含最少的功能,如存储最少的功能,如存储管理和进程管理;管理和进程管理;n其他的操作系统组件其他的操作系统组件以中间件的形式存在以中间件的形式存在于内核之外;于内核之外;n设备驱动程序完全从设备驱动程序完全从内核中剥离,独立成内核中剥离,独立成为一层。为一层。中间件、应用软件中间件、应用软件 存储管理存储管理 进程管理进程管理 I/O驱动驱动 存储驱动存储驱动 中断驱动中断驱动 硬件硬件 vVxWorksvEmbedded L
36、inuxvuC/OS-II重点重点vWinCEvPalmOSv常见的嵌入式操作系统常见的嵌入式操作系统多道程序技术多道程序技术为了进步计算机系统中各种资源的利用率,为了进步计算机系统中各种资源的利用率,现代操作系统广泛采用多道程序技术现代操作系统广泛采用多道程序技术multi-programming,使多个程序同时在系统中存,使多个程序同时在系统中存在并运行。在并运行。CPUI/O单道程序:单道程序:多道程序:多道程序:CPUI/O作业甲红黄作业甲红黄作业乙蓝绿作业乙蓝绿进程、线程和任务进程、线程和任务在多道程序系统中,各个程序之间是并发执在多道程序系统中,各个程序之间是并发执行的,共享系统资
37、源。行的,共享系统资源。CPU需要在各个运行需要在各个运行的程序之间来回地切换,这样的话,要想描的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了为此,操作系统设计者提出了进程进程的概念。的概念。什么是进程?什么是进程?A process a program in execution 一个进程应该包括:一个进程应该包括:程序的代码;程序的代码;程序的数据;程序的数据;PC中的值,用来指示下一条将运行的指令;中的值,用来指示下一条将运行的指令;一组通用的存放器的当前值,堆、栈;一组通用的存放器的当前值,堆、
38、栈;一组系统资源如翻开的文件一组系统资源如翻开的文件 总之,进程包含了正在运行的一个程序的所有总之,进程包含了正在运行的一个程序的所有状态信息。状态信息。main().A().PROCESS A program is C statements or commands静态的;静态的;A process is program+running context动态的动态的.main().A().PROGRAMheap StackA MainRegisters,PCProcess Program 进程的特性进程的特性 动态性:程序的运行状态在变,动态性:程序的运行状态在变,PC、存放器、存放器、堆和栈等
39、;堆和栈等;独立性:是一个独立的实体,是计算机系统资独立性:是一个独立的实体,是计算机系统资 源的使用单位。每个进程都有源的使用单位。每个进程都有“自己自己 的的PC和内部状态,运行时独立于其他和内部状态,运行时独立于其他 的进程逻辑的进程逻辑PC和物理和物理PC;并发性:从宏观上看各进程是同时独立运行的并发性:从宏观上看各进程是同时独立运行的四个进程在并发地运行四个进程在并发地运行本图摘自本图摘自Andrew S.Tanenbaum:“Modern Operating Systems什么是线程?什么是线程?自从自从60年代提出进程概念以来,在操作系统中年代提出进程概念以来,在操作系统中一直都
40、是以进程作为独立运行的根本单位,直一直都是以进程作为独立运行的根本单位,直到到80年代中期,人们又提出了更小的能独立运年代中期,人们又提出了更小的能独立运行的根本单位行的根本单位 线程。线程。WhyWhy线程?线程?【案例】编写一个【案例】编写一个MP3播放软件。核心功能播放软件。核心功能模块有三个:模块有三个:1从从MP3音频文件当中读取音频文件当中读取数据;数据;2对数据进展解压缩;对数据进展解压缩;3把解把解压缩后的音频数据播放出来。压缩后的音频数据播放出来。单进程的实现方法单进程的实现方法 main()while(TRUE Read();Decompress();Play();Read
41、()Decompress()Play()问题:问题:播放出来的声音能播放出来的声音能 否连接?否连接?各个函数之间不是各个函数之间不是 并发执行,影响资并发执行,影响资 源的使用效率;源的使用效率;I/OCPU多进程的实现方法多进程的实现方法 程序程序1main()while(TRUE Read();Read()问题:进程之间如何通信,共享数据?问题:进程之间如何通信,共享数据?程序程序3main()while(TRUE Play();Play()程序程序2main()while(TRUE Decompress();Decompress()怎么办?怎么办?需要提出一种新的实体,满足以下特性:需
42、要提出一种新的实体,满足以下特性:1实体之间可以并发地执行;实体之间可以并发地执行;2实体之间共享一样的地址空间;实体之间共享一样的地址空间;这种实体就是:线程这种实体就是:线程Thread什么是线程?什么是线程?Thread:A sequential execution stream within a process;A thread of execution;进程当中的一条执行流程。进程当中的一条执行流程。从两个方面来理解进程:从两个方面来理解进程:从资源组合的角度:进程把一组相关的从资源组合的角度:进程把一组相关的 资源组合起来,构成了一个资源平台资源组合起来,构成了一个资源平台 环境,
43、包括地址空间代码段、数据环境,包括地址空间代码段、数据 段、翻开的文件等各种资源;段、翻开的文件等各种资源;从运行的角度:代码在这个资源平台上的从运行的角度:代码在这个资源平台上的 一条执行流程线程。一条执行流程线程。资源平台资源平台 线程线程 进程进程 线程线程 资源平台资源平台优点:优点:一个进程中可以同时存在多个线程;一个进程中可以同时存在多个线程;各个线程之间可以并发地执行;各个线程之间可以并发地执行;各个线程之间可以共享地址空间。各个线程之间可以共享地址空间。线程所需的资源线程所需的资源本图摘自本图摘自Silberschatz,Galvin and Gagne:“Operating
44、System Concepts 什么是任务?什么是任务?在许多嵌入式操作系统当中,一般把在许多嵌入式操作系统当中,一般把可以独立运行的实体称为可以独立运行的实体称为“任务任务Task,那么这里所说的任务到底,那么这里所说的任务到底是进程还是线程呢?是进程还是线程呢?任务的实现任务的实现在多道程序多任务的嵌入式操作系统在多道程序多任务的嵌入式操作系统中,任务之间的构造为层状构造,存在着中,任务之间的构造为层状构造,存在着父子关系;父子关系;当嵌入式内核刚刚启动时,只有一个任务当嵌入式内核刚刚启动时,只有一个任务存在,然后由该任务派生出所有其他的任存在,然后由该任务派生出所有其他的任务。务。任务的层次构造任务的层次构造OS初始任务初始任务 任务任务 任务任务 任务任务 任务任务 任务任务 任务任务 任务任务 本节提要本节提要嵌入式系统硬件根底嵌入式系统硬件根底嵌入式系统软件根底嵌入式系统软件根底嵌入式操作系统嵌入式操作系统嵌入式系统设计方法嵌入式系统设计方法Thank You!