在了解底層機(jī)制后,現(xiàn)在開始高層策略。

文章中對工作負(fù)載有簡單的假設(shè):1.每個(gè)job有相同運(yùn)行時(shí)間,2.所有jobs同時(shí)到達(dá),3.job一旦開始則run到結(jié)束,4.所有job使用CPU,5.每個(gè)作業(yè)運(yùn)行時(shí)間已知。

調(diào)度指標(biāo):一、turnaround time(性能指標(biāo),關(guān)注的是job完成時(shí)間)。性能往往和fairness不一致。

FIFO:簡單,容易實(shí)現(xiàn),但放寬假設(shè)1后,turnaround time變長。

SJF:得到最短turnaround time,但放寬假設(shè)2,時(shí)間又變長了。

STCF:為了解決SJF的問題,同時(shí)放寬假設(shè)3,(jobs開始后必須完成),實(shí)施搶占式調(diào)度。

二、response time。以上調(diào)度能滿足batch computing systems,但用戶要求系統(tǒng)提供交互,則產(chǎn)生這個(gè)指標(biāo)。

Round Robin(time-slicing):其中,時(shí)間切片必須是定時(shí)器中斷周期的整數(shù)倍。切的太細(xì)會(huì)是context switching開銷過大,稍微長一點(diǎn)來攤銷切換成本。

值得注意的是:context switching的成本不僅來自保存和恢復(fù)寄存器的OS操作,當(dāng)程序運(yùn)行時(shí),它們在CPU緩存,TLB,branch predictors和其他on-chip hardware上構(gòu)建大量狀態(tài),切換job會(huì)flush狀態(tài),引入新狀態(tài),這才是最重開銷。

三、合并I/O:進(jìn)程發(fā)出I/O后被阻塞,完成后發(fā)出中斷,轉(zhuǎn)為就緒狀態(tài)。提高資源利用率。