當(dāng)CPU空閑時(shí)它都在做什么?
在 上篇文章中 我說(shuō)了操作系統(tǒng)行為的基本原理是,在任何一個(gè)給定的時(shí)刻,在一個(gè) CPU 上有且只有一個(gè)任務(wù)是活動(dòng)的。但是,如果 CPU 無(wú)事可做的時(shí)候,又會(huì)是什么樣的呢?
事實(shí)證明,這種情況是非常普遍的,對(duì)于絕大多數(shù)的個(gè)人電腦來(lái)說(shuō),這確實(shí)是一種常態(tài):大量的睡眠進(jìn)程,它們都在等待某種情況下被喚醒,差不多在 100% 的 CPU 時(shí)間中,都處于虛構(gòu)的“空閑任務(wù)”中。事實(shí)上,如果一個(gè)普通用戶的 CPU 處于持續(xù)的繁忙中,它可能意味著有一個(gè)錯(cuò)誤、bug、或者運(yùn)行了惡意軟件。
因?yàn)槲覀儾荒苓`反我們的原理,一些任務(wù)需要在一個(gè) CPU 上激活。首先是因?yàn)椋@是一個(gè)良好的設(shè)計(jì):持續(xù)很長(zhǎng)時(shí)間去遍歷內(nèi)核,檢查是否有一個(gè)活動(dòng)任務(wù),這種特殊情況是不明智的做法。最好的設(shè)計(jì)是沒(méi)有任何例外的情況。無(wú)論何時(shí),你寫(xiě)一個(gè) if 語(yǔ)句,Nyan Cat 就會(huì)喵喵喵。其次,我們需要使用空閑的 CPU 去做一些事情,讓它們充滿活力,你懂得,就是創(chuàng)建天網(wǎng)計(jì)劃唄。
因此,保持這種設(shè)計(jì)的連續(xù)性,并領(lǐng)先于那些邪惡計(jì)劃一步,操作系統(tǒng)開(kāi)發(fā)者創(chuàng)建了一個(gè)空閑任務(wù),當(dāng)沒(méi)有其它任務(wù)可做時(shí)就調(diào)度它去運(yùn)行。我們可以在 Linux 的 引導(dǎo)過(guò)程 中看到,這個(gè)空閑任務(wù)就是進(jìn)程 0,它是由計(jì)算機(jī)打開(kāi)電源時(shí)運(yùn)行的第一個(gè)指令直接派生出來(lái)的。它在 rest_init 中初始化,在 initidlebootup_task 中初始化空閑調(diào)度類(lèi)scheduling class。
簡(jiǎn)而言之,Linux 支持像實(shí)時(shí)進(jìn)程、普通用戶進(jìn)程等等的不同調(diào)度類(lèi)。當(dāng)選擇一個(gè)進(jìn)程變成活動(dòng)任務(wù)時(shí),這些類(lèi)按優(yōu)先級(jí)進(jìn)行查詢。通過(guò)這種方式,核反應(yīng)堆的控制代碼總是優(yōu)先于 web 瀏覽器運(yùn)行。盡管在通常情況下,這些類(lèi)返回 NULL,意味著它們沒(méi)有合適的任務(wù)需要去運(yùn)行 —— 它們總是處于睡眠狀態(tài)。但是空閑調(diào)度類(lèi),它是持續(xù)運(yùn)行的,從不會(huì)失敗:它總是返回空閑任務(wù)。
責(zé)任編輯:任我行
-
碳中和戰(zhàn)略|趙英民副部長(zhǎng)致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門(mén):推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國(guó)家發(fā)改委、國(guó)家能源局:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè)
-
碳中和戰(zhàn)略|趙英民副部長(zhǎng)致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報(bào)告 | 基于分類(lèi)監(jiān)管與當(dāng)量協(xié)同的碳市場(chǎng)框架設(shè)計(jì)方案
2020-07-21碳市場(chǎng),碳排放,碳交易 -
碳市場(chǎng)讓重慶能源轉(zhuǎn)型與經(jīng)濟(jì)發(fā)展并進(jìn)
2020-07-21碳市場(chǎng),碳排放,重慶
-
兩部門(mén):推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國(guó)家發(fā)改委、國(guó)家能源局:推廣不停電作業(yè)技術(shù) 減少停電時(shí)間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
2020年二季度福建省統(tǒng)調(diào)燃煤電廠節(jié)能減排信息披露
2020-07-21火電環(huán)保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國(guó)能源替代規(guī)范法律問(wèn)題研究(上)
2019-10-31能源替代規(guī)范法律 -
區(qū)域鏈結(jié)構(gòu)對(duì)于數(shù)據(jù)中心有什么影響?這個(gè)影響是好是壞呢!