Introduction
- Gang Schedulingμ EDFλ₯Ό μ μ©νλ λ°©λ²μ λν΄ μ΄ν΄λ³Έλ€.
- Gang EDFλ₯Ό μν schedulability conditionμ μ μνλ€
Definitions and Assumptions
- Parallel task is:
- rigid: 미리 μ ν΄μ Έ μλ κ³ μ λ νλ‘μΈμ μλ₯Ό μ¬μ©νλ€
- moldable: νλ‘μΈμ μλ λ³ν μ μμ§λ§, μ€ν μ μλ κ²°μ λλ€.
- malleable: λ°νμμλ νλ‘μΈμ μκ° λ³ν μ μλ€.
- Οiβ=(viβ,Ciβ,Diβ,Tiβ): μ¬μ©νλ νλ‘μΈμ μ, μ΅λ μ€ν μκ°, λ§κ° κΈ°ν, μ£ΌκΈ°
- moldable
- Ciβ λ κ° νλ‘μΈμ μ€ μ μΌ μ€λ 걸리λ μμ
μ μκ°, synchronization overheadλ₯Ό ν¬ν¨νλ€
- Constrained-deadline: Diββ€Tiβ for all Οiβ
- Fully independent & preemptive
- Ciβλ viβμ μν΄ κ²°μ λκ³ , viβλ μ μ λ μ€μΌμ€λ¬μ μν΄ κ²°μ λλ€.
- demand bound function dbf(Οiβ,L):
dbf(Οiβ,L)=max(0,βTiβLβDiβββ+1)ΓCiβΓviβ(1)
- horizontal-damand bound function hbf(Οiβ,L):
hbf(Οiβ,L)=max(0,βTiβLβDiβββ+1)ΓCiβ=dbf(Οiβ,L)Γviβ1β(2) μ΄λ CiβΓviβ μ§μ¬κ°νμ λλΉ(μκ° μΆ)μΌλ‘ μκ°ν μ μλ€
Gang EDF Scheduling
- Global EDFμμλ νμ mκ°μ νμ€ν¬λ₯Ό μ νν μ μμ§λ§, Gang EDFμμλ 곡κ°μ μ μ½μ΄ νμνλ€.
- λ¨Όμ βΟβQkββviββ€mκ³Ό βΟβQk+1ββviβ>mμ λ§μ‘±νλ earlist deadlineμ kκ°μ νμ€ν¬μ
Qkβμ μ ννλ€.
- μ΄λ€μ μ€νμ μ μ½μ΄ μλ€.
- μ¬κΈ°μ μ°λ¦¬λ ΟjββQk+1ββQkβμ λν΄ mββΟβQkββviβ(<vjβ)λ§νΌμ νλ‘μΈμλ§ ν λΉν μ μλ€.
Gang scheduling vs Coscheduling


Gang EDF scheduling policy

- first fit heuristicμ μν΄μ λ€μ μμ
μ λ£μ μ μμ λ λ£μ.
Schedulability Analysis
- Οkβκ° tdβμ deadline missκ° λ°μνλ€κ³ κ°μ . - μ΄λ₯Ό problemjobμ΄λΌ λΆλ¦.
- Οkβμ arrival timeμ taβ=tdββDkβ
- toβλ taβλ³΄λ€ μκ±°λ κ°κ³ , vkβκ°μ νλ‘μΈμκ° μ ν΄μνμΈ κ°μ₯ λ¦μ μμ μ΄λΌ μ μνλ€.
- μ΄λ tdββtoβ=ΞkβλΌ μ μνλ€.
- Deadline missκ° λ°μνκΈ° μν΄μλ [taβ,tdβ)μμ λ€λ₯Έ μμ
λ€μ μ€νμ΄ DkββCkβλ³΄λ€ κΈΈμ΄μΌ νλ€.
- λν, Οkβκ° vkβκ°μ νλ‘μΈμλ₯Ό λμμ μ¬μ©ν΄μΌ νκΈ°μ, μ μ΄λ mβvkβ+1 μ΄μμ νλ‘μΈμκ° μ°¨λ¨λλ μκ°μ΄ ΞkββCkβλ³΄λ€ μ»€μΌ νλ€.
- μ΄λ₯Ό interferencerectangleμ΄λΌ μ μνλ€.
wkβ=ΞkββCkβ(3) hkβ=mβvkβ+1(4)

