貪婪排程原則分析

2021-10-09 08:08:00 字數 3272 閱讀 8440

​      貪心排程原則簡單來說就是我們使用p

pp個處理器來處理某個wor

k=wwork=w

work=w

,s pa

n=sspan=s

span=s

的計算任務時,某個處理器處於空閒狀態當且僅當此時沒有可被執行的子任務.

​      上面的計算過程圖對應的乙個wor

k=10,

span

=4work=10,span=4

work=1

0,sp

an=4

的平行計算過程,有通路連線的節點的之間有執行順序要求. 當某個子任務也即是某個節點,被執行完畢之後,將其點標記為藍色,而未執行的子任務標記為紅色. 在此處我們假設我們擁有p=2

p=2p=

2個處理器. 可見當執行第0層的所有任務時會出現處理器空閒的情況(第0層只有1這個節點),而執行第二層的2、3節點時所有的處理器都被使用按照. 貪心排程原則,在下一步執行時應當同時執行4、5兩個節點,因為此時處理器數目小於可執行的節點數(4、5、6均可被執行). 這時我們將貪心排程「程度」降低一些,改為某一層執行完畢之前不能執行下一層的任何節點,換句話說就是按照層序遍歷這顆計算樹,則下一步只能執行4節點.

​      顯然貪心排程所需時間tg≤

t_g\leq

tg​≤

「層序排程」所需時間t

lt_l

tl​,下面我們計算t

lt_l

tl​的上確界.對於任何乙個wor

k=w,

span

=swork=w,span=s

work=w

,spa

n=s的計算任務,可設其第i

ii層的wor

k=wi

work=w_i

work=w

i​,則每一層的時間ti=

⌈wi/

p⌉t_i= \lceil w_i/p\rceil

ti​=⌈w

i​/p

⌉,進而有:

t g≤

tl=∑

i=1s

⌈wip

⌉≤∑i

=1s(

⌊wip

⌋+1)

≤⌊wp

⌋+s\begin t_g\leq t_l&=\sum_^s\lceil \rceil\\ &\leq\sum_^s(\lfloor \frac\rfloor+1)\\ &\leq\lfloor \frac\rfloor+s \end

tg​≤tl

​​=i

=1∑s

​⌈wi

​p⌉≤

i=1∑

s​(⌊

pwi​

​⌋+1

)≤⌊p

w​⌋+

s​​      至此已經證明出使用貪心排程原則時,所需時間tg≤

w/p+

st_g\leq w/p+s

tg​≤w/

p+s.

​      下面是貪心排程更為精確的上界計算與分析:

​       假設每一步執行時所有的p

pp個處理器都需要進行「準備執行」的過程,執行完整個過程之後,總共有k

kk次「準備執行」過程,則易知t=k

/pt=k/p

t=k/

p. 如果我們能夠確定k

kk的上界,就可以很輕鬆的得到t

gt_g

tg​的上界。將「準備執行」過程分為兩類,第一類為「有效準備」,即準備好的處理器確實立刻執行了某個子任務,設該類過程共計k

ek_e

ke​個;第二類為「無效準備」,即準備好的處理器在這一步中處於閒置狀態,設該類過程共計k

wk_w

kw​個.

​       首先不論使用什麼排程方式,每乙個子任務都需要被執行,因此執行每個子任務的處理器都經過了「有效準備」. 又因為每個經過了「有效準備」的處理器都執行了乙個子任務,因此可認為ke=

wk_e=w

ke​=

w. 其次每一步執行的時候最少需要執行乙個子任務,因此每步最多有p−1

p-1p−

1個處理器閒置,故對第i

ii步來說有kwi

≤p−1

k_\leq p-1

kwi​​≤

p−1.

​      下面考慮哪些步驟可能出現處理器閒置的情形. 在貪心排程原則下,只有當可執行的子任務數量小於p

pp時才會出現閒置的情況,仍舊參考前文中的計算圖作為示例:由圖可知在執行下一步時節點4、5、6均可以被執行,因此當p≥4

p\geq4

p≥4時會出現「無效準備」過程. 進一步觀察可知,當我們只考慮剩餘的子任務(子節點)時,計算樹變成了計算森林,此時所有已經可以被執行的節點作為森林中的每棵樹的根節點(樹與樹之間可以共用非根結點). 如果下一步的執行有閒置的處理器,則說明所有的根節點均被執行的同時仍有處理器閒置。而所有的根節點都被執行就代表著這個森林中的任何一條(到達樹葉節點的)通路的長度均會減111.

​      小結一下上一段的核心觀點:如果某一執行步驟存在「無效準備」則該步驟一定會使「未處理子任務森林」中的任何一條「通路」的長度減1

11. 注意到在開始執行整個計算任務之前,計算森林就是整顆計算樹,因此「森林」中的最長「通路」長為s

ss,因此整個計算過程中最多有s

ss步會出現閒置處理器,也就是存在「無效準備」過程.

​      綜合前面三段的內容可知kw≤

s⋅(p

−1)k_w\leq s\cdot(p-1)

kw​≤s⋅

(p−1

),因此有:

k =k

e+kw

≤w+s

⋅(p−

1)\begin k&=k_e+k_w\\ &\leq w+s\cdot(p-1)\\ \end

k​=ke​

+kw​

≤w+s

⋅(p−

1)​tg=

kp≤w

p+s⋅

p−1p

t_g=\frac\le \frac+s\cdot\frac

tg​=pk

​≤pw

​+s⋅

pp−1

​ 至此已經得到了貪婪排程原則下執行時間的更精確的上界.

搶占程序排程的原則

1 時間片原則 各程序按系統分配給的乙個時間片執行,當該時間片用完或由於該程序等待某事件發生而被阻塞時,系統就停止該程序的執行而重新進行排程。2 優先順序原則 每個程序均賦於乙個排程優先順序,通常一些重要和緊急的程序賦於較高的優先順序。當乙個新的緊迫程序到達時,或者乙個優先順序高的程序從阻塞狀態變成...

電梯排程需求分析

電梯排程需求分析 結對成員 信1201 1班 黃亞萍 信1201 1班 袁亞姣 1.引言 1.1目的 為便於廣大師生同學們合理使用基礎教學樓的電梯,以使在上下課的高峰時期,電梯得到合理的排程,減少同學們因為電梯使用不合理所帶來的時間浪費現象等,讓電梯發揮其最大的功效。1.2背景 石家莊鐵道大學基礎教...

電梯排程需求分析

結對成員 信1201 1 班 黃亞萍 信1201 1 班 袁亞姣 1.引言 1.1目的 為便於廣大師生同學們合理使用基礎教學樓的電梯,以使在上下課的高峰時期,電梯得到合理的排程,減少同學們因為電梯使用不合理所帶來的時間浪費現象等,讓電梯發揮其最大的功效。1.2背景 石家莊鐵道大學基礎教學樓的電梯配置...