介绍
MicrosoftWindowsCE
快速反应的嵌入式应用常常管理严格的时间反应。例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。
为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。
实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internetnewsgroupcorprealtimegroup中。实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。如果没有达到系统时间限制条件,系统也是失效的。
搞清楚实时系统和实时操作系统(RTOS)的区别至关重要,实时系统代表所有系统组成设备——硬件,操作系统和应用——它需要达到系统的要求,实时操作系统(RTOS)只是整个实时系统的一个组成部分,它必须提供足够的功能以确保整个实时系统达到要求。
同样,搞清快速操作系统和实时操作系统之间区别,也很重要,对于一个RTOS虽然达到全面要求十分有用,但并不是它自己达到这种要求。Internetneusgronpcornp.realtime列举了作为一个实时操作系统,必须达到的要求:
OS(操作系统)必须是多线程和优先级之分。
OS必须支持线程优先级。
一个优先级继承的系统必须存在。
OS必须支持可预测的线程,同步发送机理。
另外,OS的行为必须是可预测的,这意味实时系统的开发者必须对系统中断级,系统调用和分时了如指掌:
必须知道OS和设备驱动器的中数据匹配最大时间。
设备驱动器用来处理一个中断最大时间和关于这些驱动器的中断申请信息必须清楚。
中断响应(从中断到运行时间),必须可预测并满足功能要求。
每次系统调用时间必须可以预测,并且独立于系统的对象数目。本篇论文论述了微软WindowsCE操作系统是如何达到一个实时系统的要求,更有意义的是,WindowsCE保证一个时间的上限,它在收到中断后开始一个实时的优先级线程。本论文论述了对特定参考平台的中数据响应时间,参考为有HinathiSH3的微处理器的“Odo”平台。
MicrosoftWindowsCE
概论
微软WindowsCE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。WindowsCE可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬盘压缩层(HAL),(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。以免与微软的WindowsNT操作系统HAL混淆)
不象其它的微软Windows操作系统,WindowsCE并不是代表一个标准的相同的对所有平台适用的软件。为了足够灵活以达到适应广泛产品需求,WindowsCE采用标准模式,这就意味着,它能够由一系列软件模式做出选择,从而使产品定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的最小模式,OEM能够减少存储脚本和操作系统的运行。
WindowsCE关于VC++5.0开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,以使OEMS能够对特定的硬件平台使WindowsCE标准定制。嵌入式工具包也包括设备驱动包(DDK)和软件开发包(SDK),DDK提供了关于写驱动器的附加文本,SDK提供库、头文件、样本代码、文本以允许,开发者对基于WindowsCE的平台进行写操作。WindowsCE提供了相同的程序界面,以用来为其它的视窗操作系统开发功能,例如,WindowsCE版本1.01支持大约1000个微软的Win32API函数的其中500个。这就意味着大量不同类的工具,第三方书籍,关于Win32开发者训练教程,可以替代或为WindowsCE系统的开发者所用。
实时系统的开发者能够使用,关于VDFF5.0的嵌入式工具包,以把操作系统转移到特定的平台,并为这个平台开发附加设备驱动器和实时功能。
线程和线程优先权级
WindowsCE是有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行WindowsCE支持最大的32位同步进程。一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的系统资源限定。
WindowsCE利用基于优先级的时间片演算法以安排线程的执行,WindowsCE支持八个不同的优先级,由0到7,0代表最高级,它在头文件Winbasw.h中定义。
优先级描述
0
(最高级)关键的线程优先级
(最高优先等级)
1最高线程优先级
2高于通常的线程优先级
3通常线程优先级
4低于常规线程优先级
5最低线程优先级
6高于IDLE的线程优先级
7
(最低)IDLE线程优先级
(最低优先级)
级别0和1通常做为实时过程和设备驱动器,级别2-4做为线程和通常功能,级别5-7做为是低于其它功能级别,注意级别6是目前状态并有稳定联接。
优先权唯一的取决于线程优先级,拥有高级优先权的线程安排优先运行,同一优先级的线程,以循环优先先级方式运行,即每个线程接受定制的时间或时间片,定量时间默认值为25毫秒(WindowsCE2.0支持在MIPS平台更改定量时间)。较低优先权的线程,要直到较高级线程完成之后再运行,也即直到他们或者放弃或停止。一个重要的例外是最高优先级的线程(级别0,关键时间优先级)不与其它的线程共享时间片,这些线程连续执行直到他们完成。不象其它的微软窗操作系统,WindowsCE是固定不能改变,它不匹配基于这引进优先级的中断,他们能够暂时改动,但仅能通过WindowsCE内核以避免所谓的的“优先权倒置”。
优先权倒置指的是当它们同时竞争同一资源时,低优先级的线程,阻碍了高优先权线程对资源的利用。为了改正这种局面并解放较高优先权的线程,WindowsCE允许低级优先权继承,严格的线程优先权,并且运行较高优先级直到它释放所用资源。