论文部分内容阅读
实时操作系统在实时测控系统中的重要性不言而喻。目前国内市场上常用的商业实时操作系统大多是国外的产品,这些产品通常价格高昂,我国迫切需要开发自己的实时操作系统。免费、开放源代码的操作系统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额外负担;采用间隔定时器产生周期性软中断信号;将系统中进程的优先级设置为最高来解决进程抢占问题,减少了非实时任务对实时任务的影响;针对具体系统中任务构成,设计了简化的多任务调度器,该调度器简洁、执行效率高。最后将该方案运用在一套工业测控系统中,通过实际运行证明,系统满足了实时性和稳定性的要求,验证了方案的可行性。