摘要:
该文针对通用Linux内核在实时性能上的诸多问题,充分利用有关实时操作系统的研究成果与实现方法,独创性地提出了一种分层资源内核(Hierarchical Resource Kernel)的调度框架,并基于该框架实现了一个Linux的实时变种HR-Linux.首先,我们总结了Linux实时化改造工作的主要成果,概括出Linux实时化的四种途径,即:兼容内核,双内核,核心内核以及资源内核. 在这一调度框架里,我们将传统的内核调度器分成了两个子层,即资源接入层和资源调度层;从而在一个统一的调度机制下,实现了对不同调度策略的灵活支持——内核调度器的分层设计是HR-Linux的第一大特点.另外,我们在内核空间实现了一个资源分配器,它与调度翻译器一起组成了我们的资源接入层,并根据具体的调度策略完成实时应用对CPU等系统资源的申请与准入控制,实现了基于不同资源集的应用程序资源隔离——基于资源预约和资源集的资源分配与管理是HR-Linux的第二大特点.此外,我们将资源调度子层中的核心调度器设计成一种多级调度模型,有效地实现了对非周期任务的调度支持,将周期任务与非周期任务的调度有机地融合——支持非周期任务调度的多级资源调度器(MRD)是HR-Linux的第三大特点.同时,我们也利用数学工具对两种典型的实时调度算法:速率单调算法RMA和最早期限优先算法EDF,进行了可调度性分析,在此基础上仔细讨论了优先级倒置问题及其解决方法——对资源同步过程中优先级倒置问题的解决是HR-Linux的第四大特点.其次,我们对内核可抢占,中断线程化等实时技术进行了探讨,并根据Linux内核中基于对称多处理器(SMP)的自旋锁机制,实现了一种全局互斥抢占锁——内核的可抢占是HR-Linux的第五大特点.最后,我们也对中断驱动机制的一个共同问题即接收活锁进行了分析,给出了一种基于中断线程化的反馈控制活锁避免解决方案. 在论文的结尾,我们采用了实验的方法,对标准的Linux内核,Linux实时变种RTAI和HR-Linux内核进行了比较.
展开