论文部分内容阅读
随着硬件性能的提高,实时应用对操作系统的性能和功能也提出了越来越高的要求。而现有商业RTOS(Real-TimeOperatingSystem)不是功能过于简单就是价格过于昂贵,缺少一个开放的、标准的、有广泛支持的、高效而又廉价的实时操作系统,因此很多机构开始研究将功能强大的通用操作系统改造成实时操作系统。
Linux具有功能强大、免费、开放源码、支持多种硬件平台、模块化设计、函数接口符合国际和工业标准等特点,成为研究的首选操作系统。Linux不仅深得IBM、HP和Sun等国际IT巨头的厚爱,同时也博得了各国政府的支持。Linux的调度机制决定了它是一个分时系统,其不可抢占的内核、粗糙的时钟粒度、频繁的关中断、虚存和其它缓冲机构的设置,使得Linux的实时性不强。
对Linux进行实时改造主要有两种技术方案。一种是对标准Linux内核进行直接修改,通过减小操作系统的调度延迟,优化Linux的实时性能,达到软实时的标准;另一种是采用双内核方案,增加一个实时内核,所有有实时要求的任务都在这个实时内核上运行,标准Linux内核作为这个实时内核优先级最低的一个进程,这种方式可以实现硬实时。
RTAI是采用双内核结构对Linux进行实时改造典型方案。本文研究了RTAI的原理和实现机制,生成和测试RTAI实时内核原型,进而分析了RTAI的不足。由于RTAI缺乏对多种调度算法的支持,限制了RTAI的应用范围,于是需要对RTAI的调度算法进行扩展。除了RTAI自带的基于静态优先级的调度算法,增加了RM(单调速率)和EDF(最早截至时间优先)调度算法。RTAI能够根据当前任务集的属性来选择调度这个任务集的调度器。这样能在各种调度算法之间灵活进行选择,扩大了RTAI的应用范围。