论文部分内容阅读
实时操作系统在实时测控系统中有着举足轻重的地位和作用,一个实时系统能否达到预期的目的和效果往往取决于实时操作系统性能的优劣。而实时操作系统中的关键技术仅仅被世界上为数不多的几个大公司所掌握。Linux的出现给我们改变这种处处受制于人的局面带来了希望。在这种背景下,本文论述了作者在硕士学位论文工作期间将Linux运用于IPC测控系统所做的研究工作,主要的工作围绕着提高Linux操作系统的实时性展开。Linux是一个主要为工作站而设计的操作系统,其进程调度机制设计的出发点是优化一般情况;因此,要将其运用于实时测控系统,必须对它进行实时化改造。一般说来,有两种途径来实现Linux的实时化改造,第一种方法是通过POSIX(the "Portable Operating System Interface")方法,另一种方法是通过底层编程的方法实现。前者把具有实时处理能力的POSIX.1b函数移植到Linux上来,实现起来难度较大,其前景不被看好;后者遵循着这样的原则:尽量减少对Linux内核的修改,在Linux内核中影响实时性能的地方进行改进或增加控制从而实现Linux的实时化。现有的Linux实时化成果中从RTLinux、KURT到RTAI都采用的是通过底层编程的方法来实现。本课题也同样采用了这种方法,在学习现有的Linux实时化成果的基础上,提出了一种新的实时化方案。这种新的实时化方案利用了RTLinux的双内核体系结构和中断虚拟机技术,将标准Linux进程作为实时内核的一个优先级最低的任务进行调度;同时还利用了KURT中UTIME软件包将定时/计数器8254置为One-shot工作模式,从而既提高了操作系统的时钟频率,又解决了CPU额外负担过重的问题。本课题将这二者有机的结合在了一起,与用户根据实际系统而设计的调度器一道构成了实时内核。另外,本课题还提出了实时内核与标准Linux各自采用一个时钟源的思想;并对8254工作于One-shot模式时对应的初值置入算法进行了研究,这对实际运用有着一定的指导意义。最后,作为Linux在IPC测控系统中的具体运用,也作为方案的验证,运用课题中所设计的调度器完成了对一套具体IPC测控系统中的若干任务的调度。