文中的假设:
本文研究的调度算法是基于可抢占、优先级驱动的前提,包括静态优先级(固定优先级)和动态优先级。
- 所有任务的请求是周期性的,任务的间隔时间是固定的;
- 在下一个任务请求到来之前,该任务必须完成;
- 任务之间相互独立,任务的请求不依赖于其他任务的初始化或完成;
- 任务的运行时间不变,运行时间是指任务在在处理器上执行的时间,不包括被中断的时间;
- 所有的非周期任务单独考虑;非周期任务的执行会占用处理资源;非周期任务没有时限要求。
任务模型
周期任务的描述,定义第i个任务描述
为任务的周期,
为任务的执行时间,请求速率定义为周期的倒数。
静态优先级调度算法(介绍RMS)
调度算法中一个关键的概念是任务的critical instant(关键时刻)。
- Deadline:任务的截止时刻,该任务的下一次请求到来的时刻;
- Overflow:溢出,任务在截止时刻到来时没有完成请求,称此时为溢出;
- Feasible:任务被调度,并且没有overflow发生;
- Response time:响应时间,从请求开始,到该请求响应时间结束(the request and the end of the response to that request.);
- Critical instant:在此时刻任务会具有最大的响应时间;
- Critical instant zone:从关键时刻(critical time到响应时间结束)。
基于以上概念,推导定理:
Theorem 1:当任务发出请求的同时,所有高优先级的任务也发出请求,认为此时刻为critical time。
Theorem 2:对于一个静态优先级的任务集,如果存在可执行的调度算法,那么对于RM调度算法,该任务集一定可以调度。
Theorem 3:对于两个固定优先级的任务,其CPU资源利用率上界为 。
Theorem 4:对于m个具有固定优先级的任务集,其CPU资源利用率上界为
参考文献
Liu C L , Layland J W . Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment[J]. Journal of the ACM, 1973, 20(1):46-61.