Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment

Author

  • C. L. Liu, Project MAC, Massachusetts Institute of Technology
  • Hames W. Layland, Jet Propulsion Laboratory, California Institute of Technology

Article URL

https://www.cs.ru.nl/~hooman/DES/liu-layland.pdf

Introduction and Background

電腦在工業製程的控制與監測上的應用正快速增加,而且未來只會更普遍。在這類系統裡,電腦常常不是只做一般運算,而是必須負責一些有嚴格時間限制的控制與監控工作。有些應用環境中,電腦同時要處理兩類工作,一類是時間關鍵的控制與監測任務,另一類則是不具時間關鍵性的批次工作;但也有另一類系統,完全沒有非即時性的工作存在,整台電腦都專門用來執行時間關鍵任務。作者把這種後者稱為 pure process control,本文的分析就是以這種環境作為主要研究對象。

本文將探討兩種適用於這類系統的排程演算法,而且兩者都有兩個共同特徵:第一,它們都是 priority-driven,也就是由優先權決定哪個 task 先執行;第二,它們都是 preemptive,也就是只要有更高優先權的 task 到來,正在執行的較低優先權 task 就會立刻被中斷。這兩種演算法中的第一種採用固定優先權指派,作者指出它可以讓處理器使用率達到大約 70% 甚至更高;第二種則採用動態優先權指派,能進一步達到處理器的完全利用。此外,作者也提到,文中還會討論這兩種方法的混合形式。換句話說,Introduction 的重點是在告訴讀者:這篇論文要處理的是純 hard real-time 控制系統中的 task scheduling 問題,並且要比較固定優先權與動態優先權兩種排程思路。

程序控制電腦會執行一個或多個控制與監測功能,例如天線追蹤太空船便是一個典型例子。每一個功能背後都不是單一動作,而是由一組或多組 task 所組成。有些 task 會因為外部設備事件而被觸發,有些則是因為其他 task 中發生的事件而被觸發。不過不管來源是什麼,task 都有一個共同特性,就是不能在觸發事件發生之前先執行,而且每個 task 都必須在某個固定時間限制內完成。作者強調,這種必須保證在期限內完成服務的環境,就是 hard-real-time;它和 soft-real-time 的差異在於,soft real-time 只要求整體反應時間的統計表現可接受,但 hard real-time 則要求每個任務都必須得到明確保證。

hard real-time 系統中的任務具有明確的截止時間,不能只用傳統 multiprogramming 或 time-sharing 的觀點來看待;而既有 real-time 相關文獻又不是假設過於理想化,就是只談管理或框架而缺乏具體演算法,所以需要一套更系統化的理論,來分析在這種環境下 task 是否能被安全排程,以及哪種優先權指派方式才是最合理的。

Environment

Purpose

為對Hard-Real-Time Scheduling做數學分析,需先為其建立模型。

Basic Assumption

  1. 週期性
    • 所有 hard deadline task 的 request 都是 periodic
    • 相鄰兩次 request 的時間間隔固定不變。
    • 也就是每個 task 都有固定週期。
  2. 時限性
    • 每個 task 必須在它的 下一次 request 發生前完成
    • 也就是 deadline 等於該 task 的 request period。
    • 這裡只考慮 run-ability constraint,不考慮更複雜的 deadline 型態。
  3. 獨立性
    • 某個 task 的 request 不依賴其他 task 的初始化或完成。
    • 也就是 task 之間沒有直接的觸發或完成相依關係。
  4. 時間不變性
    • 每個 task 的 run-time 對自己而言是固定值,不隨時間改變。
    • 這裡的 run-time 指的是:
      • 不被中斷情況下
      • 處理器執行完這個 task 所需的時間
  5. 非特殊性
    • 系統中的 non-periodic tasks 被視為特殊用途。
    • 例如:
      • 初始化程序
      • 故障恢復程序
    • 它們執行時會暫時排擠 periodic tasks。
    • 但它們自己不具有 hard critical deadlines

Mathematic Modeling

在上述定義下,每個任務皆可被兩個數字所描述:

  • request period: TiT_i
  • run-time: CiC_i

也就是說,一個周期性任務可被表示為:

τi=(Ti,Ci)\tau_i=(T_i,C_i)

Request Rate

Request Rate指的是任務被請求的頻率,也是請求週期的倒數:

request rate=1Tirequest\space rate=\frac{1}{T_i}

Definition of Scheduling Algorithm

“A scheduling algorithm is a set of rules that determine the task to be executed at a particular moment.”

The feature of Scheduling Alorithm in which this paper study

  1. Preemptive:若有更高優先權的 task request 到達
    • 正在執行的 task 會立刻被中斷
    • 新到的高優先權 task 馬上開始執行
  2. Priority driven:哪個 task 先執行,由其優先權決定

Three types of priority-based scheduling

  1. Static Scheduling
    • 若 task 的 priorities 一次決定後就固定不變,稱為 static scheduling
    • 這也叫做 fixed priority scheduling
  2. Dynamic Scheduling
    • 若 task 的 priority 可能會隨著不同 request 改變,稱為 dynamic scheduling
  3. Mixed Scheduling
    • 若有些 task 的 priority 固定,但其他 task 的 priority 會變動,稱為 mixed scheduling algorithm

A Fixed Priority Scheduling Algorithm

  • Purpose:推導能使靜態排程最佳化的優先權分配規則

Noun Explanation

  • Deadline:某任務請求的deadline指的是該任務的下次週期性請求的起始時間點。
  • Overflow:如果某任務在超過deadline之後仍未被完成,如果deadline時間點為t時,則我們會說在時間t發生overflow。
  • Feasible:若一個排程演算法是feasible的,則該演算法不會導致任何overflow發生。
  • Response Time:某指定任務從被請求當下到該請求被回應後的結束時間點,兩者之間的時間跨度稱為response time。
  • Critical Instant:某任務中具有最大response time的request,該request被送出的當下時間點被稱為critical instant。
  • Critical Time Zone:某任務的critical instant到處理完該任務請求之回應的結束時間點,兩者之間的時間區段被稱為Critical time zone。

Theorem 1

Description

“A critical instant for any task occurs whenever the task is requested simultaneously with requests for al l higher priority tasks.”

“Critical Instant發生在某任務與比該任務具有更高優先權之任務,兩者同時被請求。”

Proof

假設 τ1,τ2,,τm\tau_1,\tau_2,\cdots,\tau_m表示一組以優先權排列順序的任務,且 pri(τm)<pri(τi)pri(\tau_m)<pri(\tau_i),考慮 τm\tau_m某次請求發生於 t1t_1,以及 τi\tau_i在區間 [t1,t1+Tm][t_1,t_1+T_m]內的多次請求。

由於 τi\tau_i 具有較高優先權,因此每次request都能搶佔 τm\tau_m ,並延後其完成時間。若

若將τi\tau_i的第一次 request 時刻 t2t_2 向前移動,則 τm\tau_m 的完成時間不會提早,只會維持不變或進一步延後,因此當 t2=t1t_2 = t_1 時,τi\tau_iτm\tau_m 的干擾最大。對所有高優先權 tasks 重複同樣推理,即可得知某 task 的 critical instant 發生在它與所有高優先權 tasks 同時被 request 的時刻。

使用歸納法,對於所有 τi where i=2,,m1\tau_i\space where \space i=2,\cdots,m-1 重複同上推理,可證本定理成立。

Theorem 2

Description

“If a feasible priority assignment exists for some task set, the rate-monotonic priority is feasible for that task set.”

“如果對於某個任務集存在可行的優先權分配方案,則速率單調優先權對於該任務集也是可行的。”

Proof

