1、嵌入式操作系统基础嵌入式操作系统基础李李 登登 峰峰主要内容:主要内容:n一、一、操作系统的基本概念操作系统的基本概念n二、二、嵌入式操作系统嵌入式操作系统 n三、三、WinCE嵌入式操作系统嵌入式操作系统n四、四、WinCE的处理器管理的处理器管理n五、五、WinCE的内存管理的内存管理n六、六、WinCE的设备管理的设备管理n七、七、WinCE的存储管理与文件系统的存储管理与文件系统 一、操作系统的基本概念一、操作系统的基本概念(1)计算机系统结构框架)计算机系统结构框架 1.操作系统概述操作系统概述(2)什么是计算机操作系统)什么是计算机操作系统 一般认为:操作系操作系统是有效控制和管理
2、计算机硬件和一般认为:操作系操作系统是有效控制和管理计算机硬件和软件资源软件资源,合理地组织工作流程合理地组织工作流程,以提高资源利用率,并为以提高资源利用率,并为用户提供强有力的使用功能和灵活方便的使用环境的程序集用户提供强有力的使用功能和灵活方便的使用环境的程序集合。由于操作系统的复杂性,我们可以从以下角度来理解操合。由于操作系统的复杂性,我们可以从以下角度来理解操作系统。作系统。l从系统结构层次模型理解操作系统从系统结构层次模型理解操作系统 l从软件结构层次的角度理解操作系统从软件结构层次的角度理解操作系统 l从程序员的角度理解操作系统从程序员的角度理解操作系统 操作系统为程序员操作系统
3、为程序员提供了一组程序接提供了一组程序接口和操作接口口和操作接口 l从一般用户的角度理解操作系统从一般用户的角度理解操作系统 l从系统管理员的角度理解操作系统从系统管理员的角度理解操作系统 操作系统合理地组织和管理了计算机系统的工作流程,操作系统合理地组织和管理了计算机系统的工作流程,使计算机系统能为多个用户提供安全高效的计算机资源共享使计算机系统能为多个用户提供安全高效的计算机资源共享服务。服务。操作系统提供了一个友好的人机界面,使他们不必了解操作系统提供了一个友好的人机界面,使他们不必了解计算机硬件和软件就可以轻松使用计算机。计算机硬件和软件就可以轻松使用计算机。l从硬件设计人员的角度来理
4、解操作系统从硬件设计人员的角度来理解操作系统 操作系统为计算机功能扩展提供了支撑平台,使硬件操作系统为计算机功能扩展提供了支撑平台,使硬件系统和软件系统具有了相对的独立性。可以在一定范围内系统和软件系统具有了相对的独立性。可以在一定范围内对硬件功能模块进行升级或添加新的模块,而不会影响应对硬件功能模块进行升级或添加新的模块,而不会影响应用程序的运行。用程序的运行。2.操作系统的发展操作系统的发展操作系统的发展大致经历了四个不同的发展阶段操作系统的发展大致经历了四个不同的发展阶段.l手工操作阶段(无操作系统)手工操作阶段(无操作系统)原始汇编和执行过程原始汇编和执行过程 l早期初级批处理阶段早期
5、初级批处理阶段 所谓批处理系统是指加载在计算机上的一个系统软件,在所谓批处理系统是指加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地成批地处理一个或多个用户的它的控制下,计算机能够自动地成批地处理一个或多个用户的作业。首先出现的是联机批处理系统。作业。首先出现的是联机批处理系统。批批处处理理工工作作过过程程 批处理将用户作业按照一定的顺序排列,统一交给计算批处理将用户作业按照一定的顺序排列,统一交给计算机系统,由计算机自动地、顺序地完成作业的系统。批处理机系统,由计算机自动地、顺序地完成作业的系统。批处理采用尽量避免人机交互的方式来提高采用尽量避免人机交互的方式来提高CPU的运行效
6、率。单道的运行效率。单道批处理系统引入了专职的操作员来减少用户的操作时间,将批处理系统引入了专职的操作员来减少用户的操作时间,将类似的作业作为一组,通过计算机实现了批处理,减少了建类似的作业作为一组,通过计算机实现了批处理,减少了建立作业运行环境所需要的时间,配备了简单的操作系统,完立作业运行环境所需要的时间,配备了简单的操作系统,完成了一个作业到另一作业的自动转换。成了一个作业到另一作业的自动转换。l多道批处理阶段多道批处理阶段 在主存中可以装入多个作业,作业之间可以分别使用在主存中可以装入多个作业,作业之间可以分别使用不同的硬件资源并行工作。多道批处理系统的使用增强了不同的硬件资源并行工作
7、。多道批处理系统的使用增强了处理器与外设并行工作能力,并增强了不同外设并行工作处理器与外设并行工作能力,并增强了不同外设并行工作的能力,很好地提高了设备的利用率。的能力,很好地提高了设备的利用率。l现代操作系统形成和发展现代操作系统形成和发展 分时操作系统分时操作系统(Time Sharing Operting System)。其)。其实现思想如下:每个用户在各自的终端上以问答方式控制程实现思想如下:每个用户在各自的终端上以问答方式控制程序运行,系统把中央处理器的时间划分成时间片,轮流分配序运行,系统把中央处理器的时间划分成时间片,轮流分配给各个联机终端用户,每个用户只能在极短时间内执行,若给
8、各个联机终端用户,每个用户只能在极短时间内执行,若时间片用完,而程序还未做完,则挂起等待下次分得时间片。时间片用完,而程序还未做完,则挂起等待下次分得时间片。实时操作系统:实时操作系统:实时操作系统的特征是在允许的时间范围内实时操作系统的特征是在允许的时间范围内对各种事件做出及时的响应为。它要求计算机对于外来信息对各种事件做出及时的响应为。它要求计算机对于外来信息能以足够快的速度进行处理,并在被控对象允许时间范围内能以足够快的速度进行处理,并在被控对象允许时间范围内作出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级作出快速响应,其响应时间要求在秒级、毫秒级甚至微秒级或更小。或更小。操作系统的
9、发展:操作系统的发展:u个人计算机上的操作系统。个人计算机上的操作系统。u嵌入式操作系统。嵌入式操作系统。u网络操作系统。网络操作系统。u分布式操作系统。分布式操作系统。u智能化操作系统。智能化操作系统。20世纪世纪90年代后期,由于个人计算机硬件功能的急剧增年代后期,由于个人计算机硬件功能的急剧增加和用户对安全性、网络功能的要求增强,个人计算机操作加和用户对安全性、网络功能的要求增强,个人计算机操作系统也从系统也从DOS转向了通用操作系统转向了通用操作系统Windows系列和系列和linux系系列。列。3.操作系统的特征和基本结构操作系统的特征和基本结构并发性并发性 并发性(并发性(conc
10、urrence)是指两个或两个以上的事件或)是指两个或两个以上的事件或活动在同一时间间隔内发生。操作系统是一个并发系统,并活动在同一时间间隔内发生。操作系统是一个并发系统,并发性是它的重要特征,操作系统的并发性指它应该具有处理发性是它的重要特征,操作系统的并发性指它应该具有处理和调度多个程序同时执行的能力。和调度多个程序同时执行的能力。(1)操作系统的基本特征)操作系统的基本特征并发性、共享性、虚拟性和不确定性并发性、共享性、虚拟性和不确定性共享性共享性 共享共享(Sharing)指操作系统中的资源(包括硬件资源和信指操作系统中的资源(包括硬件资源和信息资源)可被多个并发执行的进程共同使用,而
11、不是被一个进息资源)可被多个并发执行的进程共同使用,而不是被一个进程所独占。现实的方法是让操作系统和多个用户程序共用一套程所独占。现实的方法是让操作系统和多个用户程序共用一套计算机系统的所有资源,因而,必然会产生共享资源的需要。计算机系统的所有资源,因而,必然会产生共享资源的需要。资源共享的方式可以分成两种:资源共享的方式可以分成两种:互斥访问互斥访问 同时访问同时访问 共享性和并发性是操作系统两个最基本的特性,它们互为共享性和并发性是操作系统两个最基本的特性,它们互为依存。依存。一方面,资源的共享是因为程序的并发执行而引起的,一方面,资源的共享是因为程序的并发执行而引起的,若系统不允许程序并
12、发执行,自然也就不存在资源共享问题。若系统不允许程序并发执行,自然也就不存在资源共享问题。另一方面,若系统不能对资源共享实施有效管理,必然会影响另一方面,若系统不能对资源共享实施有效管理,必然会影响到程序的并发执行,甚至程序无法并发执行,操作系统也就失到程序的并发执行,甚至程序无法并发执行,操作系统也就失去了并发性,导致整个系统效率低下。去了并发性,导致整个系统效率低下。虚拟性虚拟性 虚拟性是指操作系统中的一种管理技术,它是把物理上虚拟性是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上
13、的一个对应物的技术。体变成逻辑上的一个对应物的技术。不确定性不确定性(也称异步性,或称随机性(也称异步性,或称随机性)在多道程序环境中,允许多个进程并发执行,由于资源在多道程序环境中,允许多个进程并发执行,由于资源有限而进程众多,多数情况,进程的执行不是一贯到底,而有限而进程众多,多数情况,进程的执行不是一贯到底,而是是“走走停停走走停停”。例如,一个进程在。例如,一个进程在 CPU 上运行一段时间后,上运行一段时间后,由于等待资源满足或事件发生,它被暂停执行,由于等待资源满足或事件发生,它被暂停执行,CPU 转让给转让给另一个进程执行。系统中的进程何时执行?何时暂停?以什另一个进程执行。系统
14、中的进程何时执行?何时暂停?以什么样的速度向前推进?进程总共要化多少时间执行才能完成?么样的速度向前推进?进程总共要化多少时间执行才能完成?这些都是不可预知的。这些都是不可预知的。异步性给系统带来了潜在的危险,有可能导致进程产生异步性给系统带来了潜在的危险,有可能导致进程产生与时间有关的错误,但只要运行环境相同,操作系统必须保与时间有关的错误,但只要运行环境相同,操作系统必须保证多次运行进程,都会获得完全相同的结果。证多次运行进程,都会获得完全相同的结果。(2)操作系统的结构)操作系统的结构 操作系统一般分成驱动程序、内核、接口库和外围设备四操作系统一般分成驱动程序、内核、接口库和外围设备四大
15、部分。四大部分的不同布局,也就形成了几种不同整体结构。大部分。四大部分的不同布局,也就形成了几种不同整体结构。常见的结构包括:单核结构、层次结构和微内核结构。常见的结构包括:单核结构、层次结构和微内核结构。单核结构单核结构 单核结构是指操作系统为一个单一的、庞大的软件系统的单核结构是指操作系统为一个单一的、庞大的软件系统的一类结构,它分为外壳部分和核心部分。一类结构,它分为外壳部分和核心部分。单核操作单核操作系统的结系统的结构示意图构示意图 层次结构层次结构 层次结构类型的操作系统是从资源管理的观点出发,按功层次结构类型的操作系统是从资源管理的观点出发,按功能划分层次,每层有明确的功能,通过接
16、口提供上下层联系,能划分层次,每层有明确的功能,通过接口提供上下层联系,上层软件调用下层软件提供的服务,使模块间的调用变为有序上层软件调用下层软件提供的服务,使模块间的调用变为有序性。系统每加一层,就构成一个比原来功能更强的虚拟机。结性。系统每加一层,就构成一个比原来功能更强的虚拟机。结构类似于洋葱头,它由若干层组成,每一层都提供一组功能,构类似于洋葱头,它由若干层组成,每一层都提供一组功能,这组功能只依赖于该层以内的各层。这组功能只依赖于该层以内的各层。层次结构型操作层次结构型操作系统的逻辑结构系统的逻辑结构示意图示意图 u微内核微内核(micro-kernel)结构结构 微内核的概念是由微
17、内核的概念是由Richard Rashid在卡内基梅隆在卡内基梅隆(Carnegie-Mellon)大学开发大学开发Mach操作系统时提出的,目操作系统时提出的,目标是建立一个基于消息传送标是建立一个基于消息传送(message passing)机制的最机制的最小内核,以便在此基础上建造对其它操作系统的模拟层来小内核,以便在此基础上建造对其它操作系统的模拟层来模拟其它操作系统的特性。模拟其它操作系统的特性。基于微内核基于微内核的操作系统的操作系统结构模型结构模型 4.操作系统的基本功能操作系统的基本功能 从资源管理的角度出发,计算机操作系统的主要功能从资源管理的角度出发,计算机操作系统的主要功
18、能包括:处理器管理、存储器管理、设备管理、文件管理和包括:处理器管理、存储器管理、设备管理、文件管理和用户接口。用户接口。(1)处理器管理功能)处理器管理功能 在多道程序的环境中,处理机分配的主要对象是进程。在多道程序的环境中,处理机分配的主要对象是进程。进程是指程序在并发环境下的一次运行过程。操作系统通进程是指程序在并发环境下的一次运行过程。操作系统通过进程调度选择一个合适的进程分配处理机,因此,处理过进程调度选择一个合适的进程分配处理机,因此,处理机管理归根结底就是进程管理。机管理归根结底就是进程管理。操作系统有关进程方面的管理很多,主要有进程控制、操作系统有关进程方面的管理很多,主要有进
19、程控制、进程同步与互斥、处理机调度、进程通信及死机检测与处进程同步与互斥、处理机调度、进程通信及死机检测与处理等。理等。(2)存储器管理功能)存储器管理功能 存储器是计算机系统重要的资源。存储器是计算机的记忆存储器是计算机系统重要的资源。存储器是计算机的记忆部件,主要指计算机的内存。内存是程序运行的舞台,一部件,主要指计算机的内存。内存是程序运行的舞台,一个程序要在处理机上运行,其代码和数据就要全部或部分个程序要在处理机上运行,其代码和数据就要全部或部分地驻留于内存。除操作系统要占相当大的内存空间外,在地驻留于内存。除操作系统要占相当大的内存空间外,在多道程序系统中,并发运行的程序都要占有自己
20、的内存空多道程序系统中,并发运行的程序都要占有自己的内存空间。因此,内存总是一种紧张的系统资源。间。因此,内存总是一种紧张的系统资源。存储器管理功能主要包含以下三个方面:存储器管理功能主要包含以下三个方面:存储器的分配、管理和回收的功能。存储器的分配、管理和回收的功能。内存保护功能,提供存储保护的手段内存保护功能,提供存储保护的手段。地址映射和扩充功能,提供地址重新定位的能力。地址映射和扩充功能,提供地址重新定位的能力。使用户程序与物理存储器地址无关,扩充主存空间,使用户程序与物理存储器地址无关,扩充主存空间,实现实现“虚拟存储虚拟存储”的功能。的功能。(3)设备管理功能)设备管理功能提供设备
21、缓冲管理、设备分配、设备驱动和虚拟设备等功能。提供设备缓冲管理、设备分配、设备驱动和虚拟设备等功能。设备缓冲管理设备缓冲管理 当处理器不能直接访问外围设备时,处理器利用缓冲区来当处理器不能直接访问外围设备时,处理器利用缓冲区来缓解处理机和外围设备间速度不匹配的矛盾,提高处理机与设缓解处理机和外围设备间速度不匹配的矛盾,提高处理机与设备、设备与设备之间操作的并行程度。备、设备与设备之间操作的并行程度。设备分配设备分配 系统根据用户程序所请求的设备类型,按分配算法对设备系统根据用户程序所请求的设备类型,按分配算法对设备和设备相应的控制器及通道进行分配,建立从外设到内存之间和设备相应的控制器及通道进
22、行分配,建立从外设到内存之间传输信息的通路。传输信息的通路。设备驱动设备驱动 设备驱动的任务是将逻辑设备名转换成设备的物理地址,设备驱动的任务是将逻辑设备名转换成设备的物理地址,启动指定的启动指定的I/O设备,完成用户规定的设备,完成用户规定的I/O操作,对设备发来操作,对设备发来的中断请求进行及时响应,根据中断类型进行相应的处理。的中断请求进行及时响应,根据中断类型进行相应的处理。设备独立性设备独立性 用户向系统申请和使用的设备与实际操作的设备无关,用户向系统申请和使用的设备与实际操作的设备无关,使用逻辑设备名可以方便用户编程,有利于解决外设的故障使用逻辑设备名可以方便用户编程,有利于解决外
23、设的故障和增加设备分配的灵活性。和增加设备分配的灵活性。虚拟设备虚拟设备 把一次仅允许一个进程访问的设备称为独占设备。独占把一次仅允许一个进程访问的设备称为独占设备。独占设备使得系统效率很低,并可能产生死锁。可以通过虚拟技设备使得系统效率很低,并可能产生死锁。可以通过虚拟技术将一台独占设备改造成能被多个进程共享的设备,以提高术将一台独占设备改造成能被多个进程共享的设备,以提高设备的利用率。这种经过虚拟技术改造后的设备,是一种逻设备的利用率。这种经过虚拟技术改造后的设备,是一种逻辑上的设备,称为虚拟设备。辑上的设备,称为虚拟设备。(4)文件管理功能)文件管理功能 文件是计算机中信息的主要存放方式
24、,也是用户存文件是计算机中信息的主要存放方式,也是用户存放在计算机中最重要的资源和财富。文件系统应有效地放在计算机中最重要的资源和财富。文件系统应有效地支持文件的储存、检索和分类等操作,将文件长期、有支持文件的储存、检索和分类等操作,将文件长期、有效、安全、有组织地存放在文件系统之中,并向用户提效、安全、有组织地存放在文件系统之中,并向用户提供方便的存取手段和共享方式。文件管理功能实现了系供方便的存取手段和共享方式。文件管理功能实现了系统中各类信息资源的管理,操作系统为文件的管理提供统中各类信息资源的管理,操作系统为文件的管理提供了一组完整的操作命令。了一组完整的操作命令。文件管理的主要功能有
25、:文件管理的主要功能有:文件存储空间的分配和回收文件存储空间的分配和回收目录管理目录管理文件的存取控制文件的存取控制文件的安全与维护文件的安全与维护文件逻辑地址与物理地址文件逻辑地址与物理地址 操作系统的重要目标是方便用户使用计算机。操作系统操作系统的重要目标是方便用户使用计算机。操作系统内核通过系统调用向应用程序提供接口,方便用户进程对文内核通过系统调用向应用程序提供接口,方便用户进程对文件和目录的操作、申请和释放内存、对各类设备进行件和目录的操作、申请和释放内存、对各类设备进行I/O操操作以及对进程进行控制。作以及对进程进行控制。操作系统通过用户接口提供对文件系统的操作命令,操作系统通过用
26、户接口提供对文件系统的操作命令,提供系统维护、系统开发接口,以及向用户提供有关信息。提供系统维护、系统开发接口,以及向用户提供有关信息。操作系统的用户接口有三类:操作系统的用户接口有三类:程序接口程序接口命令行接口命令行接口图形接口图形接口(5)用户接口)用户接口5.操作系统的分类操作系统的分类二、二、嵌入式操作系统嵌入式操作系统一、嵌入式操作系统及其主要特点一、嵌入式操作系统及其主要特点 什么是嵌入式操作系统?什么是嵌入式操作系统?用于嵌入式系统的操作系统都可以称为嵌入式操作系统用于嵌入式系统的操作系统都可以称为嵌入式操作系统EOS(Embedded Operating System)。)。
27、对嵌入式操作系统的理解对嵌入式操作系统的理解l具备了一般操作系统最基本的功能。具备了一般操作系统最基本的功能。l具有较小的内核代码具有较小的内核代码l具有可伸缩性要求具有可伸缩性要求l具有实时性要求具有实时性要求l具有硬件相关依赖性具有硬件相关依赖性l代码效率的高,一般固化在系统代码效率的高,一般固化在系统FLASH中中l强稳定性强稳定性嵌入式操作系统的主要特点嵌入式操作系统的主要特点l紧凑性紧凑性l可伸缩性可伸缩性l实时性实时性l统一的接口统一的接口l操作方便、简单、提供友好的图形操作方便、简单、提供友好的图形GUI,追求易学易用。,追求易学易用。l提供强大的网络功能提供强大的网络功能l强稳
28、定性,弱交互性强稳定性,弱交互性 l固化代码固化代码l良好的移植性良好的移植性l特殊的开发调试环境特殊的开发调试环境 2.几种常见的嵌入式操作系统几种常见的嵌入式操作系统常见的嵌入式系统有常见的嵌入式系统有:l嵌入式嵌入式LinuxlWinCElPalmOSluCOS-IIlVxWorkslOS-9lpSOSlNucleuslQNXlOSElSymbianlLynxOS 分类方法:按收费模式划分、按实时性划分、按应用划分分类方法:按收费模式划分、按实时性划分、按应用划分按收费模按收费模式分类式分类 商用型商用型 免费型免费型(开放源开放源代码代码)Vxworks NucleuxPlamOS S
29、ymbianWinCE QNXpSOS VRTXLynx OS HopenDelta OSRTLinuxCLinuxC/OS-eCosuITRON 按实时按实时性分类性分类强实时强实时 弱实时弱实时 VxWorkspSOSQNXNucleus WinCEPalmOS 按应用按应用分类分类 通用型通用型 专用型专用型 LinuxVxWorksWinCE Smart PhonePocket PCSymbian 4.典型嵌入式操作系统分析 目前最具有代表性和影响力的嵌入式操作系统有uCLinux、WinCE、VxWorks和C/OS-,其中uCLinux、WinCE和PlamOS是在电子消费类产品中
30、应用最多的产品,而VxWorks和C/OS-是实时工业控制应用最多的嵌入式操作系统。下面将从任务管理、同步与通信机制、内存管理、中断管理、文件系统、对硬件的支持、系统移植等方面对嵌入式uCLinux、WinCE、VxWorks和C/OS-等操作系统分析。(1)任务管理 任务管理是嵌入式操作系统的核心和灵魂,它决定了操作系统的实时性能,通常包含任务优先级、多任务调度机制和时间确定性等部分。任务优先级 嵌入式操作系统内核中一般把任务分为两类,一类是实时任务,另一类是非实时任务,两类任务的优先级并不同。基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级
31、最高的任务被分配CPU资源。在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。时间确定性ClinuxWinCEVxWorksC/OS-II优先级数量140级256级256级64级优先级变化动态动态动态动态多任务支持支持支持支持支持任务数量无限制25625664时间可确定性否是是是调度方法实时进程先来先服务;普通进程时间片轮转基于优先级抢占式调度;时间片轮转调度基于优先级抢占式调度;时间片轮转调度基于固定优先级抢占式调度。4种操作系统的调度机制种操作系统的调度机制(2)同步与通信机制 实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。任务与任务之
32、间、任务与中断之间以及任务与中断服务程序之间必须协调动作,互相配合,这就涉及任务间的同步与通信问题。ClinuxWinCEVxWorksC/OS-II同步方法信号量信号量、互斥信号量、事件标志、临界区信号量、互斥信号量、事件标志信号量、互斥信号量、事件标志通信量消息队列、共享内存、管道消息队列、共享内存消息队列、共享内存、管道消息队列、邮箱避免优先级反转机制不支持优先级继承优先级继承优先级置顶 4种操作系统的同步与通信机制比较表种操作系统的同步与通信机制比较表(3)内存管理内存分配原则 快速性:采用简单、快速的分配算法使内存分配过程要尽可能快 可靠性:内存分配的请求必须得到满足 高效性:系统本
33、身可配置的内存容量是很有限的,要尽可能地避免浪费。存储保护 通常在操作系统的内存中既有系统程序也有用户程序,为了使两者都能正常运行,避免程序间相互干扰,需要对内存中的程序和数据进行保护。内存分配方式 内存分配方式可分为静态分配和动态分配。静态分配是指程序运行前一次性分配给相应内存,并且在程序运行期间中不允许再申请或在内存中移动;动态分配则允许在程序运行整个过程中进行内存分配。(4)中断管理Clinux操作系统 将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理由底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统
34、中存在许多的底半中断处理,所以会引起系统中断处理的延时。C/OS-II 中断处理比较简单。一个中断向量上只能挂一个中断服务子程序ISR,而且用户代码必须都在ISR中完成。ISR需要做的事情越多,中断延时也就越长。内核所能支持的最大嵌套深度为255。中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交互。主要考虑是否支持中断嵌套、中断处理机制、中断延时等。WinCE操作系统 将中断处理分为运行于核心态的中断服务程序ISR与运行于用户态的中断服务线程IST两部分。为了提高系统的实时性ISR中做简短的处理,把中断标识返回给中断处理器,越快越好,ISR的任务就是完成从硬件中断到系统中断的
35、转换并返回,而大部分的中断处理留给IST来完成。VxWorks操作系统 中断管理采用中断处理与普通任务分别在不同栈中处理的中断处理机制,使得中断只会引发一些关键寄存器的存储,而不会导致任务的上下文切换,从而极大地缩短了中断延时。(5)文件系统Clinux 继承了Linux完善的文件系统性能,它支持ROMFS、NFS、ext2、MS-DOS、JFFS等文件系统。但一般采用ROMFS文件系统,这种文件系统相对于一般的文件系统(如ext2)占用更少的空间。WinCE 没有分区的概念。所有的文件系统,都被Mount到根目录“”下面。编程时需要注意,WinCE中也没有当前目录的概念,所有的目录都以根目录
36、为参考。WinCE支持FAT或FATFS、exFAT、TFAT、BinFS、CDFS/UDFS、RAM(对象存储)、RELFSD等文件系统。文件系统是指负责存取和管理文件信息的机构,也可以说是负责文件的建立、撤销、组织、读写、修改、复制,以及对文件管理所需的其他资源实施管理的软件部分。VxWorks 在文件系统与设备驱动程序之间使用一种标准的I/O口操作接口,且支持MS-DOS、RT-11、RFS、CD-ROM、RAW等文件系统。这样,在单个VxWorks操作系统中可以运行多个相同或不同种类的文件系统。C/OS-II 是面向中小型应用的嵌入式系统,即使包含全部功能,编译后内核也不到10 KB,
37、所以系统本身并没有提供对文件系统的支持。但是C/OS-II具有良好的扩展性能,如果需要也可自行加入文件系统的内容。(6)对硬件的支持ClinuxWinCEVxWorksC/OS-IICPU位数位数16位位64位位16位位64位位16位位64位位8位位32位位CPU种类种类X86、i960、MotorolaAxis ETRRAXX86、ARM系系列,列,Motorola、Power PC、MC68系列系列X86、i960、Sun Sparc,ARM系列,系列,Motorola、Power PC、MC68系列系列MCS51系列、系列、X86、ARM系系列,列,Motorola、Power PC、S
38、parc存储容量护存储容量护最少最少512KB的的RAM、lMB的的ROM/Flash空空间间一般内核编译一般内核编译后要占几十后要占几十MB几十几十几百几百KB的的ROM和和RAM最少最少2KB的的ROM、4KB的的RAM(7)其它方面ClinuxWinCEVxWorksC/OS-II移植过程移植过程复杂、较困难复杂、较困难容易、成本高容易、成本高容易、成本高容易、成本高简单简单互操作性互操作性很强很强较强较强较强较强很弱很弱实用性实用性很好很好比较好比较好很好很好比较好比较好实时性实时性弱实时弱实时弱实时弱实时强实时强实时强实时强实时开发环境开发环境非集成非集成集成集成集成集成非集成非集成
39、源代码公开源代码公开100%开放开放部分开放部分开放不开放不开放100%开放开放使用授权使用授权免费使用免费使用商用授权商用授权商用授权商用授权免费使用免费使用技术支持技术支持资源丰富资源丰富规范规范规范规范资源较丰富资源较丰富开发难度开发难度很难很难很容易很容易很容易很容易较难较难嵌入式嵌入式Linux LinuxlLinux的源代码是开放的软件,不存在黑箱技术,任何人都的源代码是开放的软件,不存在黑箱技术,任何人都可以修改它,或者用它开发自己的产品。可以修改它,或者用它开发自己的产品。lLinux系统是可以定制的,系统内核目前已经可以做得很小。系统是可以定制的,系统内核目前已经可以做得很小
40、。一个带有中文系统及图形化界面的核心程序也可以做到不足一个带有中文系统及图形化界面的核心程序也可以做到不足1MB,而且同样稳定。,而且同样稳定。lLinux作为一种可裁减的软件平台系统,是发展未来嵌入设作为一种可裁减的软件平台系统,是发展未来嵌入设备产品的绝佳资源,遍布全球的众多备产品的绝佳资源,遍布全球的众多Linux爱好者又能给予爱好者又能给予 Linux开发者强大的技术支持。开发者强大的技术支持。lLinux是个与生俱来的网络操作系统,成熟而且稳定。是个与生俱来的网络操作系统,成熟而且稳定。5.嵌入式操作系统发展趋势嵌入式操作系统发展趋势 随着硬件技术、应用需求和开发需求的变化,如同台式
41、系统一样嵌入操作系统也需要使用方便、功能强大的开发系统,也需要支持面向对象和可重用等技术。针对上述特点可预计下一代嵌入式操作系统的发展将呈现以下特征:三、WinCE嵌入式操作系统嵌入式操作系统 WinCE是所有源代码全部由微软自行开发的嵌入式操作系是所有源代码全部由微软自行开发的嵌入式操作系统统,是一个开放的是一个开放的、可升级的可升级的32位嵌入式操作系统位嵌入式操作系统。其中其中CE中中的的C代表袖珍(代表袖珍(Compact)、消费()、消费(Consumer)、通信能力)、通信能力(Connectivity)和伴侣(和伴侣(Companion);E代表电子产品代表电子产品(Electr
42、onics)。)。WinCE 是一个紧凑、高效和可伸缩的操作系统,适用于各是一个紧凑、高效和可伸缩的操作系统,适用于各种嵌入系统和产品。它拥有多线程、多任务、确定性的实时、种嵌入系统和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的完全抢先式优先级的操作系统环境,专门面向只有有限资源的嵌入式系统。嵌入式系统。目前用得最多的目前用得最多的WinCE版本是版本是2004年发布的年发布的Windows CE.NET 4.2,该版本功能强大,主要应用领域包括,该版本功能强大,主要应用领域包括PDA市场、市场、Pocket PC、Smartphone、工业
43、控制、医疗等。、工业控制、医疗等。1.WinCE概述概述 2、WinCE的体系结构的体系结构 WinCE是一个微内核嵌入式操作系统。从底层向上分别为是一个微内核嵌入式操作系统。从底层向上分别为硬件层、硬件层、OEM层、操作系统层和应用层,每一层都分别由不层、操作系统层和应用层,每一层都分别由不同的模块组成,每个模块又由不同的组件构成。同的模块组成,每个模块又由不同的组件构成。层次结构图如下:层次结构图如下:(1)硬件层硬件层 硬件层是指由硬件层是指由CPU、存储器、存储器、I/O端口、扩展卡等组成的端口、扩展卡等组成的嵌入式硬件系统,是嵌入式硬件系统,是WinCE操作系统运行的硬件平台。操作系
44、统运行的硬件平台。(2)OEM层层 OEM层是嵌入式硬件与层是嵌入式硬件与WinCE操作系统的结合层。操作系统的结合层。WinCE操作系统要能在特定硬件上运行,硬件必须要能够加载操作系统要能在特定硬件上运行,硬件必须要能够加载WinCE操作系统,同时,操作系统也要能够实现对硬件系统的初始化操作系统,同时,操作系统也要能够实现对硬件系统的初始化并驱动这些硬件。并驱动这些硬件。OEM层主要由下列模块组成:层主要由下列模块组成:OAL(OEM Adaptation Layer,OEM适配层)适配层)启动加载程序(启动加载程序(Bootloader)配置文件配置文件 驱动程序驱动程序(3)操作系统层操
45、作系统层 WinCE是比较典型的微内核嵌入式操作系统。是比较典型的微内核嵌入式操作系统。微内核一般把最基本的操作系统功能放在内核中,其它不微内核一般把最基本的操作系统功能放在内核中,其它不是最基本的服务和应用程序则在微内核之上构造,并在用户模是最基本的服务和应用程序则在微内核之上构造,并在用户模式下执行。式下执行。微内核结构用一个水平分层的结构代替了传统的纵向分层微内核结构用一个水平分层的结构代替了传统的纵向分层结构,如下图所示。结构,如下图所示。传统纵向分层结构传统纵向分层结构 水平分层结构水平分层结构 WinCE在内核中仅仅实现进程、线程、调度及内存管理在内核中仅仅实现进程、线程、调度及内
46、存管理等最基本的模块,而把图形窗口事件系统等最基本的模块,而把图形窗口事件系统(GWES)、设备管、设备管理器理器(DEVICE)、服务、服务(SERVICE)和文件系统()和文件系统(FILESYS)等都作为单独的用户进程来实现。等都作为单独的用户进程来实现。在微内核外部的操作系统部件被当作服务器进程实现,也在微内核外部的操作系统部件被当作服务器进程实现,也可以借助通过微内核传递信息来实现相互之间的交互。可以借助通过微内核传递信息来实现相互之间的交互。WinCE操作系统内核结构如下图所示。操作系统内核结构如下图所示。核心核心(NK.exe)NK.EXE是是WinCE操作系统的最小定制内核,它
47、由操作系统的最小定制内核,它由NK.LIB和和OAL.LIB组成。其中,组成。其中,NK.LIB是预先编译的库文件,它的代码是预先编译的库文件,它的代码与与CPU指令体系结构相关而与具体的外设无关指令体系结构相关而与具体的外设无关;OAL.LIB是是OEM层中的层中的OAL代码编译后的输出。代码编译后的输出。硬件、硬件、OAL及及NK.EXE的关系如下图所示。的关系如下图所示。WinCE 5.0的最小内核约为的最小内核约为250KB。Nk.exe始终运行在较始终运行在较高的优先级和处理器优先级上,除中断例程外,一般不允许操作高的优先级和处理器优先级上,除中断例程外,一般不允许操作系统内的其他线
48、程抢占它的运行。系统内的其他线程抢占它的运行。Nk.exe提供的主要功能包括:提供的主要功能包括:l 处理器调度功能处理器调度功能;l 内存管理功能;内存管理功能;l 进程创建加载功能;进程创建加载功能;l 系统内的通信机制;系统内的通信机制;l 中断处理功能;中断处理功能;l 为其他部分提供核心调用例程为其他部分提供核心调用例程。图形窗口事件系统(图形窗口事件系统(Gwes.exe)图形窗口和事件系统在图形窗口和事件系统在WinCE操作系统运行过程中体现为操作系统运行过程中体现为Gwes.exe进程,它集成了图形设备接口(进程,它集成了图形设备接口(GDI)、窗口管理器)、窗口管理器和事件管
49、理器。和事件管理器。GWES模块是模块是WinCE操作系统高度组件化的部分,它分别操作系统高度组件化的部分,它分别由由USER32和和GDI32两部分组成,两部分组成,USER32用来处理消息、事件用来处理消息、事件及鼠标和键盘等的用户输入,而及鼠标和键盘等的用户输入,而GDI32用来处理图形的屏幕和用来处理图形的屏幕和打印输出等。打印输出等。GWES模块主要由以下三种类型的组件构成:模块主要由以下三种类型的组件构成:l 支持图形驱动的支持图形驱动的GDI组件组件;l 支持窗口控件的支持窗口控件的USER组件;组件;l 支持其他窗口和图形功能的一般支持其他窗口和图形功能的一般GWES组件。组件
50、。GWES与硬件设备的关系如下图所示。与硬件设备的关系如下图所示。设备管理器(设备管理器(Device.exe)设备管理器在设备管理器在WinCE操作系统运行过程中体现为操作系统运行过程中体现为Device.exe进程,负责加载、卸载和管理所有不被进程,负责加载、卸载和管理所有不被GWES.EXE管理的驱动管理的驱动程序。程序。Device.exe与硬件设备的关联关系如下图所示。与硬件设备的关联关系如下图所示。Device.exe由内核加载并连续运行,一旦运行就不卸载。由内核加载并连续运行,一旦运行就不卸载。Device.exe启动时通过注册表加载设备驱动程序。启动时通过注册表加载设备驱动程序