论文部分内容阅读
实时系统具有及时响应、高可靠性、专用性、少人工干预等特征,被广泛应用于工业控制、军事防御、信号处理、航空航天技术等方面。在实时系统研究和应用的各个领域中,实时调度算法都是其中的一个基础问题,针对各种实时问题的解决,都需要在采用某种实时调度算法的基础上,结合该实时调度算法的性质才能更好的证明其可行性,并且实时调度算法的研究也可以很好的启发各种实时问题的解决,因此实时调度算法的研究对实时系统的研究和应用有重要的意义。最早截止期优先(earliest deadline first,简称EDF)调度算法作为最优的动态优先级调度算法,调度策略简单,并且周期任务集的总负载可以达到100%,其研究具有重要的理论和实际意义。EDF算法调度周期任务集的最大可挪用时间在非周期任务调度、软实时任务调度和多处理器容错调度等方面都有重要的应用。通过对最大可挪用时间的性质进行分析,得出了最大可挪用时间等于系统中所有任务的最小可延迟时间且具有最小可延迟时间的任务发生在超周期的第一个繁忙区间等结论。在此基础上,提出一种可延迟时间逼近(delay time approximation,简称DTA)算法,利用EDF算法调度的最优性,通过最小周期任务的可延长执行时间逐次逼近,快速准确的计算最大可挪用时间。该算法的时间复杂度函数只和周期任务集的总负载、周期任务数有关,不需要在整个超周期中计算。现有的硬实时周期任务和非周期任务混合调度算法的目标是为了缩短非周期任务的响应时间,不能判断该调度能否满足非周期任务的时限要求,所以它们都只适用于软实时任务的调度,而不适用于偶发任务的调度。因为EDF算法根据实时任务的截止期进行调度,所以可以直接用EDF算法来统一调度硬实时周期任务和偶发任务,并且具有最优的可调度性。通过计算EDF算法调度过程中的空闲时间和可挪用时间,以及调度偶发任务后对空闲时间和可挪用时间的影响,提出一种空闲挪用时间(idle slack stealing,简称ISS)算法来进行偶发任务的可调度性判定。在多个实时任务之间有共享资源访问时,采用资源访问控制协议可以防止实时任务被无限期的阻塞,但是避免不了优先级反转引起的直接阻塞,还会导致继承阻塞。这些阻塞的过程都是低优先级的任务抢占高优先级的任务运行,打乱了EDF算法的正常调度。通过证明阻塞不会改变EDF调度时的空闲时间分布,并且在一个繁忙区间内,所有周期任务的每次运行最多都只会因为同一个资源的阻塞被推迟一次,然后把阻塞时间看成是挪用时间,根据最大可挪用时间的定义和性质提出了一种阻塞挪用时间(blocking translate stealing time,简称BTS)的可调度性判定条件:只要所有共享资源的最大临界区的长度之和不大于最大可挪用时间,硬实时周期任务集就是可以被调度的。