论文部分内容阅读
随着硬件性能的提高,实时应用对操作系统的性能和功能也提出了越来越高的要求。而现有商业RTOS(Real-Time Operating System)不是功能过于简单就是价格过于昂贵,缺少一个开放的、标准的、有广泛支持的、高效而又廉价的实时操作系统,因此很多机构开始研究将功能强大的通用操作系统改造成实时操作系统。Linux具有功能强大、免费、开放源码、支持多种硬件平台、模块化设计、函数接口符合国际和工业标准等特点,成为研究的首选操作系统。但是Linux的调度机制决定了它是一个分时系统,其不可抢占的内核、粗糙的时钟粒度、频繁的关中断、虚存和其它缓冲机构的设置,使得Linux的实时性不强。对Linux进行实时改造主要有两种技术方案。一种是对标准Linux内核进行直接修改,通过减小操作系统的调度延迟,优化Linux的实时性能,达到软实时的标准;另一种是采用双内核方案,增加一个实时内核,所有有实时要求的任务都在这个实时内核上运行,标准Linux内核作为这个实时内核优先级最低的一个进程,这种方式可以实现硬实时。本文研究了采用双内核结构对Linux进行实时改造的典型方案RTAI,分析了其基本原理和实现机制,并且生成和测试了其实时内核原型,进而指出了其存在的不足,尤其是调度算法方面的不足。针对其多处理器调度算法存在的不足,提出了一种多处理器分组实时调度算法,该调度算法充分结合了多处理器局部调度算法和全局调度算法的优点,并且弥补了局部调度算法在M个处理器系统中优先级最高的M个任务可能得不到优先调度的不足,同时也克服了全局调度算法中存在的调度时间过长的问题。最后在RTAI内核中实现了RM(单调速率)和EDF(最早截至时间优先)调度算法以及多处理器分组调度算法。RTAI可以将任务分配到指定的处理器分组,同时各个分组也可以选择各自的调度算法。验证表明,多处理器分组调度算法能有效的提高RTAI在多处理器系统中的实时性,扩大了RTAI的应用范围。