久久九九久精品国产日韩经典|中文AV网址在线观看|一级国产精在线观看|免费乱理伦片在线观看

<tt id="bby2d"><blockquote id="bby2d"></blockquote></tt>
  • <strike id="bby2d"><fieldset id="bby2d"><listing id="bby2d"></listing></fieldset></strike>
    <option id="bby2d"><font id="bby2d"></font></option>
  • <div id="bby2d"><strike id="bby2d"></strike></div>

      linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)的讀書筆記

      時(shí)間:2018-05-25 17:01:51 讀書筆記 我要投稿

      linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)的讀書筆記

        進(jìn)程的調(diào)度程序是保證進(jìn)程能有效工作的一個(gè)內(nèi)核子系統(tǒng)。調(diào)度程序負(fù)責(zé)決定將哪個(gè)進(jìn)程投入運(yùn)行,何時(shí)運(yùn)行以及運(yùn)行多少時(shí)間。簡(jiǎn)單的來(lái)說(shuō),調(diào)度程序就是在給一堆就緒的進(jìn)程分配處理器的時(shí)間,調(diào)度程序是多任務(wù)操作系統(tǒng)的基礎(chǔ)。調(diào)度程序的原則就是最大限度的使用cpu的資源,也就是說(shuō),當(dāng)系統(tǒng)中只要有可運(yùn)行的進(jìn)程,就不能讓cpu處于空閑的狀態(tài),如果系統(tǒng)中沒(méi)有就緒的進(jìn)程時(shí),則cpu會(huì)運(yùn)行一個(gè)idle進(jìn)程。

      linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)的讀書筆記

        1.多任務(wù)

        多任務(wù)操作系統(tǒng)就是能夠同時(shí)并發(fā)的交互執(zhí)行多個(gè)進(jìn)程的操作系統(tǒng),需要注意這里是并發(fā),而不是并行。如果你的計(jì)算機(jī)有兩個(gè)或者兩個(gè)以上的cpu那么,你的計(jì)算機(jī)就可以真正同時(shí)、并行的執(zhí)行多個(gè)任務(wù)。多任務(wù)操作系統(tǒng)可以分為兩類:搶占式多任務(wù)和非搶占式多任務(wù)。

        搶占式多任務(wù)中,由調(diào)度程序來(lái)決定什么時(shí)候停止一個(gè)進(jìn)程的執(zhí)行,這種由調(diào)度程序強(qiáng)行停止一個(gè)進(jìn)程執(zhí)行的動(dòng)作稱為搶占(preemption)。進(jìn)程在被搶占之前運(yùn)行的時(shí)間是固定的,而且有一個(gè)專門的名字,叫做時(shí)間片(timeslice)。時(shí)間片實(shí)際上是分配給每個(gè)進(jìn)程的處理器時(shí)間段。

        而非搶占式多任務(wù)是由進(jìn)程自己做出讓步,在執(zhí)行了一段時(shí)間之后,主動(dòng)地讓出cpu。進(jìn)程主動(dòng)掛起自己的操作稱為讓步(yielding),如果某個(gè)進(jìn)程懸掛起來(lái)并且拒不作出讓步的話,可能會(huì)導(dǎo)致操作系統(tǒng)崩潰。

        所以總述上面的兩種情況,搶占式多任務(wù)就像“法律”,只要時(shí)間到了,就把你撤下來(lái)。而非搶占式卻像“道德”一樣,你要是有道德,執(zhí)行了一會(huì)之后,你就自己撤下來(lái),如果有的“人”占著茅坑不拉屎,那其他進(jìn)程除了用“道德”譴責(zé)它,也沒(méi)有其他的辦法了。

        2.linux進(jìn)程調(diào)度

        linux最初的進(jìn)程調(diào)度程序是非常原始的,很難適應(yīng)一些眾多的可運(yùn)行進(jìn)程和多處理器環(huán)境。后來(lái)從linux2.5開始,對(duì)linux的進(jìn)程調(diào)度程序做了大的調(diào)整,使用了稱為O(1)的調(diào)度算法,這個(gè)算法引起算法行為而得名。O(1)調(diào)度算法雖然在數(shù)以十計(jì)的多處理器上能表現(xiàn)出近乎完美的特性和可擴(kuò)展性,但是由于這個(gè)算法在調(diào)度交互進(jìn)程的時(shí)候并沒(méi)有表現(xiàn)出很理想的效果。所以在linux2.6的開發(fā)初期,提出了CFS算法,即完全公平調(diào)度算法。

        3.策略

        (1)IO消耗型進(jìn)程和處理器消耗型進(jìn)程

        IO消耗型進(jìn)程指的是進(jìn)程的大部分時(shí)間是用來(lái)等待IO的操作,例如圖形用戶界面(GUI)程序就屬于IO消耗型程序,這個(gè)程序需要不斷的監(jiān)聽(tīng)來(lái)自用戶的輸入。這樣的進(jìn)程經(jīng)常處于可運(yùn)行的狀態(tài),但是每次運(yùn)行的時(shí)間都很短。

        處理器消耗型進(jìn)程是指進(jìn)程的大部分時(shí)間用在執(zhí)行代碼上,比如大型的'計(jì)算程序MATLAB就屬于處理器消耗型進(jìn)程。

        還有一些應(yīng)用程序雖然劃分為IO消耗型進(jìn)程,但是也有處理器消耗型進(jìn)程的特征。例如,字處理程序,在大多數(shù)時(shí)間可能等待來(lái)自用戶的輸入,但是在某段時(shí)間該程序又可能粘住處理器瘋狂的進(jìn)行語(yǔ)法和拼寫錯(cuò)誤的檢查。

        調(diào)度程序需要在兩個(gè)矛盾目標(biāo)中尋找平衡————進(jìn)程的迅速響應(yīng)和高吞吐量。unix和linux為了獲得良好的用戶響應(yīng),因此都傾向于調(diào)度IO消耗型進(jìn)程。

        (2)進(jìn)程優(yōu)先級(jí)

        調(diào)度算法中最基本的一種就是基于進(jìn)程優(yōu)先級(jí)的調(diào)度,這是一種根據(jù)進(jìn)程的價(jià)值和其對(duì)處理器的時(shí)間需求來(lái)對(duì)進(jìn)程分級(jí)的一種想法。通常的做法是優(yōu)先級(jí)高的進(jìn)程先執(zhí)行,低的后運(yùn)行,相同優(yōu)先級(jí)的進(jìn)程按輪轉(zhuǎn)方式進(jìn)行調(diào)度(一個(gè)接一個(gè),重復(fù)進(jìn)行)。在某些操作系統(tǒng)中,優(yōu)先級(jí)高的進(jìn)程的使用的時(shí)間片也長(zhǎng)一些。調(diào)度程序總是選擇優(yōu)先級(jí)高的,并且時(shí)間片尚未用盡的進(jìn)程。

        linux系統(tǒng)采用了兩種不同類別的優(yōu)先級(jí),第一種是使用nice值,范圍是從-20到+19,值越大表示優(yōu)先級(jí)越低。這個(gè)優(yōu)先級(jí)適用于一般的進(jìn)程。

        另外,linux對(duì)實(shí)時(shí)進(jìn)程采用實(shí)時(shí)優(yōu)先級(jí),值從0-99,值越大代表優(yōu)先級(jí)越高。實(shí)時(shí)進(jìn)程的優(yōu)先級(jí)都高于普通進(jìn)程,因此這兩個(gè)進(jìn)程優(yōu)先級(jí)是處于兩個(gè)互不相交的范圍內(nèi)。

        (3)時(shí)間片

        時(shí)間片是一個(gè)數(shù)值,他表示進(jìn)程在被搶占前能夠持續(xù)運(yùn)行的時(shí)間。時(shí)間片過(guò)長(zhǎng)會(huì)導(dǎo)致系統(tǒng)對(duì)交互的響應(yīng)表現(xiàn)欠佳,時(shí)間片過(guò)短,卻又明顯增大進(jìn)程切換帶來(lái)的處理器時(shí)間消耗。所以IO消耗型進(jìn)程和處理器消耗型進(jìn)程的矛盾在這里又再次顯現(xiàn)出來(lái),IO消耗型進(jìn)程不需要長(zhǎng)的時(shí)間片,而處理器消耗型進(jìn)程則希望時(shí)間片越長(zhǎng)越好。

        長(zhǎng)時(shí)間片將導(dǎo)致系統(tǒng)的交互性表現(xiàn)欠佳,很多的操作系統(tǒng)都很重視這一點(diǎn),因此將時(shí)間片設(shè)置的很短,如10ms。但是linux的CFS調(diào)度算法并沒(méi)有直接分配時(shí)間片到進(jìn)程,它是將處理器的使用比分給了進(jìn)程,這樣進(jìn)程獲得的處理器的時(shí)間是和系統(tǒng)負(fù)載密切相關(guān)的。這個(gè)比例還會(huì)受到nice值的影響,nice值作為權(quán)重將調(diào)整進(jìn)程使用處理器時(shí)間的使用比。具有更高nice值(低優(yōu)先級(jí))的進(jìn)程將被賦予低權(quán)重,從而喪失一小部分處理器的使用比,而具有低nice值(高優(yōu)先級(jí))的進(jìn)程江北賦予高權(quán)重,從而獲得更多的處理器使用比。

        在多數(shù)的搶占式操作系統(tǒng)中,一個(gè)新就緒的進(jìn)程能否立即執(zhí)行(即搶占原來(lái)的進(jìn)程),完全取決于新進(jìn)程的優(yōu)先級(jí)和是否有時(shí)間片。而在linux中采用的CFS調(diào)度器,其搶占時(shí)機(jī)取決于新的進(jìn)程消耗了多少處理器的使用比,如果新就緒的進(jìn)程消耗的處理器使用比低于當(dāng)前的進(jìn)程,則新進(jìn)程搶占當(dāng)前進(jìn)程,立即投入運(yùn)行。

      【linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)的讀書筆記】相關(guān)文章:

      1.夢(mèng)想與實(shí)現(xiàn)

      2.夢(mèng)想與實(shí)現(xiàn)

      3.愛(ài)的實(shí)現(xiàn)

      4.讀書筆記的教學(xué)設(shè)計(jì)總結(jié)

      5.感恩與善待的讀書筆記

      6.《愛(ài)與和解》的讀書筆記

      7.自卑與超越的讀書筆記

      8.光榮與夢(mèng)想的讀書筆記