考慮普遍的排程案例,在此假設有兩任務 τ1,τ2\tau_1, \tau_2、完成各任務所需時間為 C1,C2C_1,C_2 。另 T1,T2T_1, T_2 為兩任務各自的週期,且 T1<T2T_1<T_2 。先考慮第一個情況 pri(τ1)>pri(τ2)pri(\tau_1)>pri(\tau_2) ,根據Theorem 1,要使排程feasible,必須滿足以下不等式:

IMG_1831.JPEG

根據上圖可以發現:

  • τ1\tau_1τ2\tau_2單次週期結束前完成最大數量的任務之所需消耗時間:T2T1C1\left\lfloor\frac{T_2}{T_1}\right\rfloor C_1
  • τ2\tau_2在單次周期內完成任務所需時間:C2C_2

因此τ2\tau_2完成單次任務所需最大時間 T2T_2 滿足以下不等式(1):

T2T2T1C1+C2T_2\geq \left\lfloor\frac{T_2}{T_1}\right\rfloor C_1 +C_2

考慮第二種情況 pri(τ1)<pri(τ2)pri(\tau_1)<pri(\tau_2)

IMG_1832.JPEG

根據上圖可以發現:

  • τ1\tau_1完成單次任務所需時間:C1C_1
  • τ2\tau_2搶佔τ1\tau_1後優先完成任務所需時間:C2C_2

因此τ1\tau_1完成單次任務所需最大時間 T1T_1 滿足以下不等式(2):

T1C1+C2T_1\geq C_1+C_2

對不等式(2)等號兩邊同乘 T2T1\left\lfloor\frac{T_2}{T_1}\right\rfloor ,可得:

T2T1T1T2T1C1+T2T1C2\left\lfloor\frac{T_2}{T_1}\right\rfloor T_1\geq \left\lfloor\frac{T_2}{T_1}\right\rfloor C_1+ \left\lfloor\frac{T_2}{T_1}\right\rfloor C_2

考慮題目條件 T2>T1T_2>T_1 ,因此:

T2T2T1T1T2T1C1+T2T1C2T2T1C1+C2T_2\geq \left\lfloor\frac{T_2}{T_1}\right\rfloor T_1\geq \left\lfloor\frac{T_2}{T_1}\right\rfloor C_1+ \left\lfloor\frac{T_2}{T_1}\right\rfloor C_2 \geq \left\lfloor\frac{T_2}{T_1}\right\rfloor C_1+ C_2

上述數學式可簡化為:

T2T2T1C1+C2T_2 \geq \left\lfloor\frac{T_2}{T_1}\right\rfloor C_1+ C_2

由於不等式(2)可推導出不等式(1),這表示兩任務不管誰優先權高,若滿足上述條件,皆可使排程可行。這代表周期較高的任務不一定要被配為最高優先權;週期低的任務也可以是最高優先權。以上優先權分配法被稱為 rate-monotonic priority assignment ,此分配法可以解決其他固定優先權分配法不能排程的任務集。所以,要證明定理2,僅需以下幾段話就能滿足:

假設 τ1,τ2,,τm\tau_1,\tau_2,\cdots,\tau_m 為某特定固定優先權分配法排程可行、大小為m的任務集。根據優先權排序,對於排序中兩相鄰優先權對應的任務 τi,τj\tau_i,\tau_j 。在rate-monotonic優先權分配法中,若 Ti>TjT_i>T_j ,則就算對調兩任務的優先權,排程仍維持可行。根據上述方式,讓rate-monotonic優先權分配法對任務集中依優先權排序,將兩兩成對的兩任務交換優先權,皆滿足排程可行,因此定理2得證。

Achievable Processor Ultilization

Basic Concept

對於單一任務,假設其完成時間為C、週期為T,則該任務在處理器中的使用率為 CT\frac{C}{T}。若有一由m個任務所組成的任務集,該任務集的使用率為:

U=i=1mCiTiU=\sum^m_{i=1}{\frac{C_i}{T_i}}

若要透過直接調整 Ci,TiC_i,T_i 以提高使用率,則必須先確保調整後的所有任務在critical instant時仍需於deadline前完成。

若要精確地找出使用率最大能調到多少,則必須先定義fully utilize:當某任務集在某優先權分配下,是可行的,且若當增加該任務集中任一任務之完成時間,該優先權分配會變為不可行時,則此任務集會被稱為Fully Utilize。

為了找出最大使用率,且在該使用率下能保證該任務集之優先權分配是可行的,我們必須找出least upper bound:

  • 對於 rate-monotonic priority assignment:考慮任務集中所有任務之所有可能的請求周期與完成時間,使用rate-monotonic priority assignment所得的使用率之最大下界,亦即所有可能的最大使用率之最小下界。
  • 對於 given fixed priority assignment:所有使得處理器能fully ultilize的所有任務集之所有使用率的最小值。

若使用率在 least upper bound 之內 ⇒ 保證可行 ; 若使用率在 least upper bound 之上 ⇒ 不保證所有任務集可行。

Theorem 3

Definition

“For a set of two tasks with mixed priority assignment, the least upper bound to the processor utilization factor is U=2(2121)U=2(2^{\frac{1}{2}}-1)

Proof

τ1,τ2\tau_1,\tau_2 為兩個周期分別為 T1,T2T_1,T_2 、執行時間為 C1,C2C_1,C_2 的任務。假設 T2>T1T_2>T_1 ,根據 rate-monotonic priority assignment, pri(τ1)>pri(τ2)pri(\tau_1)>pri(\tau_2)。在 critical time zone 內調整 C2C_2 使 fully ultilize 所有處理器可處理時間,則會有兩個case發生:

IMG_1833.JPEG

在case 1 中,以時間點 T2T_2 為界線,若 τ1\tau_1 在 critical time zome 中最後一個週期之請求有辦法完成,如圖任務一處理時間為 0<C1<T2T2T1T10 \lt C_1 \lt T_2-\left\lfloor\frac{T_2}{T_1} \right\rfloor T_1,亦即 τ1\tau_1 在辦法在第二個 τ2\tau_2 到來前完成的話,則任務二最大可執行時間為:

C2=T2T2T1C1C_2 = T_2- \left\lceil\frac{T_2}{T_1} \right\rceil C_1

此時的利用率為:

U=C1T1+C2T2=C1T1+T2T2T1C1T2U=\frac{C_1}{T_1}+\frac{C_2}{T_2} = \frac{C_1}{T_1}+\frac{T_2-\left\lfloor \frac{T_2}{T_1} \right\rfloor C_1}{T_2} U=1+C1(1T11T2T2T1)\therefore U=1+C_1(\frac{1}{T_1}-\frac{1}{T_2}\left\lceil \frac{T_2}{T_1}\right\rceil)

在case 2中,若 τ1\tau_1 無法完成在 crtical ttime zone 中的最後一個週期之請求,如圖上灰色區塊的任務一執行時間 C2T2T2T1C_2\geq T_2-\left\lfloor \frac{T_2}{T_1} \right\rfloor,亦即第 T2T1\left\lceil\frac{T_2}{T_1}\right\rceilτ1\tau_1 請求與第二個 τ2\tau_2 的請求重疊,則任務二最大可執行時間為:

C2=T2T1T1T2T1C1C_2=\left\lfloor\frac{T_2}{T_1}\right\rfloor T_1-\left\lfloor\frac{T_2}{T_1}\right\rfloor C_1

此時的利用率為:

U=C1T1+T2T1T1T2T1C1T2U=\frac{C_1}{T_1}+\frac{\left\lfloor\frac{T_2}{T_1}\right\rfloor T_1-\left\lfloor\frac{T_2}{T_1}\right\rfloor C_1}{T_2} U=T1T2T2T1+C1(1T11T2T2T1)\therefore U=\frac{T_1}{T_2}\left\lfloor\frac{T_2}{T_1}\right\rfloor + C_1(\frac{1}{T_1}-\frac{1}{T_2} \left\lfloor\frac{T_2}{T_1}\right\rfloor )