- Ikβ(Οiβ)λ [toβ,tdβ)μμ Οiβμ μν΄ κ°μλΉνλ μκ°μ μλ―Ένκ³ , μμ μμ λ€μκ³Ό κ°μ΄ μ 리ν μ μλ€.
ΟiββΟββIkβ(Οiβ)>wkβΓhkβ(5)
- μ¬κΈ°μμ λ§μ½ Οiβκ° carry-in μμ
μ΄ μλ κ²½μ° I1β(Οiβ)λΌ νκΈ°νκ³ , μλ κ²½μ° I2β(Οiβ)λΌ νκΈ°νλ€.
Simple Bounds
Οiβκ° carry-in μμ
μ΄ μλ κ²½μ°, I1β(Οiβ)λ λ€μκ³Ό κ°μ΄ ꡬν μ μλ€.
- iξ β=k μΈ κ²½μ°, Οiβμ κ°μ μ¬κ°νμ λν μν κΈ°μ¬λλ μ΅λ hbf(Οiβ,Ξkβ)μ΄λ©°,
- μ΄λ Οkβμ κ°μ μ¬κ°ν λλΉλ₯Ό μ΄κ³Όν μ μμΌλ―λ‘, Οkβμ κ°μ μ¬κ°νμ λν μνκΈ°μ¬λλ λ€μκ³Ό κ°λ€.
min{hbf(Οiβ,Ξkβ),wkβ}
- λΉμ·ν μ΄μ λ‘ κ°μ μ¬κ°νμ λν μμ§ κΈ°μ¬λλ λ€μκ³Ό κ°λ€.
min{viβ,hkβ}
- i=kμΈ κ²½μ°, μνμ κΈ°μ¬λ Akβ=ΞkββDkβλ₯Ό λμ μ μλ€.
- μ΄λ₯Ό μ 리νμ¬ I1β(Οiβ)λ₯Ό λνλ΄λ©΄:
I1β(Οiβ)={min{hbf(Οiβ,Ξkβ),wkβ}Γmin(viβ,hkβ)min{hbf(Οiβ,Ξkβ)βCkβ,Akβ}Γmin(viβ,hkβ)βifΒ iξ β=kotherwiseβ(6)
Οiβκ° carry-in μμ
μ΄ μλ κ²½μ°, I2β(Οiβ)λ λ€μκ³Ό κ°μ΄ ꡬν μ μλ€.
- Οiβμ μ΄λ€ μμ
μ deadlineμ΄ κ΅¬κ° Lμ λμ μκ³ , Οiβμ λͺ¨λ μμ
μ΄ preemptionμμ΄ deadlineμ μ μνλ λμ horizontal demandλ₯Ό hbfβ²(Οiβ,L) μ΄λΌκ³ νμ.

-
μ΄λ μ κ·Έλ¦Όμ ν΅ν΄ carry-in μμ
μ μμ΄ μ΅λ min(Ciβ,LmodTiβ) μ΄κ³ , κ΅¬κ° λ΄ μμ
μ κ°μλ βL/Tiββμμ μ μ μλ€.
-
λ°λΌμ hbfβ²(Οiβ,L)λ λ€μκ³Ό κ°λ€.
hbfβ²(Οiβ,L)=βTiβLββΓCiβ+min(Ciβ,LmodTiβ)(7)
-
hbfβ²(Οiβ,L)μ΄ μμ κ°μΌλ―λ‘ I2β(Οiβ)λ λ€μκ³Ό κ°μ΄ ꡬν μ μλ€.
I2β(Οiβ)={min{hbfβ²(Οiβ,Ξkβ),wkβ}Γmin(viβ,hkβ)min{hbfβ²(Οiβ,Ξkβ)βCkβ,Akβ}Γmin(viβ,hkβ)βifΒ iξ β=kotherwiseβ(8)
Improved Bounds
- Eq.(6)μ Οiβμ κ°μμ κ³Όλνκ°νλ€λ μ μμ λΉκ΄μ μ΄λ€.
I1β(Οiβ)={min{hbf(Οiβ,Ξkβ),wkβ}Γmin(viβ,hkβ)min{hbf(Οiβ,Ξkβ)βCkβ,Akβ}Γmin(viβ,hkβ)βifΒ iξ β=kotherwiseβ(6)
Lemma 1
λ νμ€ν¬ Οiβμ Οjβμ λν΄μ hkββviββ€vjββ€hkβ λ° hbf(Οjβ,Ξk)β€wkββ€hbf(Οiβ,Ξk)κ° μ±λ¦½ν λ Οkβμ κ°μμ¬κ°νμ λν I1β(Οjβ)+I1β(Οiβ)λ μ΅λ λ€μκ³Ό κ°λ€.
wkβΓviβ+hbf(Οjβ,Ξkβ)Γ(hkββviβ)(9)

Lemma 2
λ μμ
Οiβμ Οjβ(iξ β=jξ β=k)μ λν΄, viββ€hkββ€vjβ λ° wkββhbf(Οjβ,Ξk)β€hbf(Οiβ,Ξk)β€wkβμΈ κ²½μ° Οkβμ κ°μμ¬κ°νμ λν I1β(Οjβ)+I1β(Οiβ)λ μ΅λ λ€μκ³Ό κ°λ€.
{wkββhbf(Οjβ,Ξkβ)}Γviβ+hbf(Οjβ,Ξkβ)Γhkβ(10)

μ΄ λ 보쑰μ 리λ λ€μ 보쑰μ λ¦¬λ‘ μ΄μ΄μ§κ² λλ€.
Lemma 3
wkβΓhkβ κ°μ μ¬κ°νμ hbf(Οiβ,Ξkβ)β₯wkβμΈ Οiβκ° μ‘΄μ¬ν λ, wkβΓ(hkββviβ)λ‘ μΆμν μ μλ€.
Lemma 4
wkβΓhkβ κ°μ μ¬κ°νμ viββ₯hkβμΈ Οiβκ° μ‘΄μ¬ν λ, {wkββhbf(Οiβ,Ξkβ)}Γhkβλ‘ μΆμν μ μλ€.
λ°λΌμ μ°λ¦¬λ μμ Eq.(6)μ μλμ κ°μ΄ λ°κΏ μ μλ€.
-
Ξ±1β={Οiξ β=kββΟβ£hbf(Οiβ,Ξkβ)β₯wkβ}λΌ ν λ,
-
hkβ(Ξ±1β)=hkββΟiββΞ±1βββviβλ‘ μΆμν μ μκ³ ,
-
Ξ²1β={Οiββ/βΞ±1ββ£viββ₯hkβ(Ξ±1β)}λΌ ν λ,
-
wkβ(Ξ²1β)=wkββΟiββΞ²1βββhbf(Οiβ,Ξkβ)λ‘ μΆμν μ μλ€.
- μ°λ¦¬λ μ΄λ¬ν ν¬κΈ° μΆμλ₯Ό κ³μ λ°λ³΅ν μ μλ€.
- κ·Έλ¬λ©΄ hkβ(Ξ±0β)=hkβ, wkβ(Ξ²0β)=wkβλ‘ μμνμ¬, λ€μ μμ λ°λ³΅ν μ μλ€.
Ξ±sβ={Οiξ β=kββ/βr<sββΞ±rββͺr<sββΞ²rββ£hbf(Οiβ,Ξkβ)β₯wkβ(Ξ²sβ1β)}(11)
Ξ²sβ={Οiξ β=kββ/βrβ€sββΞ±rββͺr<sββΞ²rββ£viββ₯hkβ(Ξ±sβ)}(12)
hkβ(Ξ±sβ)=hkββΟiβββrβ€sβΞ±rβββviβ(13)
wkβ(Ξ²sβ)=wkββΟiβββrβ€sβΞ²rβββhbf(Οiβ,Ξkβ)(14)
- μ΄ κ³Όμ μ Ξ±sβλ Ξ²sβκ° κ³΅μ§ν©μΌλκΉμ§ λ°λ³΅νμμ λ,
- κ·Έ μ΄λ Ξ±sβλλ Ξ²sβμ λν΄μλ ν¬ν¨λμ§ μμ νμ€ν¬λ€μ μ§ν©μ Ξ³λΌ νμ.
Ξ³={Οiββ/βΞ±1ββͺ...βͺΞ±maxββͺΞ²1ββͺ...βͺΞ²maxβ}(15)
- μ΅μ’
μ μΌλ‘ κ°μ μ¬κ°νμ wkβ(Ξ±maxβ)Γhkβ(Ξ²maxβ) λ‘ μΆμλλ€.
- κ·Έλ¦¬κ³ Ξ³μ μ μμ λ°λΌ βΟiββΞ³λ hbf(Οiβ,Ξkβ)<wkβ(Ξ²maxβ), viβ<hkβ(Ξ±maxβ)λ₯Ό λ§μ‘±νλ€.
- λν Ξ±sβμ ν¬ν¨λ μ§ν©μ hbf(Οiβ,Ξkβ)β₯wkβ(Ξ²sβ1β)λ₯Ό λ§μ‘±νκ³ , Ξ²sβμ ν¬ν¨λ μ§ν©μ viββ₯hkβ(Ξ±sβ)λ₯Ό λ§μ‘±νλ€.
- λ°λΌμ μ°λ¦¬λ I1βμ λ€μκ³Ό κ°μ΄ λ³κ²½ν μ μλ€.
I1β(Οiβ)=β©βͺβͺβͺβͺβ¨βͺβͺβͺβͺβ§βwkβ(Ξ²sβ1β)Γviβhbf(Οiβ,Ξkβ)Γhkβ(Ξ±sβ)hbf(Οiβ,Ξkβ)Γviβmin{hbf(Οiβ,Ξkβ)βCkβ,Akβ}ΓviββifΒ ΟiββΞ±sβifΒ ΟiββΞ²sβifΒ ΟiββΞ³β§iξ β=kotherwiseβ(16)
carry-in μμ
μ΄ μλ κ²½μ°λ λΉμ·νκ² μ§νν μ μλ€.
Ξ±sβ²β={Οiξ β=kββ/ββr<sβΞ±rβ²ββͺβr<sβΞ²rβ²ββ£hbfβ²(Οiβ,Ξkβ)β₯wkβ(Ξ²sβ1β²β)β(17)
Ξ²sβ²β={Οiξ β=kββ/ββrβ€sβΞ±rβ²ββͺβr<sβΞ²rβ²ββ£viββ₯hkβ(Ξ±sβ²β)β(18)
hkβ(Ξ±sβ²β)=hkββΟiβββrβ€sβΞ±rβ²βββviβ(19)
wkβ(Ξ²sβ²β)=wkββΟiβββrβ€sβΞ²rβ²βββhbfβ²(Οiβ,Ξkβ)(20)
Ξ³β²λ λκ°μ΄ μ μνλ©΄,
Ξ³β²={Οiββ/βΞ±1β²ββͺ...βͺΞ±maxβ²ββͺΞ²1β²ββͺ...βͺΞ²maxβ²β}(21)
λ€μκ³Ό κ°μ΄ I2βλ₯Ό λ³κ²½ν μ μλ€.
I2β(Οiβ)=β©βͺβͺβͺβͺβ¨βͺβͺβͺβͺβ§βwkβ(Ξ²sβ1β²β)Γviβhbfβ²(Οiβ,Ξkβ)Γhkβ(Ξ±sβ²β)hbfβ²(Οiβ,Ξkβ)Γviβmin{hbfβ²(Οiβ,Ξkβ)βCkβ,Akβ}ΓviββifΒ ΟiββΞ±sβ²βifΒ ΟiββΞ²sβ²βifΒ ΟiββΞ³β²β§iξ β=kotherwiseβ(22)
Schedulability Condition
- Idiffβ(Οiβ)λ₯Ό λ€μκ³Ό κ°μ΄ μ μνλ©΄, μ΄λ Οiβμ μν carry-in μμ
μ κ°μ μ¬κ°νμ λν κΈ°μ¬μμ΄ μλͺ
νλ€.
Idiffβ(Οiβ)=I2β(Οiβ)βI1β(Οiβ)(23)
- λ°λΌμ, Icarry-inβμ λͺ¨λ carry-in μμ
μ κ°μ μ¬κ°νμ λν κΈ°μ¬λ‘ μ μνλ©΄, λ€μκ³Ό κ°μ μμ μ»λλ€.
Icarry-inβ={max{βΟiββΟβIdiffβ(Οiβ)}max{Idiffβ(Οiβ)}βifΒ βΟβΟotherwiseβ(24) μ¬κΈ°μ Ολ βΟiββΟβviββ€mβvkβλ₯Ό λ§μ‘±νλ μμμ λΆλΆμ§ν©μ΄λ€.
- μ°λ¦¬λ μ¬κΈ°μ Ομ λν κ³μ°μ ν΄μΌνμ§λ§ μ΄λ Knapsack λ¬Έμ μ μ μ¬νλ©° μ΄λ NP-hardμμ΄ μλ €μ Έμλ€.
μ΄λ₯Ό μ’ λ μ½κ² νκΈ° μν΄ Icarry-inβμ μ½κ° κ³Όλνκ°ν΄λ³΄μ.
- Ομ 볡μ λ³Έ Οβ²κ° Idiffβ(Οiβ)/viβλ₯Ό κΈ°μ€μΌλ‘ λ΄λ¦Όμ°¨μ μ λ ¬λμ΄μλ€κ³ νμ. κ·Έλ¦¬κ³ κ°μΌλ©΄ viβμ λν΄ μ λ ¬νμ.
- μ΄λ Οcarry-inβλ₯Ό λ€μμ λ§μ‘±νλ κ°μ₯ 첫λ²μ§Έ λΆλΆμ§ν©μΌλ‘ μ ννμ.
ΟiββΟcarry-inβββviββ₯mβvkβ
- Icarry-inβμ Οcarry-inβλ‘λΆν° ꡬν λ, κ°μ μ¬κ°νμ μΈλ‘λ‘ μ΄κ³Όνλ vertical demand, μ¦ mβvkβλ₯Ό μ΄κ³Όνλ λΆλΆμ κ³ λ €ν νμκ° μλ€.
- μ΄λ Οcarry-inβμ λ§μ§λ§ νμ€ν¬ Οlβμ΄ μ€μ λ‘ μ¬μ©ν μ μλ νλ‘μΈμ μ nlβ²βλ λ€μκ³Ό κ°λ€.
nlβ²β=mβvkββΟiββΟcarry-inββΟlβββviβ.
- λ°λΌμ μ°λ¦¬λ Eq(24). λμ μλμ κ°μ΄ ννν μ μλ€.
Icarry-inβ=ΟiββΟcarry-inβββIdiffβ(Οiβ)β(vlββnlβ²β)ΓIdiffβ(Οlβ)(25)
- κ·Έλ¬λ―λ‘ μλμ Eq(5)λ₯Ό
ΟiββΟββIkβ(Οiβ)>wkβΓhkβ(5)
- λ€μκ³Ό κ°μ΄ λ³κ²½ν μ μλ€.
ΟiββΟββI1β(Οiβ)+Icarry-inβ>wkβΓhkβ(26)
Theorem 1
λͺ¨λ μμ
ΟkββΟ λ° λͺ¨λ Ξkββ₯Dkβμ λν΄ λ€μ μ‘°κ±΄μ΄ μΆ©μ‘±λλ©΄ μμ
μμ€ν
Οκ° m νλ‘μΈμμμ Gang EDFμ μν΄ μ±κ³΅μ μΌλ‘ μ€μΌμ€λ§λλ κ²μ΄ 보μ₯λλ€.
ΟiββΟββI1β(Οiβ)+Icarry-inββ€wkβΓhkβ?(27)
- λ§μ§λ§μΌλ‘ Ξkβμ λ²μλ₯Ό μ νν λ²μλ‘ μ€μ΄κΈ° μν΄ Theorem 2λ₯Ό μ μνλ€.
Theorem 2
λ§μ½ μ΄λ€ Ξkββ₯Dkβμ λν΄ μ‘°κ±΄ (27)μ΄ μλ°λλ€λ©΄, μ΄λ λ€μμ λ§μ‘±νλ Ξkβμ μν΄ μλ°λ κ²μ΄λ€.
Ξkβ€hkβββΟiββΟβUiβΓmin(viβ,hkβ)hkβCkβββΟiββΟβ{(DiββTiβ)UiβΓmin(viβ,hkβ)}+Ccarry-inββ(28)
Proof
I1β(Οiβ)β€hbf(Οiβ,Ξkβ)Γmin(viβ,hkβ)β€(ΞkββDiβ+Tiβ)ΓUiβΓmin(viβ,hkβ).
λν carry-inμ μ΅λ Ciβμ΄λ―λ‘, λ€μ λν μ λν μ μλ€.
I2β(Οiβ)β€I1β(Οiβ)+CiβΓmin(viβ,hkβ).
쑰건 (27)μ μλ°μν€λ©΄ μλμ κ°μ΄ μ 리λλ€.
βββΟiββΟββhbf(Οiβ,Ξkβ)Γmin(viβ,hkβ)+Ccarry-inβ>wkβΓhkβΟiββΟββ{(ΞkββDiβ+Tiβ)ΓUiβΓmin(viβ,hkβ)}+Ccarry-inβ>(ΞkββCkβ)ΓhkβΞkββ€hkβββΟiββΟβUiβΓmin(viβ,hkβ)hkβCkβββΟiββΟβ{(DiββTiβ)UiβΓmin(viβ,hkβ)}+Ccarry-inβββ
β