论文部分内容阅读
实时操作系统在实时测控系统中的重要性不言而喻。目前国内市场上常用的商业实时操作系统大多是国外的产品,这些产品通常价格高昂,我国迫切需要开发自己的实时操作系统。免费、开放源代码的操作系统Linux 的出现,为我们改变这种被动的局面带来了契机。国外已经开发出一些实时Linux 并在实际应用中取得了成功,在国内这方面的研究还处于起步阶段,将实时Linux 应用于工业PC 实时测控系统中的成功示例并不多见。在这种背景下,本文论述了作者对于Linux 实时化的研究和实践工作,工作重点在于增强Linux 的实时性以及实时测控系统的开发。本文首先对Linux 的内核时钟和调度机制进行了剖析,着重分析了Linux 对于实时和非实时进程调度的算法和策略,进而总结了影响Linux 实时性能的主要原因。然后介绍了Linux 实时化的主要技术。对Linux 的实时化改造通常通过底层编程实现,底层编程又分为对Linux 的外部扩展和对内核的内部改造。分析比较了当今主流实时Linux 操作系统的实现思想。着重研究了最适合应用在工业测控领域中的硬实时Linux 系统的典型代表RTLinux 的实现原理。RTLinux 采用将系统定时器8254 设置成单次触发(one-shot)的模式来提高系统时钟精度,同时又避免了频繁中断CPU 带来的开销。本文对这种单次触发模式下8254 初值置入算法进行了研究。在此基础之上开发了一套基于RTLinux 的实时测控系统。在以上研究的基础上,结合具体的工业PC 系统,提出了一种新的Linux 实时化方案。该方案对内核中影响系统实时性的部分进行了裁减,使系统运行更加快速、稳定;引入UTIME 软件包,并对其进行了改进,将定时器8254 设置为one-shot模式,既提高了系统时钟精度,又减轻了CPU 额外负担;采用间隔定时器产生周期性软中断信号;将系统中进程的优先级设置为最高来解决进程抢占问题,减少了非实时任务对实时任务的影响;针对具体系统中任务构成,设计了简化的多任务调度器,该调度器简洁、执行效率高。最后将该方案运用在一套工业测控系统中,通过实际运行证明,系统满足了实时性和稳定性的要求,验证了方案的可行性。