可以從下圖觀察到,利用率的極小值發生在以上兩個 case 的交界處:

theorem3_utilization.png

也就是當:

C1=T2T2T1T1    C2=T2T2T1C1C_1=T_2-\left\lfloor\frac{T_2}{T_1}\right\rfloor T_1 \implies C_2 = T_2- \left\lceil\frac{T_2}{T_1} \right\rceil C_1

此時利用率為:

U=1T1(T2T2T1T1)+1T2(T2T2T1C1)U=\frac{1}{T_1}(T_2-\left\lfloor\frac{T_2}{T_1}\right\rfloor T_1) + \frac{1}{T_2}(T_2- \left\lceil\frac{T_2}{T_1} \right\rceil C_1) =T2T1T2T1+11T2T2T1(T2T1T2T1)=\frac{T_2}{T_1}-\left\lfloor\frac{T_2}{T_1}\right\rfloor + 1 - \frac{1}{T_2}\left\lceil\frac{T_2}{T_1}\right\rceil(T_2-T_1\left\lfloor\frac{T_2}{T_1}\right\rfloor) =1(T2T1+T2T1+T2T1T1T2T2T1T2T1)=1-(\frac{T_2}{T_1}+\left\lfloor\frac{T_2}{T_1}\right\rfloor+\left\lceil\frac{T_2}{T_1}\right\rceil - \frac{T_1}{T_2}\left\lfloor\frac{T_2}{T_1}\right\rfloor\left\lceil\frac{T_2}{T_1}\right\rceil) =1T1T2(T22T12+T2T1T2T1+T2T1T2T1T2T1T2T1)=1-\frac{T_1}{T_2}(\frac{T^2_2}{T^2_1}+\frac{T_2}{T_1}\left\lfloor\frac{T_2}{T_1}\right\rfloor+\frac{T_2}{T_1}\left\lceil\frac{T_2}{T_1}\right\rceil - \left\lfloor\frac{T_2}{T_1}\right\rfloor\left\lceil\frac{T_2}{T_1}\right\rceil) =1T1T2(T2T1T2T1)(T2T1T2T1)=1-\frac{T_1}{T_2} (\left\lceil\frac{T_2}{T_1}\right\rceil-\frac{T_2}{T_1})(\frac{T_2}{T_1}-\left\lfloor\frac{T_2}{T_1}\right\rfloor)

I=T2T1,f={T2T1}I=\left\lfloor\frac{T_2}{T_1}\right\rfloor,f=\{\frac{T_2}{T_1}\},則利用率可簡化為:

U=11I+f(1f)(f)U=1-\frac{1}{I+f}(1-f)(f)

因設定 T2T1T_2 \geq T_1 ,所以 1I<1 \leq I \lt \infin ,且 0f<10 \leq f \lt 1 。因為利用率 UUII 是 monotonic increasing ,所以最小的 UU 必發生在 I=1I=1 時。若要考慮 UUff 的最小化,則使:

dUdf=ddf(1f1f1+f)=0\frac{dU}{df}=\frac{d}{df}(1-f\frac{1-f}{1+f})=0     (12f)(1+f)(ff2)(1+f)2=0\implies -\frac{ (1-2f)(1+f)-(f-f^2) }{(1+f)^2} = 0     1+f2f2f2f+f2=0\implies 1+f-2f-2f^2-f+f^2=0     f2+2f1=0\implies f^2+2f-1=0 f=2±2241(1)21=1±2f=\frac{-2\pm\sqrt{2^2-4*1*(-1)}}{2*1}=-1\pm\sqrt{2}

f0f \geq 0 ,所以在

f=21=2121f=\sqrt{2}-1=2^{\frac{1}{2}}-1

時,存在 least upper bound:

U=1(21)(1(21))1+(21)=2(21)0.83U=1-\frac{ (\sqrt{2}-1)(1-(\sqrt{2}-1)) }{ 1+(\sqrt{2}-1) }=2(\sqrt{2}-1) \simeq 0.83

Theorem 4

Description

For a set of m tasks with fixed priority order, and the restriction that the ratio between any two request periods is less than 2, the least upper bound to the processor utilization factor is U=m(21m1)U=m(2^{\frac{1}{m}}-1)

Proof

從Theorem 3證明過程中大概可以猜出,若將任務集之任務量擴展至m個,利用率 UU 可能會在 C1=T2T1C_1=T_2-T_1 時有最小值。本定理首先透過反證法排除 C1<T2T1C_1\lt T_2-T_1C1>T2T1C_1\gt T_2-T_1 的情況,以證明 C1C_1 只有收斂至 C1=T2T1C_1=T_2-T_1 時, UU 才會為所有可能中的最小值;最後帶入條件找出最小值。

τ1,τ2,,τm\tau_1,\tau_2,\cdots,\tau_m 為某一任務集,且各任務的執行時間 C1,C2,,CmC_1,C_2,\cdots,C_m 滿足處理器被 fully utilize 且使利用率 UU 為最小值。假設 Tm>Tm1>>T2>T1T_m\gt T_{m-1}\gt\cdots\gt T_2 \gt T_1 ,則我們希望以下條件成立:

C1=T2T1C_1=T_2-T_1

首先,考慮存在一變化值 Δ>0\Delta\gt0 使得 C1=T2T1+ΔC_1=T_2-T_1+\Delta ,亦即將任務一執行時間增長,這時處理器被 fully ultlize 且存在最小利用率為 U+ΔU_{+\Delta}。可以找出一個重新排程後的時程,使得處理器可以被 fully utlize 且仍然 feasible,如下圖所示:

IMG_1834.JPEG

可以看到,只需改變任務一及任務二的執行時間,使任務一執行時間減少 Δ\Delta、任務二執行時間增加Δ\Delta,如下所示:

