Preemption-Threshold Scheduling是实时系统调度算法中的一种,本文主要分析Preemption-Threshold Scheduling(PTS)的可调度性,怎样在实时系统中应用PTS进行调度,在最坏条件下PTS如何较传统方法改进efficiency等。
- PTS在实时系统中的可调度性分析
实时分析技术让我们知道一个任务集合是否可调度——也就是所有任务在其deadline内都完成了。这需要每个任务的属性{Ti, Ci, Di}, Ti-执行周期(minimum execution period), Ci-执行时间,Di-deadline。
实时系统内核典型采用优先级驱动的调度算法,调度策略可以是静态or动态的。在fixed-priority调度策略中,运行期内不改变任务优先级,经典静态优先级算法是Rate Monotonic (RM), Deadline Monotonic (DM), 和Audsley的 optimal priority assignment algorithms. 而dynamic-priority策略中,相同task的不同jobs(different jobs belonging to same task)可以设置不同优先级,最典型的就是Earliest deadline first (EDF)算法,该算法中,每个job的优先级与其绝对deadline(剩余期限时间)成反比,下面我们讨论这些调度方法的基本可调度试验。
Fixed-priority策略的可调度性分析可以应用level-i busy period分析。定义bound是模拟一个task中所有jobs进行调度的最坏情形,这样的bound产生该task的worst-case response time(WCRT),用Wi表示,如果每个task的WCRT都不大于其各自的deadline,那么我们可以说整个workload是可调度的。那么一个task的WCRT如何得到呢?
一项任务的WCRT可以考虑成最坏情形下单个job从到达到执行的响应时间。它由两部分组成,①相同or高优先级任务创造中断,②低优先级任务导致它阻塞。在动态优先调度策略中,我们只需要保证cpu的的utilization<=1.