论文部分内容阅读
随着嵌入式系统应用对计算资源需求的不断增长,多核处理器成为现代实时嵌入式系统领域发展的重要方向之一。虽然从硬件角度来看,处理器只是从单核被替换为多核,但是这种改变却给实时系统分析工作带来了更大的挑战。由于单核处理器的架构对软件设计者是透明的,因此系统性能瓶颈问题主要由硬件设计者来负责。但是对于多核处理器平台,软件设计者可以根据处理器架构重新设计软件架构和参与管理核计算资源。因此根据软硬件协同设计原则,软件设计者也开始承担解决系统性能问题的责任。另外,为了更充分地利用多核处理器的计算资源,系统设计者常常将不同关键性的任务集成到同一硬件平台上。所谓的关键性是指:任务的某种安全(Safety)属性,即在不同程度异常情况下保证正确性的级别。然而简单地将不同关键性任务集成到一起也会给系统引入相应的安全(Safety)风险,即低关键性任务的异常行为可能对高关键性任务的执行产生干涉。例如,低关键性任务由于优先级配置错误而抢占高关键性任务的核资源,致使高关键性任务错失其截止期,引起严重的灾难后果。因此,对于多核混合关键性任务模型,如何减少甚至消除不同关键性任务之间因共享资源而产生的干涉,成为研究者必须要解决的问题。在随后的研究中,研究者利用基于虚拟化技术的隔离策略,将不同关键性任务进行资源层面上的隔离。例如,高关键性和低关键性任务分别被部署在不同的虚拟机中,以达到具有不同属性的任务之间隔离的目的。但是这些传统的虚拟化技术可能会产生严重的时间、内存和功耗等方面的开销问题,尤其对于计算资源和内存资源有限的嵌入式系统来讲,这些问题将更加严重。因此根据上述问题,本文围绕“如何为多核混合关键性系统构建高效的轻量级资源隔离技术”这一最终目标,按照由简单到复杂的原则来展开研究:(1)针对如何设计高性能多核处理器实时调度算法问题,本文提出了一种基于作业优先级分配的全局调度算法JPA(Job-level Priority Assignment),并且通过优化该算法来保证多核处理器系统在可调度性方面和运行时性能方面的服务质量。JPA算法可以被看作是固定任务优先级算法和EDF算法两者的一般性扩展,即,当使一个任务所有作业的优先级设置高于或低于另一个任务的所有作业时,JPA就相当于固定作业优先级算法;当系统所有作业的优先级都严格按照截止期来设置,此时JPA相当于EDF调度算法。本文通过引入有效变量JPAz,使得JPA算法不仅考虑可调度性性能,而且还权衡了运行时性能。通过实验对比分析,我们发现即使在常数Z被设置的非常小的情况下,有效变量JPAZ依然可以达到接近JPA的良好性能(例如Z=4,即,每个任务优先级和索引列表的容量最多为4),因此,可以得出结论,在全局调度中任务的可调度性主要取决于一个繁忙区间内很少量的作业,并且剩余的作业使用最原始的调度算法依然不会导致其错失截止期。本文还巧妙地协调算法的离线设计和运行时管理,解决了算法在设计阶段时作业信息的不完整性给探索偶发任务系统的作业优先级顺序带来的问题。JPA算法虽然没有解决具有不同属性的任务之间隔离问题,但是依然为接下来的多核处理器系统实时调度分析工作奠定了基础;(2)针对多核处理器DAG模型的实时调度问题,本文提出了一种基于轻量级虚拟化策略的分层资源隔离技术,以此来达到在保持高资源利用率的情况下不同DAG任务之间隔离的目的。对于实时DAG任务模型,通常最优的调度算法是联合调度算法,虽然它具有较好的可调度性性能,但是由于分配核计算资源时不够精细,可能会产生资源浪费的问题,例如,在最差情况时会浪费一半的核计算资源,这在计算资源敏感的系统当中是不可接受的。因此本文提出了一种资源更精细化分配的分层调度策略:(1)调度DAG任务到虚拟核上执行;(2)调度虚拟核到物理核上执行。该分层策略为每个DAG任务分配一些可独自占用的虚拟核资源(且任务运行时只能在这些虚拟核上执行)。根据适当的描述虚拟核提供资源的特性,本文利用扩展的联合调度算法独立地分析每个DAG任务。另外,虚拟核在运行态时被调度到物理核,这有效地使不同的DAG任务共享物理核资源。因此,本文提出的分层调度方法继承了联合调度和全局调度的优点,从而实现更好的可调度性,从真实负载和模拟负载双重实验,可以看出,虽然引入分层调度会降低运行时系统调度性能,但这种影响是可以忍受的,而且,本本文提出的方法在分析具有约束截止期属性的DAG任务系统时,比其它最优的分析技术(G-MEL和SF-XU)具有更好的性能;(3)针对非常复杂的混合关键性DAG任务模型实时调度问题,本文将轻量级虚拟化技术扩展到混合关键性系统,用以解决具有不同属性的复杂任务模型资源隔离的需求。对于混合关键性实时DAG任务模型,研究者们提出了不同的联合调度算法,这些算法相同之处是都会按照系统不同的关键性状态,给任务分配可独自占用的核计算资源,而它们之间的区别是不同的算法使用了不同的资源分配规则。但是这些算法面临着与非混合关键性DAG任务模型的联合调度算法同样的资源浪费问题。从实验结果分析,本文提出的SFMC策略在可调度性方面的性能优于FMC-Li策略。当m=8且标准利用率大于0.7时,使用FMC-Li策略调度的任务集已经很难被成功调度了,但是SFMC策略即使在标准利用率为0.9的情况下依然能保持超过90%的接受率。这是由于本文基于虚拟化策略的资源隔离技术引入混合关键性系统模型,通过一个轻量级虚拟化技术的中间层,在系统的不同关键性状态下,可以更细粒度的分配核计算资源,从而提升系统的资源利用率。综上所述,本文针对基于虚拟化策略的多核混合关键性系统调度技术研究,为现代多核嵌入式系统的设计与分析提供了可参考的理论依据与技术方法。