Let C1=T2T1,C2=C2+Δ,Ci=Ci for i=3,,mLet\space C_1^{'}=T_2-T_1,C_2^{'}=C_2+\Delta,C_i^{'}=C_i\space for\space i=3,\cdots,m

C1,C2,,Cm1,CmC_1^{'},C_2^{'},\cdots,C_{m-1}^{'},C_m^{'} 仍能使處理器被 fully ultilize,此時的利用率 UU^{'}U+ΔU_{+\Delta} 之關係為:

U+ΔUU_{+\Delta}-U{'} =(C1T1+C2T2+C3T3++CmTm)(T2T1T1+C2+ΔT2+C3T3++CnTn)=(\frac{C_1}{T_1}+\frac{C_2}{T_2}+\frac{C_3}{T_3}+\cdots+\frac{C_m}{T_m})-( \frac{T_2-T_1}{T_1}+ \frac{C_2+\Delta}{T_2}+ \frac{C_3}{T_3}+\cdots+\frac{C_n}{T_n} ) =C1(C1Δ)T1+C2(C2+Δ)T2=\frac{C_1-(C_1-\Delta)}{T_1}+\frac{C_2-(C_2+\Delta)}{T_2} =ΔT1ΔT2>0=\frac{\Delta}{T_1}-\frac{\Delta}{T_2} \gt0     U+Δ>U\implies U_{+\Delta} > U^{'}

因存在一新利用率,使得與原本假設的「 U+ΔU_{+\Delta} 為所有可能的最小利用率」矛盾,因此「 C1>T2T1C_1>T_2-T_1 時有最小利用率」不成立。

再來考慮存在一變化值 Δ>0\Delta\gt0 使得 C1=T2T1ΔC_1=T_2-T_1-\Delta ,亦即將任務一執行時間減少,這時處理器被 fully ultlize 且存在最小利用率為 UΔU_{-\Delta}。可以找出一個重新排程後的時程,使得處理器可以被 fully utlize 且仍然 feasible,如下圖所示:

IMG_1835.JPEG

可以看到,只需改變任務一及任務二的執行時間,使任務一執行時間增加 Δ\Delta、任務二執行時間減少2Δ2\Delta,如下所示:

Let C1=T2T1,C2=C22Δ,Ci=Ci for i=3,,mLet\space C_1^{''}=T_2-T_1,C_2^{''}=C_2-2\Delta,C_i^{'}=C_i\space for\space i=3,\cdots,m

C1,C2,,Cm1,CmC_1^{''},C_2^{''},\cdots,C_{m-1}^{''},C_m^{''} 仍能使處理器被 fully ultilize,此時的利用率 UU^{'}UΔU_{-\Delta} 之關係為:

UΔUU_{-\Delta}-U{''} =(C1T1+C2T2+C3T3++CmTm)(T2T1T1+C22ΔT2+C3T3++CnTn)=(\frac{C_1}{T_1}+\frac{C_2}{T_2}+\frac{C_3}{T_3}+\cdots+\frac{C_m}{T_m})-( \frac{T_2-T_1}{T_1}+ \frac{C_2-2\Delta}{T_2}+ \frac{C_3}{T_3}+\cdots+\frac{C_n}{T_n} ) =C1(C1+Δ)T1+C2(C22Δ)T2=\frac{C_1-(C_1+\Delta)}{T_1}+\frac{C_2-(C_2-2\Delta)}{T_2} =2ΔT2ΔT1>0 when T2T1<0=\frac{2\Delta}{T_2}-\frac{\Delta}{T_1} >0\space when\space \frac{T_2}{T_1}\lt0     UΔ>U\implies U_{-\Delta} > U^{''}

因存在一新利用率,使得與原本假設的「 UΔU_{-\Delta} 為所有可能的最小利用率」矛盾,因此「 C1<T2T1C_1\lt T_2-T_1 時有最小利用」不成立,但前提是 T2T1<0\frac{T_2}{T_1}\lt0 ,此前提已在題目假設成立。

上述透過反證法可得出利用率僅在 C1=T2T1C_1=T_2-T_1 時有最小利用率,同理,在

C2=T3T2,C3=T4T3,C_2=T_3-T_2,C_3=T_4-T_3,\cdots

時,此假設也成立。利用歸納法,可以推出廣義形式:

Ci=Ti+1Ti for i=1,2,,m1C_i=T_{i+1}-T_i\space for\space i=1,2,\cdots,m-1

因為 Tm+1T_{m+1} 未被定義,所以 CmC_m 不可直接透過此式得出,不過根據下圖就可推敲出 CmC_m 的樣貌:

IMG_1836.JPEG

可以看出,若要使處理器被 fully ultilize 的話, CmC_m 必為:

Cm=Tm2×(C1+C2++Cm1)C_m=T_m-2\times(C_1+C_2+\cdots+C_{m-1})

又因:

C1+C2,+Cm1=(T1+T2)+(T2+T3)++(Tm1+Tm)=T1+Tm\begin{aligned} C_1+C_2,\cdots +C_{m-1}&=(-T_1+T_2)+(-T_2+T_3)+\cdots+(-T_{m-1}+T_m)\\&=-T_1+T_m \end{aligned}

所以 CmC_m 也可表達為:

Cm=Tm2(T1+Tm)=2T1TmC_m=T_m-2(-T_1+T_m)=2T_1-T_m

接下來在推導利用率時,會常有類似 Ti+1Ti\frac{T_{i+1}}{T_i}之數項出現,為了簡化數學式且將變數統一表達,在此定義:

gi=TmTiTi=TmTi1,   i=1,2,,mg_i=\frac{T_m-T_i}{T_i}=\frac{T_m}{T_i}-1,\space\space\space i=1,2,\cdots,m     Ti=Tm1+gi   or   giTi=TmTi   or   Ti=TmgiTi\implies T_i=\frac{T_m}{1+g_i}\space \space \space or\space\space\space g_iT_i=T_m-T_i\space \space \space or\space\space\space T_i=T_m-g_iT_i

因此:

Ci=Ti+1Ti=Tmgi+1Ti+1(TmgiTi)=giTigi+1Ti+1,   i=1,2,,m1\begin{aligned} C_i&=T_{i+1}-T_i\\&=T_m-g_{i+1}T_{i+1}-(T_m-g_iT_i)\\&=g_iT_i-g_{i+1}T_{i+1},\space\space\space i=1,2,\cdots,m-1 \end{aligned} Cm=2T1Tm=2(Tmg1T1)Tm=Tm2g1T1\begin{aligned} C_m&=2T_1-T_m\\&=2(T_m-g_1T_1)-T_m\\&=T_m-2g_1T_1 \end{aligned}

在算出利用率前,要先確定以下數學式:

T1=Tm1+g1    T1Tm=11+g1T_1=\frac{T_m}{1+g_1}\implies\frac{T_1}{T_m}=\frac{1}{1+g_1} Ti+1Ti=Tm1+gi+1Tm1+gi=1+gi1+gi+1\frac{T_{i+1}}{T_i}=\frac{ \frac{T_m}{1+g_{i+1}} }{ \frac{T_m}{1+g_i} } =\frac{1+g_i}{1+g_{i+1}} gm=TmTmTm=0,  g01g_m=\frac{T_m-T_m}{T_m}=0,\space \space g_0\triangleq1

最後算出利用率:

U=i=1mCiTi=Tm2g1T1Tm+i=1m1giTigi+1Ti+1Ti=12g1T1Tm+i=1m1(gigi+1Ti+1Ti)=12g11+g1+i=1m1(gigi+11+gi1+gi+1)=12g11+g1+g1+i=2mgii=2mgi1+gi11+gi=1+g1(g11)1+g1+i=2m1gi(11+gi11+gi)=1+g1(g11)1+g1+i=2m1gigigi11+gi=1+i=1m1gigigi11+gi\begin{aligned} U=\sum^m_{i=1}{\frac{C_i}{T_i}} &=\frac{T_m-2g_1T_1}{T_m}+\sum^{m-1}_{i=1}{\frac{g_iT_i-g_{i+1}T_{i+1}}{T_i}} \\&=1-2g_1\frac{T_1}{T_m}+\sum^{m-1}_{i=1}(g_i-g_{i+1}\frac{T_{i+1}}{T_i}) \\&=1-\frac{2g_1}{1+g_1}+\sum^{m-1}_{i=1}(g_i-g_{i+1}\frac{1+g_i}{1+g_{i+1}}) \\&=1-\frac{2g_1}{1+g_1}+g_1+\sum^{m}_{i=2}g_i-\sum^{m}_{i=2}g_i\frac{1+g_{i-1}}{1+g_i} \\&=1+\frac{g_1(g_1-1)}{1+g_1}+\sum^{m-1}_{i=2}g_i(1-\frac{1+g_{i-1}}{1+g_i}) \\&=1+\frac{g_1(g_1-1)}{1+g_1}+\sum^{m-1}_{i=2}g_i\frac{g_i-g_{i-1}}{1+g_i} \\&=1+\sum^{m-1}_{i=1}g_i\frac{g_i-g_{i-1}}{1+g_i} \end{aligned}

UU 為以 gj where j=1,2,,m1g_j\space where\space j=1,2,\cdots,m-1為變數的多變數函數,若要求 UU 的極小值,須令 Ugj=0\frac{\partial U}{\partial g_j}=0,並找出 gjg_j。在 UU 的總和項中,只有兩項與 gjg_j 有關:

i=1m1gigigi11+gi=+gjgjgj11+gj+gj+1gj+1gj1+gj+1+\sum^{m-1}_{i=1}g_i\frac{g_i-g_{i-1}}{1+g_i}=\cdots + g_j\frac{g_j-g_{j-1}}{1+g_j} + g_{j+1}\frac{g_{j+1}-g_j}{1+g_{j+1}}+\cdots

這兩項對 gjg_j 的導數為:

gj(gjgjgj11+gj)=(2gjgj1)(1+gj)(gj2gjgj1)(1+gj)2=gj2+2gjgj1(1+gj)2\begin{aligned}\frac{\partial}{\partial g_j}(g_j\frac{g_j-g_{j-1}}{1+g_j}) &= \frac{ (2g_j-g_{j-1})(1+g_j) - (g_j^2-g_jg_{j-1}) }{(1+g_j)^2} \\&=\frac{g_j^2+2g_j-g_{j-1}}{(1+g_j)^2} \end{aligned} gj(gj+1gj+1gj1+gj+1)=gj+11+gj+1\frac{\partial}{\partial g_j}(g_{j+1}\frac{g_{j+1}-g_j}{1+g_{j+1}})=-\frac{g_{j+1}}{1+g_{j+1}}

結合以上結果,對利用率取偏微:

Ugj=gj(1i=1m1gigigi11+gi)=[gj2+2gjgj1(1+gj)2+(gj+11+gj+1)]=0\begin{aligned} \frac{\partial U}{\partial g_j} &=\frac{\partial}{\partial g_j}(1-\sum^{m-1}_{i=1}g_i\frac{g_i-g_{i-1}}{1+g_i}) \\&=-[\frac{g_j^2+2g_j-g_{j-1}}{(1+g_j)^2}+(-\frac{g_{j+1}}{1+g_{j+1}})]=0 \end{aligned}

化簡:

    (gj+1)2(gj1+1)(gj+1)2=gj+1gj+1+1    1gj1+1(gj+1)2=11gj+1+1    gj1+1(gj+1)2=1gj+1+1\begin{aligned}\implies &\frac{(g_j+1)^2-(g_{j-1}+1)}{(g_j+1)^2}=\frac{g_{j+1}}{g_{j+1}+1} \\\implies&1-\frac{g_{j-1}+1}{(g_j+1)^2}=1-\frac{1}{g_{j+1}+1} \\\implies&\frac{g_{j-1}+1}{(g_j+1)^2}=\frac{1}{g_{j+1}+1} \end{aligned}

hi=gi+1h_i=g_i+1,則:

hj2=hj1hj+1h_j^2=h_{j-1}h_{j+1}

可以發現 hih_i 是等比級數的中間項,若 rr 為此等比級數的公比、 AA 為常數,則可將 hih_i 表示為:

hi=Ari    gi=Ari1h_i=Ar^i\implies g_i=Ar^i-1

考慮 gm=0g_m=0 的情況,找出 AA

gm=0    Arm1=0    A=rm    gi=rmri1\begin{aligned} g_m=0\implies& Ar^m-1=0 \\\implies& A=r^{-m} \\\implies& g_i=r^{-m}r^i-1 \end{aligned}

s=rms=r^{-m} ,以簡化數學式:

s=rm    r=s1m    gi=ssim1=smim1\begin{aligned} s=r^{-m}\implies&r=s^{-\frac{1}{m}} \\\implies&g_i=s\cdot s^{-\frac{i}{m}}-1=s^{\frac{m-i}{m}}-1 \end{aligned}

考慮 g0=1g_0=1 ,找出 ss

g0=1    sm0m1=1    s=2    gi=2mim1\begin{aligned} g_0=1\implies&s^{\frac{m-0}{m}}-1=1 \\\implies&s=2 \\\implies&g_i=2^{\frac{m-i}{m}}-1 \end{aligned}

因此,在 gi=2mim1g_i=2^{\frac{m-i}{m}}-1 時,可以保證 UU 為最小值。把 gig_i 代入 UU ,但先從 UU 的這項拆開計算:

gigi1=2mim1(2mi1m1)=2mim2mim21m=2mim(121m)\begin{aligned} g_i-g_{i-1}&=2^{\frac{m-i}{m}}-1-(2^{\frac{m-i-1}{m}}-1) \\&=2^{\frac{m-i}{m}}-2^{\frac{m-i}{m}}2^{\frac{-1}{m}} \\&=2^{\frac{m-i}{m}}(1-2^{\frac{-1}{m}}) \end{aligned}

所以:

U=1+i=1m1gi2mim(121m)2mim=1+(121m)i=1m1gi\begin{aligned} U&=1+\sum^{m-1}_{i=1}{g_i\frac{2^{\frac{m-i}{m}}(1-2^{\frac{-1}{m}})}{2^{\frac{m-i}{m}}}} \\&=1+(1-2^{\frac{-1}{m}})\sum^{m-1}_{i=1}{g_i} \end{aligned}

找出 i=1m1gi\sum^{m-1}_{i=1}{g_i}

i=1m1gi=i=1m1(2mim1)=i=1m122imi=1m11=2i=1m12im(m1)\begin{aligned} \sum^{m-1}_{i=1}{g_i}&=\sum^{m-1}_{i=1}{(2^{\frac{m-i}{m}}-1)} \\&=\sum^{m-1}_{i=1}{2*2^{\frac{-i}{m}}}-\sum^{m-1}_{i=1}{1} \\&=2\sum^{m-1}_{i=1}{2^{\frac{-i}{m}}}-(m-1) \end{aligned}

找出 i=1m12im\sum^{m-1}_{i=1}{2^{\frac{-i}{m}}}

S21m+22m++2m2m+2m1m    21mS=1+21m+22m++2m2m    (121m)S=2m1m1=21m22    S=21m22(121m)\begin{aligned} S&\triangleq2^{\frac{-1}{m}}+2^{\frac{-2}{m}}+\cdots+2^{-\frac{m-2}{m}}+2^{-\frac{m-1}{m}} \\\implies& 2^{\frac{1}{m}}S=1+2^{\frac{-1}{m}}+2^{\frac{-2}{m}}+\cdots+2^{-\frac{m-2}{m}} \\\implies& (1-2^{\frac{-1}{m}})S=2^{-\frac{m-1}{m}}-1=\frac{2^{\frac{1}{m}}-2}{2} \\\implies& S=\frac{2^{\frac{1}{m}}-2}{2(1-2^{\frac{-1}{m}})} \end{aligned}

代回利用率:

U=1+(121m)[2×21m22(121m)(m1)]=1+21m2(121m)(m1)=21m1(m1m21m+21m)=m21mm=m(21m1)\begin{aligned} U&=1+(1-2^{\frac{-1}{m}})[2\times \frac{2^{\frac{1}{m}}-2}{2(1-2^{\frac{-1}{m}})}-(m-1)] \\&=1+2^{\frac{1}{m}}-2-(1-2^{\frac{-1}{m}})(m-1) \\&=2^{\frac{1}{m}}-1-(m-1-m2^{\frac{1}{m}}+2^{\frac{1}{m}}) \\&=m2^{\frac{1}{m}}-m \\&=m(2^{\frac{1}{m}}-1) \end{aligned}

證畢。

Theorem 5

Theorem 4是先從「滿足於 Ti+1Ti<2\frac{T_{i+1}}{T_i}<2 的所有任務集」的條件下求出 bound,是 restricted case;Theorem 5 則是想證明在所有 fixed-priority tasks set的集合的條件下求出的 bound 與 Theorem 4 求出的 bound 相等,是 general case。

Definition

For a set of m tasks with mixed priority order, the least upper bound to processor utilization is U=m(21m1)U=m(2^{\frac{1}{m}}-1)

Proof

τ1,τ2,,τi,,τm\tau_1,\tau_2,\cdots,\tau_i,\cdots,\tau_m 為使處理器被 fully ultilize 的任務集、 UU 為對應的利用率,且對於某些 ii 使得 TiTm>1\left\lfloor\frac{T_i}{T_m}\right\rfloor\gt1 。為了更加明確,將 TmT_m 表達為 Tm=qTi+r,q>1 and r0T_m=qT_i+r,q>1\space and\space r \geq 0 。如下圖,此時可以重新分配 Ti,Ci,CmT_i,C_i,C_mTi,Ci,CmT_i^{'},C_i^{'},C_m^{'} 使得處理器仍能被 fully ultilize。

IMG_1837.JPEG

新的排程 τ1,τ2,,τi,,τm\tau^{'}_1,\tau^{'}_2,\cdots,\tau^{'}_i,\cdots,\tau^{'}_m 之利用率為 UU^{'},此時 Ti,CiT_i^{'},C_i^{'} 為:

Ti=qTi,  Ci=CiT^{'}_i=qT_i,\space\space C^{'}_i=C_i

CmC_m^{'} 最大可擴展至:

Cm=Ci(q1)+CmC_m^{'}=C_i(q-1)+C_m

UU^{'} 的最大預估上界:

UU+(q1)CiTm+CiTiCiTi=U+(q1)CiqTi+r+CiqTiCiTi=U+(q1)CiqTi+r(q1)CiqTi=U+Ci(q1)(1qTi+r1qTi)\begin{aligned} U^{'}\leq&U+\frac{(q-1)C_i}{T_m}+\frac{C_i}{T^{'}_i}-\frac{C_i}{T_i} \\=&U+\frac{(q-1)C_i}{qT_i+r}+\frac{C_i}{qT_i}-\frac{C_i}{T_i} \\=&U+\frac{(q-1)C_i}{qT_i+r}-\frac{(q-1)C_i}{qT_i} \\=&U+C_i(q-1)(\frac{1}{qT_i+r}-\frac{1}{qT_i}) \end{aligned}

因為:

q>1    q1>0qTi+r>qTi    1qTi+r1qTi0\begin{aligned} q>1\implies& q-1>0 \\qT_i+r>qT_i\implies&\frac{1}{qT_i+r}-\frac{1}{qT_i}\le0 \end{aligned}

所以:

UUU^{'}\leq U

證畢。

Relaxing the Ultilization Bound

前面章節提到,在固定優先權分配下,若任務量極大時,理論利用率最多只能為 ln20.693\ln2\simeq0.693;但在實際情況需要考量到切換任務時的 costs,可用的空間又會變得更少。因此,必須尋找其他替代方案,使最壞利用率上升。

  • Method 1:調整每個任務的週期,使得 {TmTi}=0 for i=1,2,,m1\{\frac{T_m}{T_i}\}=0\space for \space i=1,2,\cdots,m-1
    • Pros:若 task 的週期關係夠理想,固定優先權系統可能可以把 ultilization bound 拉到 1。
    • Cons:現實中這情況不一定總是做得到。
  • Method 2:將 τm\tau_m 與其他較低優先權的任務放入緩衝,並 Relax 它們的 hard dealines,不再要求所以任務都依定嚴格遵守 hard real-time。對部分低優先權任務,可以允許他們延遲一點,只要有 buffer 暫存資料即可。
    • 如果整個 task set 的週期行為是有限且規律的,而且被 buffer 的 tasks 依照某種合理方式執行,例如 first come first served (FCFS) 在本文的假設下,就可以算出最大延遲時間與需要多大的 buffer。
  • *Method 3:不要把 priority 固定死,而是讓 task 的優先權可以動態改變。
    • 接下來要介紹的一種 dynamic priority assignment method ,如果某一組 task 可以被「某種 priority assignment」排得動,那它也一定可以被這個方法排得動。
    • 對 schedulability 來說,這是最佳的。
    • 用這種最佳的動態優先權方法時,processor utilization 的保證上界可以到 100%

The Deadline Driven Scheduling Algorithm

Basic Concept

此章節要研究 Dynami scheduling algorithm 其中的一種演算法叫做 deadline driven scheduling algorithm,簡稱 EDF ( Earliest-Deadline-First )。此演算法會根據各任務的 deadline 來分配優先權,且最大優先權會分配給目前 deadline 最先發生的請求;最小優先權會分配給目前 dealine 最後發生的請求。本章節目的為建立必要滿足條件使得 deadline driven scheduling algorithm 可行。

Theorem 6

Description

When the deadline driven scheduling algorithm is used to schedule a set of tasks on a processor, there is no processor idle time prior to an overflow.

意旨就算deadline driven scheduling algorithm發生overflow,在這之前仍沒有idle time。

Proof

假設在 overflow 發生之前必存在 processor idle time。

如下圖所示,令整體系統起點為 t=0t=0 時,且 t3t_3 為 overflow發生點、 t1,t2t_1,t_2 為 idle period 的起點與終點,並規定在 t2t_2t3t_3 之間無任何 idle time。在 idle period [t1,t2][t_1,t_2] 之後各任務的第一個請求分別以 a,b,,ma,b,\cdots,m 來表示。

image.png

往前平移 a,b,,ma,b,\cdots,m 使它們的發生點貼合於 t=t2t=t_2 上,此時新系統起點會落在 t=t2t=t_2。既然舊系統在 t3t_3 已經 overflow,表示處理器到 t3t_3 前的累積需求超過了可提供服務。那新系統因為所有任務皆被提前挪動了,代表新系統在 t3t_3 前的需求只會更多或與舊系統相等,不可能更少,所以 overflow 一定發生在 tt3t\leq t_3 。而新系統在 t2tt3t_2\leq t\leq t_3 之間又假設無任何 idle time,因此與「在 overflow 發生之前必存在 processor idle time」的假設發生矛盾。所以「就算deadline driven scheduling algorithm發生overflow,在這之前仍沒有idle time」之命題成立。

Theorem 7

Description

For a given set of m tasks, the deadline driven scheduling algorithm is feasible if and only if:

i=1mCiTi1\sum^{m}_{i=1}{\frac{C_i}{T_i}}\leq1

Proof

令「對於一組由m個任務組成的集合,deadline driven scheduling algorithm是可行的」為命題 PP、「 i=1mCiTi1\sum^{m}_{i=1}{\frac{C_i}{T_i}}\leq1 」為命題 QQ

首先證明必要性,亦即 PQP\rightarrow Q ,考慮 ¬Q¬P\neg{Q}\rightarrow\neg{P}

t=0t=0t=T1T2Tmt=T_1T_2\cdots T_m 之間,對於執行所有任務的時間需求為:

T1T2TmT1C1+T1T2TmT2C2++T1T2TmTmCm=(T2T3Tm)C1+(T1T3Tm)C2++(T1T2Tm1)Cm\frac{T_1T_2\cdots T_m}{T_1}C_1+ \frac{T_1T_2\cdots T_m}{T_2}C_2+\cdots+\frac{T_1T_2\cdots T_m}{T_m}C_m \\=(T_2T_3\cdots T_m)C_1+(T_1T_3\cdots T_m)C_2+\cdots+ (T_1T_2\cdots T_{m-1})C_m

假設此需求大於處理器可供時間:

(T2T3Tm)C1+(T1T3Tm)C2++(T1T2Tm1)Cm>T1T2Tm    C1T1+C2T2++CmTm>1(T_2T_3\cdots T_m)C_1+(T_1T_3\cdots T_m)C_2+\cdots+ (T_1T_2\cdots T_{m-1})C_m>T_1T_2\cdots T_m \\\implies\frac{C_1}{T_1}+\frac{C_2}{T_2}+\cdots+\frac{C_m}{T_m}\gt1

表示當 i=1mCiTi>1\sum^{m}_{i=1}{\frac{C_i}{T_i}}\gt1 時,需求大於處理器可供時間,則 scheduling algorithm 不可行,因此證畢 ¬Q¬P\neg{Q}\rightarrow\neg{P}PQP\rightarrow Q 成立。

最後證明充分性,首先假設 ¬(QP)\neg(Q\rightarrow P)成立,並找出所有與假設矛盾的案例,使得 QPQ\rightarrow P 成立。因此,假設在:

C1T1+C2T2++CmTm1\frac{C_1}{T_1}+\frac{C_2}{T_2}+\cdots+\frac{C_m}{T_m}\leq1

的前提下, scheduling algorithm 是不可行的。也就是說有 overflow 發生在 0tT1T2Tm0\leq t \leq T_1T_2\cdots T_m,且根據定理六可以得出存在一個時間 t=T(0TT1T2Tm)t=T(0\leq T \leq T_1T_2\cdots T_m),使得在 t=0t=0t=Tt=T之間有 overflow 且不具有 idle time。

假設 a1,a2,,b1,b2,a_1,a_2,\cdots,b_1,b_2,\cdotsmm 個任務在 TT 之前的請求時間,且 a1,a2,a_1,a_2,\cdots 之請求時間的deadline在 TT上、b1,b2,b_1,b_2,\cdots之請求時間的deadline在 TT之後。 a1,a2,a_1,a_2,\cdots 不會使排程演算法發生 overflow;但 b1,b2,b_1,b_2,\cdots 有可能會使排程演算法發生 overflow,所以對於 b1,b2,b_1,b_2,\cdots ,有兩種可能情況會發生。

Case 1:在 TT之前,沒有一個請求 b1,b2,b_1,b_2,\cdots 已被執行完成。

在這個案例中,從 0 到 TT 之間執行所有請求的時間需求為:

TT1C1+TT2C2++TTmCm\left\lfloor\frac{T}{T_1}\right\rfloor C_1+ \left\lfloor\frac{T}{T_2}\right\rfloor C_2+\cdots+ \left\lfloor\frac{T}{T_m}\right\rfloor C_m

因為沒有 processor idle period,且 scheduling algorithm 是不可行的,所以:

TT1C1+TT2C2++TTmCm>T\left\lfloor\frac{T}{T_1}\right\rfloor C_1+ \left\lfloor\frac{T}{T_2}\right\rfloor C_2+\cdots+ \left\lfloor\frac{T}{T_m}\right\rfloor C_m \gt T

然後,因為 xxxx\geq\left\lfloor{x}\right\rfloor\forall{x},所以:

TT1C1+TT2C2++TTmCm>T    C1T1+C2T2++CmTm>1    i=1mCiTi>1\begin{aligned} \frac{T}{T_1}C_1&+\frac{T}{T_2}C_2+\cdots+\frac{T}{T_m}C_m\gt{T} \\\implies&\frac{C_1}{T_1}+\frac{C_2}{T_2}+\cdots+\frac{C_m}{T_m}\gt{1} \\\implies&\sum^{m}_{i=1}{\frac{C_i}{T_i}}\gt{1} \end{aligned}

此推論結果為 ¬Q\neg Q ,與假設的 Q¬PQ\land\neg{P} 矛盾。

Case 2:在 TT之前,有部分請求 b1,b2,b_1,b_2,\cdots 已被執行完成。

因為在時間 TT 發生 overflow,所以存在一個時間點 TT^{'}使得沒有任何請求b1,b2,b_1,b_2,\cdotsTtTT^{'}\leq t\leq T之間被執行完成,而且會有一個或以上的請求 bib_i 的 deadline 發生在時間點 TTTT 之前,且這些任務在 TT^{'}之前會被完成。因此,在 TtTT^{'}\leq t\leq T 內執行請求的處理時間需求小於等於:

TTT1C1+TTT2C2++TTTmCm\left\lfloor\frac{T-T^{'}}{T_1}\right\rfloor{C_1}+\left\lfloor\frac{T-T^{'}}{T_2}\right\rfloor{C_2}+\cdots+\left\lfloor\frac{T-T^{'}}{T_m}\right\rfloor{C_m}

有 overflow 發生於 TT 代表:

TTT1C1+TTT2C2++TTTmCm>TT    TTT1C1+TTT2C2++TTTmCm>TT    C1T1+C2T2++CmTm>1    i=1mCiTi>1\begin{aligned} \left\lfloor\frac{T-T^{'}}{T_1}\right\rfloor&{C_1}+\left\lfloor\frac{T-T^{'}}{T_2}\right\rfloor{C_2}+\cdots+\left\lfloor\frac{T-T^{'}}{T_m}\right\rfloor{C_m}\gt{T-T^{'}} \\\implies&\frac{T-T^{'}}{T_1}C_1+\frac{T-T^{'}}{T_2}C_2+\cdots+\frac{T-T^{'}}{T_m}C_m\gt T-T^{'} \\\implies&\frac{C_1}{T_1}+\frac{C_2}{T_2}+\cdots+\frac{C_m}{T_m}\gt1 \\\implies&\sum^m_{i=1}{\frac{C_i}{T_i}}\gt1 \end{aligned}

此推論結果為 ¬Q\neg Q ,與假設的 Q¬PQ\land\neg{P} 矛盾。

因為所有案例的結果皆與假設的 ¬(QP)\neg(Q\rightarrow P) 矛盾,因此 QPQ\rightarrow P 成立,充分性證畢。且:

(PQ)(QP)PQ\because (P\rightarrow Q)\land (Q\rightarrow P)\therefore P\leftrightarrow Q

得,定理七證畢。

A Mixed Scheduling Algorithm

本章節研究的排程演算法類別為 rate-monotonic scheduling algorithm 與 deadlin driven scheduling algorithm 的組合,此類別被稱為 mixed scheduling algorithm。

此類別存在的意義:

  • 因為硬體中斷的需求無法相容動態排程 ⇒ 只能使用 fixed priority scheduler
  • 對於較慢步驟的任務,使用 deadline driven 的軟體實作代價比起固定排程有更少顯著的上升 ⇒ 建議使用 deadline driven scheduler

為方便之後的推導,在此令任務 1,2,,k1,2,\cdots,k 表示為前 k 個具有最短周期的任務,這些任務將用 fixed priority scheduling algorithm 排程;剩下的任務,如果處理器沒被任務 1,2,,k1,2,\cdots,k占用的話,任務 k+1,k+2,,mk+1,k+2,\cdots,m會使用 deadline driven scheduling algorithm 來排程。

接下來,定義 availability function 為在時間從 00tt 時,對於一任務集,所有處理器可以被使用的時間的加總,表示為 a(t)a(t)。而 ak(t)a_k(t) 被定義為對於任務 k+1,k+2,,mk+1,k+2,\cdots,m 的 availability function。因為時間不為負,所以累加時間只會越長越大或不再增長 ⇒ a(t)a(t) 為 nondecreasing function。

Wk(t)W_k(t) 為前 k 個 fixed-priority tasks 在 [0,t][0,t] 內的累積處理器需求,則 ak(t)a_k(t) 可表達為 ak(t)=tWk(t)a_k(t)=t-W_k(t)。所以

ak(t+T)ak(t)=(t+T)Wk(t+T)(tWk(t))=T[Wk(t+T)Wk(t)]\begin{aligned} a_k&(t+T)-a_k(t) \\=&(t+T)-W_k(t+T)-(t-W_k(t)) \\=&T-[W_k(t+T)-W_k(t)] \end{aligned}

ak(T)=TWk(T)a_k(T)=T-W_k(T)

根據 critical time zone argument,對 fixed-priority 任務集合而言,最壞情況的處理器需求發生在所有相關高優先權 requests 同時出現的 critical instant,因此從 0 開始的長度 T 區間所包含的高優先權工作量,不小於任何平移後同長度區間中的高優先權工作量。故有

Wk(T)>Wk(t+T)Wk(t)    Wk(T)[Wk(t+T)Wk(t)]    TWk(T)T[Wk(t+T)Wk(t)]\begin{aligned} &W_k(T)\gt W_k(t+T)-W_k(t) \\\implies&-W_k(T)\leq -[W_k(t+T)-W_k(t)] \\\implies&T-W_k(T)\leq T-[W_k(t+T)-W_k(t)] \end{aligned}

ak(T)ak(t+T)ak(t)a_k(T)\leq a_k(t+T)-a_k(t)

若對於任務 k+1,k+2,,mk+1,k+2,\cdots,m 的 availability function 具有 ak(T)ak(t+T)ak(t)a_k(T)\leq a_k(t+T)-a_k(t) 的性質,則對於所有任務的 availability function 同樣具有 a(T)a(t+T)a(t)a(T)\leq a(t+T)-a(t) 性質,又因 a(t)a(t) 為 nondecreasing function,故 a(t)a(t)sublinear

Theorem 8

Description

If a set of tasks are scheduled by the deadline driven scheduling algorithm on a processor whose availability function is sublinear, then there is no processor idle period to an overflow.

Proof

與 Theorem 6 類似。

Theorem 9

Description

A necessary and sufficient condition for the feasibility of the deadline driven scheduling algorithm with respect to a processor with availability function ak(t)a_k(t) is

tTk+1Ck+1+tTk+2Ck+2++tTmCmak(t)\left\lfloor\frac{t}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{t}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{t}{T_{m}}\right\rfloor{C_{m}}\leq{a_k(t)}

for all t’s which are multiples of Tk+1, or Tk+2,, or TmT_{k+1},\space or\space T_{k+2},\cdots,\space or\space T_m .

Proof

本證明與 Theorem 7 的證明十分相似,首先證明滿足必要性。假設對於任何時間點,處理請求的總時間需求超過所有處理器可供的運行時間:

tTk+1Ck+1+tTk+2Ck+2++tTmCm>ak(t)\left\lfloor\frac{t}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{t}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{t}{T_{m}}\right\rfloor{C_{m}}\gt{a_k(t)}

可以發現這會導致排程不可行。因此,若處理請求的總時間需求為所有處理器可供的運行時間或時間以內,則:

tTk+1Ck+1+tTk+2Ck+2++tTmCmak(t)\left\lfloor\frac{t}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{t}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{t}{T_{m}}\right\rfloor{C_{m}}\leq{a_k(t)}

會使排程保證可行,必要性證畢。

再來證明充足性。對於 case 1,假設排程滿足定理,但在時間點 TT 發生 overflow,則:

TTk+1Ck+1+TTk+2Ck+2++TTmCm>ak(T)\left\lfloor\frac{T}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{T}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{T}{T_{m}}\right\rfloor{C_{m}}\gt{a_k(T)}

此與假設矛盾,且 TTTk+1, or Tk+2,, or TmT_{k+1},\space or\space T_{k+2},\cdots,\space or\space T_m 其中之一的倍數。

對於 case 2,假設排程滿足定理,但在時間點 TT 發生 overflow,則:

TTTk+1Ck+1+TTTk+2Ck+2++TTTmCm>ak(TT)\left\lfloor\frac{T-T'}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{T-T'}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{T-T'}{T_{m}}\right\rfloor{C_{m}}\gt{a_k(T-T')}

為滿足定理要求「for all t’s which are multiples of Tk+1, or Tk+2,, or TmT_{k+1},\space or\space T_{k+2},\cdots,\space or\space T_m 」,令 ϵ\epsilon 為最小正數使得 TTϵT-T'-\epsilonTk+1, or Tk+2,, or TmT_{k+1},\space or\space T_{k+2},\cdots,\space or\space T_m 的倍數,所以:

TTϵTk+j=TTTk+j for each j=1,2,,mk\left\lfloor\frac{T-T'-\epsilon}{T_{k+j}}\right\rfloor=\left\lfloor\frac{T-T'}{T_{k+j}}\right\rfloor\space for\space each\space j=1,2,\cdots,m-k

因此:

TTϵTk+1Ck+1+TTϵTk+2Ck+2++TTϵTmCm>ak(TT)ak(TTϵ)\begin{aligned} &\left\lfloor\frac{T-T'-\epsilon}{T_{k+1}}\right\rfloor{C_{k+1}}+\left\lfloor\frac{T-T'-\epsilon}{T_{k+2}}\right\rfloor{C_{k+2}}+\cdots+\left\lfloor\frac{T-T'-\epsilon}{T_{m}}\right\rfloor{C_{m}} \\&\gt{a_k(T-T')} \\&\geq{a_k(T-T'-\epsilon)} \end{aligned}

此與假設矛盾。

對於所有可能的 case 都與假設矛盾,因此充分性證畢。

Comparison and Comment

mixed scheduling 的 utilization bound 雖然還不到純 deadline-driven scheduling 的 100%,但已經明顯比固定優先權 RM 排程寬鬆許多。作者最後也坦白說,對 mixed scheduling 而言,還沒有找到像 RM 或 EDF 那樣漂亮的 closed-form least upper bound;不過從這個例子可以看出,它的限制遠比 fixed-priority scheduling 小,因此在實務上是一種很有吸引力的折衷方案。

Conclusion

前面的分析是建立在五個假設之上,其中最重要、但也最容易被質疑的,是 (A1) 任務請求具有週期性(A4) 任務執行時間固定。如果這兩個假設不成立,那麼前面用來分析最壞情況的 critical time zone 就必須重新定義,不再只是簡單地由週期與固定 execution time 來描述,而必須改成在任務 request 與 deadline 之間,考慮所有高優先權任務可能造成的最大干擾量。若系統缺乏對 request pattern 與 run-time 的精確資訊,就只能用較保守的方式來估計,例如把 period 當成最短 request interval、把 run-time 當成最大 execution time。作者認為,在這種情況下,前面許多分析結果將不再能直接成立,而且由於任務的不規則性,processor utilization bound 可能會被大幅壓低。如果實際 deadline 比前面假設得更緊,則固定優先權的排序規則也應改成依據 request 與 deadline 之間最短間隔來決定,而不是單純依週期長短。不過若只有少數高優先權任務的 deadline 較緊,對整體 utilization 的影響不會太大。整體而言,作者認為週期性請求與固定執行時間雖然是理想化假設,但它們的分析價值很大,應該被視為 real-time system 設計上的重要目標。

本文探討的是 hard-real-time multiprogramming 在 process control 與 monitoring 環境中的排程問題。在這個架構下,作者得到三個最主要的結論:

  1. 對於 固定優先權排程,若優先權按照 request rate 單調分配,也就是較短週期任務給較高優先權,則此規則在所有 fixed-priority scheduling algorithms 中是最佳的;然而這類方法對大 task sets 的 processor utilization least upper bound 只有大約 70%
  2. 對於 動態 deadline-driven scheduling,作者證明它在可行性上是全域最佳的,而且可以達到 100% processor utilization
  3. 作者也討論了將這兩種方法結合的 mixed scheduling algorithm,指出這種混合方式大致能保有 deadline-driven scheduling 的大部分好處,同時又較容易在現有電腦系統中實作。