linux排程器 第三代cfs 1 引入

2021-07-02 04:38:07 字數 1746 閱讀 3115

不計其數的妹子又來了,真是煩惱啊,該怎麼辦,讓我很快就選擇乙個最好的妹子呢?

為什麼要從第三代開始呢?不應該是從簡單的先來嗎?我是想著有些朋友可能就想學習最新的,就像大家都搶著買最**的手機一樣,據說九月份iphone7要出了。

讓cfs這種演算法來吧,核心思想就是完全公平,這種思想也算是打破之前的一種觀念。以前的時候,大家會把程序分為互動式程序,實時程序,以及一般的程序,互動程序就是想我們這樣打字,滑鼠點點這樣的,我們不能讓使用者等待,點一下滑鼠,半天沒動靜,人可受不了,就算你再吹噓你電腦配置怎麼怎麼好,幾g的記憶體,多少的主頻,甚至還是多核的,但對於普通使用者來說,這電腦「卡」,不要。為了滿足使用者體驗,所以互動式程序一般都會特殊對待,就像是拿了張特權證書一樣,更別說實時程序了,實時程序就像飛飛機一樣,你點下右轉,它立馬就得轉,你敢卡下,那估計又有多少墜機了。那既然分了這麼多種,讀者,你記下了幾種型別的程序?都記住了?算你厲害。乙個都沒記住?這就對了,你可以去跟張三丰學習學習太極拳。所以對於核心來說,也迫切希望,別讓我記那麼多東西,我又要拉出這位演算法的作者了ingo molnar。搞出了一種完全公平的演算法,就是把所有程序都排到乙個佇列裡,你們誰把其他所有程序都幹過了誰排前面,簡言之就是,you can,you up。

在這個演算法裡,引入了一種虛擬執行時間的概念,還會涉及到紅黑樹,也就是資料結構 中的樹那一塊的知識,如果你不懂,可以去查點資料,或者乾脆把它就當成乙個有序的佇列,小的拍前面大的拍後面。然後cpu一下就可以從這個紅黑樹(o(lgn))裡選擇乙個程序開始執行了。

對於這種程式的大概流程,不知道,你們有點概念了嗎?如果有的話,我就要開始上**了。要是沒有,就想著把所有程序扔乙個佇列裡,然後他們自己排個序,每次我選擇最小的開始執行,這樣理解也可以。

我認為一種正常的邏輯是,我餓了,所以就去找吃的。需要什麼,找什麼。然而好多書,都是列出一大堆吃的,然後讓使用者自己去找,也許後來會發現或許作者有先見之名,但這對於初學者來說,是不合適的,過多的引入一些資訊,往往會讓學習的人沒了思路,不知道哪是芝麻,哪是西瓜。所以,接下來行文都會以這種方式,需要什麼,找什麼。

上**

第一件事,如何乾掉其他程序,或者說是,你憑什麼排在前面?對於演算法來說就是,你是怎麼計算的,讓這個程序排前面。以下**來自linux_2.6.24。來看看怎麼計算的,答案是以實體鍵值排序的。問題來了:什麼事實體鍵。

//kernel\sched_fair.c 138行

static inline s64 entity_key(struct cfs_rq *cfs_rq, struct sched_entity *se) 

哎,真遺憾,原始碼中竟然沒有英文注釋,想吹下牛,show下英文都沒給機會,別緊張我是英文剛過四級的小渣渣。好吧從名字開始entity_key實體鍵值的意思,因為排程不僅僅可以排程程序,有時候可以是程序組等其他的,我們在這裡就把它當成是程序吧,se->vruntime就是虛擬執行時間,v=virtual虛擬的,se代表sched_entity,後面乙個是cfs_rq->min_vruntime,即完全公平排程_就緒佇列_最小_虛擬執行時間。簡言之,就是虛擬執行時間減去最小虛擬執行時間。

感覺這篇引入就寫到這裡吧,畢竟一上來就擺大段的**,會懵b的,讓我們把開始的學習的曲線搞的平滑點,前奏做的更好點。

總結

這篇就說了一件事,完全公平排程把所有就緒程序不分什麼實時程序,互動程序,等一股腦的扔到乙個叫紅黑樹的結構裡(紅黑樹本來就是有序的,後面說有序佇列就是紅黑樹,是為了理解所有說成有序佇列),然後程序依據鍵值大小,排了乙個隊,鍵值越小,就cpu」執行「它的時間越小,所以為了公平,cpu就優先執行鍵值小的。

克麗觀察 第三代搜尋現形

什麼是第三代搜尋 第三代搜尋引擎和第 一 二代搜尋引擎的區別在 呢?這是我在高潮還沒開啟他的筆記本前向他提出的第乙個問題。第三代搜尋技術態勢如何 據高潮介紹,包括google 微軟以及許多專業搜尋公司,對第三代搜尋引擎相關技術 產品的研製都處於正在進行時,目前尚無成功產品,更不用說商品。乙個叫sen...

第三代CAN匯流排通訊技術 CAN XL

目錄 一 can xl概述 二 can xl填補了can fd與100base t1 乙太網 之間的空白 三 can xl協議內容 四 與can fd的互操作性,用於混合fd xl網路 五 結尾 第三代can通訊技術即將到來。繼經典can和can fd之後,can xl在2020年正式推出。經典ca...

雅虎推出第三代網路爬蟲Slurp3 0

據國外 報道,雅虎周一宣布,將推出第三代網路爬蟲slurp 3.0。目前所有的準備 工作已經就緒,正式推出 活動已經啟動。雅虎搜尋部門的沙拉德 維瑪 sharad verma 和約拉姆 阿倫 yoram arnon 周一在雅虎搜尋部落格中表示。上周五,雅虎主要競爭對手谷歌披露,其 最新的網路爬蟲 軟...