论文部分内容阅读
Microsoft公司的嵌入式操作系统Windows CE .NET是一个十分流行的嵌入式系统。它可以使用应用程序开发工具eVisual C++,强大的开发平台Platform Builder,它丰富模块化的组件可以按需求定制以满足不同环境。应用领域极为广泛,使得Windows CE .NET成为嵌入式操作系统市场上占有率第一的产品。然而Windows CE .NET也存在一些不足,它的核心庞大而且复杂,无法装入小存储空间的嵌入式系统中;其核心的实时性能也比较弱,在一些实时性要求苛刻的领域不能胜任。针对这样的问题,我们提出了为Windows CE .NET裁减出一个微内核的项目,其微内核被称作Mini Windows CE。该内核要具有较小的体积,较高的实时性能,能够适用于小空间高实时要求的领域。首先,本文对嵌入式操作系统实时性研究的几个关键问题进行了讨论,针对Windows CE .NET系统存在的一些不足,为了提高系统实时性,提出了两项改造方案:中断机制改造及线程调度机制改造。然后,详细剖析了Windows CE .NET系统的几个实时性相关模块,在深入了解了Platform Builder编译系统的基础上,整理出系统的核心源代码组织结构,并分别对中断机制与线程调度机制的源代码进行了详细的分析。接下来,分别详细阐述并实现了中断机制改造和线程调度机制改造。系统发现中断之后,处理的过程将分两部分实现:核心的ISR(Interrupt Service Routine)和用户线程IST(Interrupt Service Thread),优化中断现场保护将减小ISR延迟与IST延迟,提高计时器分辨率将线程的等待时间从2ms缩小到1ms,从而减小了ISR延迟。Window CE .NET系统的线程管理机制采用了基于时间片轮转的优先级调度算法,我们将线程分为实时与非实时两类,前者采用EDF(Earliest Deadline First)动态调度算法,后者则采用系统原有的调度算法。此二阶段调度算法将更有效的满足实时任务的需求。最后,本文利用ILTiming和OSBench两个测试工具,分别对改造前后系统的中断延迟计时和调度性能计时进行了测试,验证了两项方案的可行性。