论文部分内容阅读
实时系统是一类具有时间限制的系统,系统的正确性不仅仅取决于计算结果的正确性,也取决于得出结果的时间。传统的实时系统大多属于硬实时系统,这种系统一般运行环境明确、任务结构单一。随着计算机技术的迅猛发展,越来越多的实时应用开始进入个人桌面系统,在这种实时任务和非实时任务共同存在的情形下,传统的实时系统已经无法满足应用需要,由此出现了新的实时系统——软实时系统。 随着Linux操作系统的发展,其被应用于越来越多的领域,相当多的应用对Linux操作系统的实时性提出了一定的要求,而Linux操作系统在软实时性方面支持仍然有所欠缺,各种基于Linux的软实时实现方案相继出现。 本文的主要工作是设计并实现面向具有自主知识产权的北大众志Pkunity系统芯片平台的Linux内核的软实时性功能。从降低调度器的调度延迟方面分析当前系统软实时性不足的重要原因,针对相应模块提出设计方法。本文主要从内核抢占、中断线程化以及自旋锁转化等三个方面实现系统软实时性功能的设计。其中,内核抢占在中断返回时进行抢占式调度,以此降低因中断处理不支持抢占而造成的调度延迟;中断线程化为中断上半部创建内核线程,系统可以对中断线程进行调度,减少中断处理不可抢占区域的执行时间;将自旋锁转化成可抢占的锁,使得内核可以抢占持有时间较长的、由自旋锁保护的临界区,从而提升调度器的响应速度。这三个方面都改善了调度器的调度延迟,从而为系统提供软实时性的支持。 本文根据提出的面向UniCore32平台的Linux操作系统的软实时性设计方案,实现了面向UniCore32平台的Linux操作系统的软实时性功能。通过实验评测了当前的设计与实现对系统软实时性的影响,说明当前工作提升了系统软实时性,具备了软实时的能力。