欧美日操-欧美日韩91-欧美日韩99-欧美日韩ay在线观看-xxxx色-xxxx视频在线

當(dāng)CPU空閑時(shí)它都在做什么?

2018-02-02 14:39:45 Linux中國  點(diǎn)擊量: 評(píng)論 (0)
在 上篇文章中 我說了操作系統(tǒng)行為的基本原理是,在任何一個(gè)給定的時(shí)刻,在一個(gè) CPU 上有且只有一個(gè)任務(wù)是活動(dòng)的。但是,如果 CPU 無

好吧,我們來看一下這個(gè)空閑任務(wù)到底做了些什么。下面是 cpuidleloop,感謝開源能讓我們看到它的代碼:

while (1) {
    while(!need_resched()) {
        cpuidle_idle_call();
    }

    /*
    [Note: Switch to a different task. We will return to this loop when the idle task is again selected to run.]
    */
    schedule_preempt_disabled();
}
cpuidleloop
我省略了很多的細(xì)節(jié),稍后我們將去了解任務(wù)切換,但是,如果你閱讀了這些源代碼,你就會(huì)找到它的要點(diǎn):由于這里不需要重新調(diào)度(即改變活動(dòng)任務(wù)),它一直處于空閑狀態(tài)。以所經(jīng)歷的時(shí)間來計(jì)算,這個(gè)循環(huán)和其它操作系統(tǒng)中它的“堂兄弟們”相比,在計(jì)算的歷史上它是運(yùn)行的最多的代碼片段。對(duì)于 Intel 處理器來說,處于空閑狀態(tài)意味著運(yùn)行著一個(gè) halt 指令:
static inline void native_halt(void)
    {
    asm volatile("hlt": : :"memory");
    }
native_halt
hlt 指令停止處理器中的代碼執(zhí)行,并將它置于 halt 的狀態(tài)。奇怪的是,全世界各地?cái)?shù)以百萬計(jì)的 Intel 類的 CPU 們花費(fèi)大量的時(shí)間讓它們處于 halt 的狀態(tài),甚至它們?cè)谕姷臅r(shí)候也是如此。這并不是高效、節(jié)能的做法,這促使芯片制造商們?nèi)ラ_發(fā)處理器的深度睡眠狀態(tài),以帶來著更少的功耗和更長休眠時(shí)間。內(nèi)核的 cpuidle 子系統(tǒng) 是這些節(jié)能模式能夠產(chǎn)生好處的原因。
現(xiàn)在,一旦我們告訴 CPU 去 halt(睡眠)之后,我們需要以某種方式讓它醒來。如果你讀過 上篇文章《你的操作系統(tǒng)什么時(shí)候運(yùn)行?》 ,你可能會(huì)猜到中斷會(huì)參與其中,而事實(shí)確實(shí)如此。中斷促使 CPU 離開 halt 狀態(tài)返回到激活狀態(tài)。因此,將這些拼到一起,下圖是當(dāng)你閱讀一個(gè)完全呈現(xiàn)的 web 網(wǎng)頁時(shí),你的系統(tǒng)主要做的事情:

當(dāng)CPU空閑時(shí)它都在做什么?

除定時(shí)器中斷外的其它中斷也會(huì)使處理器再次發(fā)生變化。如果你再次點(diǎn)擊一個(gè) web 頁面就會(huì)產(chǎn)生這種變化,例如:你的鼠標(biāo)發(fā)出一個(gè)中斷,它的驅(qū)動(dòng)會(huì)處理它,并且因?yàn)樗a(chǎn)生了一個(gè)新的輸入,突然進(jìn)程就可運(yùn)行了。在那個(gè)時(shí)刻, need_resched() 返回 true,然后空閑任務(wù)因你的瀏覽器而被踢出而終止運(yùn)行。
如果我們呆呆地看著這篇文章,而不做任何事情。那么隨著時(shí)間的推移,這個(gè)空閑循環(huán)就像下圖一樣:

當(dāng)CPU空閑時(shí)它都在做什么?

在這個(gè)示例中,由內(nèi)核計(jì)劃的定時(shí)器中斷會(huì)每 4 毫秒發(fā)生一次。這就是滴答tick周期。也就是說每秒鐘將有 250 個(gè)滴答,因此,這個(gè)滴答速率(頻率)是 250 Hz。這是運(yùn)行在 Intel 處理器上的 Linux 的典型值,而其它操作系統(tǒng)喜歡使用 100 Hz。這是由你構(gòu)建內(nèi)核時(shí)在 CONFIG_HZ 選項(xiàng)中定義的。
對(duì)于一個(gè)空閑 CPU 來說,它看起來似乎是個(gè)無意義的工作。如果外部世界沒有新的輸入,在你的筆記本電腦的電池耗盡之前,CPU 將始終處于這種每秒鐘被喚醒 250 次的地獄般折磨的小憩中。如果它運(yùn)行在一個(gè)虛擬機(jī)中,那我們正在消耗著宿主機(jī) CPU 的性能和寶貴的時(shí)鐘周期。

大云網(wǎng)官方微信售電那點(diǎn)事兒

責(zé)任編輯:任我行

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
CPU
?
主站蜘蛛池模板: 成人影片在线免费观看 | 午夜在线免费视频 | 欧美巨大精品欧美一区二区 | 毛片免费全部免费播放 | 亚洲精品一二三区-久久 | 草草青青 | 国产福利一区二区三区在线观看 | 久久国产亚洲精品麻豆 | 国产精品页| 曰本女人一级毛片看一级毛 | 日韩国产三级 | 国产成人免费a在线资源 | 青青青视频在线播放 | 97成人资源 | 午夜视频在线免费播放 | 四虎影院视频在线观看 | 综合久久久久久久 | 成 人 亚洲 综合天堂 | 黄色国产在线视频 | 午夜影院一级片 | 在线观看亚洲 | 国产a毛片 | 视频二区 中文字幕 欧美 | 亚洲综合香蕉 | 欧美中文一区 | 五十路亲子中出中文字幕 | 欧美一区中文字幕 | 亚洲一区二区三区视频 | 日韩精品观看 | 国产精在线 | 四虎影院入口 | 久久机热 | 免费在线看黄网址 | 色吊丝免费观看网站 | 一级网站在线观看 | 97在线视频网站 | 香蕉在线精品视频在线观看6 | 五月天丁香婷婷综合久久 | 韩国大尺度女教师未删减在线 | 国产福利免费看 | 久久的精品99精品66 |