大香大香伊人在钱线久久,亚洲日韩欧美国产高清αv,日本强伦姧人妻久久影片,亚洲国产成人欧美在线观看

網易首頁 > 網易號 > 正文 申請入駐

CPU 空閑時在干嘛?

0
分享至

大家好,小編今天聊聊CPU空閑時在干啥。

人空閑時會發呆會無聊,計算機呢?

假設你正在用計算機瀏覽網頁,當網頁加載完成后你開始閱讀,此時你沒有移動鼠標,沒有敲擊鍵盤,也沒有網絡通信,那么你的計算機此時在干嘛?

有的同學可能會覺得這個問題很簡單,但實際上,這個問題涉及從硬件到軟件、從 CPU 到操作系統等一系列環節,理解了這個問題你就能明白操作系統是如何工作的了。

你的計算機 CPU 使用率是多少?

如果此時你正在計算機旁,并且安裝有 Windows 或者 Linux ,你可以立刻看到自己的計算機 CPU 使用率是多少。

這是博主的一臺安裝有 Win10 的筆記本:

可以看到大部分情況下 CPU 利用率很低,也就在 8% 左右,而且開啟了 283 個進程,這么多進程基本上無所事事都在等待某個特定事件來喚醒自己,就好比你寫了一個打印用戶輸入的程序,如果用戶一直不按鍵盤,那么你的進程就處于這種狀態。

有的同學可能會想也就你的比較空閑吧,實際上大部分個人計算機 CPU 使用率都差不多這樣(排除掉看電影、玩游戲等場景),如果你的使用率總是很高,風扇一直在嗡嗡的轉,那么不是軟件 bug 就有可能是病毒。。。

那么有的同學可能會問,剩下的 CPU 時間都去哪里了?

剩下的 CPU 時間去哪里了?

這個問題也很簡單,還是以 Win10 為例,打開任務管理器,找到 “詳細信息” 這一欄,你會發現有一個 “系統空閑進程”,其 CPU 使用率達到了 99%,正是這個進程消耗了幾乎所有的 CPU 時間。

那么為什么存在這樣一個進程呢?以及這個進程什么時候開始運行呢?

這就要從操作系統說起了。

程序、進程與操作系統

當你用最喜歡的代碼編輯器編寫代碼時,這時的代碼不過就是磁盤上的普通文件,此時的程序和操作系統沒有半毛錢關系,操作系統也不認知這種文本文件。

程序員寫完代碼后開始編譯,這時編譯器將普通的文本文件翻譯成二進制可執行文件,此時的程序依然是保存在磁盤上的文件,和普通沒有本質區別。

但此時不一樣的是,該文件是可執行文件,也就是說操作系統開始 “懂得” 這種文件,所謂 “懂得” 是指操作系統可以識別、解析、加載,因此必定有某種類似協議的規范,這樣編譯器按照這種協議生成可執行文件,操作系統就能加載了。

在 Linux 下可執行文件格式為 ELF ,在 Windows 下是 EXE 。

此時雖然操作系統可以識別可執行程序,但如果你不去雙擊一下(或者在Linux下運行相應命令)的依然和操作系統沒有半毛錢關系。

但是當你運行可執行程序時魔法就出現了。

此時操作系統開始將可執行文件加載到內存,解析出代碼段、數據段等,并為這個程序創建運行時需要的堆區棧區等內存區域,此時這個程序在內存中就是這樣了:

最后,根據可執行文件的內容,操作系統知道該程序應該執行的第一條機器指令是什么,并將其告訴 CPU ,CPU 從該程序的第一條指令開始執行,程序就這樣運行起來了。

一個在內存中運行起來的程序顯然和保存在磁盤上的二進制文件是不一樣的,總的有個名字吧,根據“弄不懂原則”,這個名字就叫進程,英文名叫做Process。

我們把一個運行起來的程序叫做進程,這就是進程的由來

此時操作系統開始掌管進程,現在進程已經有了,那么操作系統是怎么管理進程的呢?

調度器與進程管理

銀行想必大家都去過,實際上如果你仔細觀察的話銀行的辦事大廳就能體現出操作系統最核心的進程管理與調度。

首先大家去銀行都要排隊,類似的,進程在操作系統中也是通過隊列來管理的。

同時銀行還按照客戶的重要程度劃分了優先級,大部分都是普通客戶;但當你在這家銀行存上幾個億時就能升級為 VIP 客戶,優先級最高,每次去銀行都不用排隊,優先辦理你的業務。

類似的,操作系統也會為進程劃分優先級,操作系統會根據進程優先級將其放到相應的隊列中供調度器調度。

這就是操作系統需要實現的最核心功能。

現在準備工作已經就緒。

接下來的問題就是操作系統如何確定是否還有進程需要運行。

隊列判空:一個更好的設計

從上一節我們知道,實際上操作系統是用隊列來管理進程的,那么很顯然,如果隊列已經為空,那么說明此時操作系統內部沒有進程需要運行,這是 CPU 就空閑下來了,此時,我們需要做點什么,就像這樣:

if (queue.empty()) {  do_someting();}

這些編寫內核代碼雖然簡單,但內核中到處充斥著 if 這種異常處理的語句,這會讓代碼看起來一團糟,因此更好的設計是沒有異常,那么怎樣才能沒有異常呢?

很簡單,那就是讓隊列永遠不會空,這樣調度器永遠能從隊列中找到一個可供運行的進程。

而這也是為什么鏈表中通常會有哨兵節點的原因,就是為了避免各種判空,這樣既容易出錯也會讓代碼一團糟。

就這樣,內核設計者創建了一個叫做空閑任務的進程,這個進程就是Windows 下的我們最開始看到的“系統空閑進程”,在 Linux 下就是第 0號進程。

當其它進程都處于不可運行狀態時,調度器就從隊列中取出空閑進程運行,顯然,空閑進程永遠處于就緒狀態,且優先級最低

既然我們已經知道了,當系統無所事事后開始運行空閑進程,那么這個空閑進程到底在干嘛呢?

這就需要硬件來幫忙了。

一切都要歸結到硬件

在計算機系統中,一切最終都要靠 CPU 來驅動,CPU 才是那個真正干活的。

原來,CPU 設計者早就考慮到系統會存在空閑的可能,因此設計了一條機器指令,這個機器指令就是 halt 指令,停止的意思。

這條指令會讓部分CPU進入休眠狀態,從而極大減少對電力的消耗,通常這條指令也被放到循環中執行,原因也很簡單,就是要維持這種休眠狀態。

值得注意的是,halt 指令是特權指令,也就是說只有在內核態下 CPU 才可以執行這條指令,程序員寫的應用都運行在用戶態,因此你沒有辦法在用戶態讓 CPU 去執行這條指令。

此外,不要把進程掛起和 halt 指令混淆,當我們調用 sleep 之類函數時,暫停運行的只是進程,此時如果還有其它進程可以運行那么 CPU 是不會空閑下來的,當 CPU 開始執行halt指令時就意味著系統中所有進程都已經暫停運行。

軟件硬件結合

現在我們有了 halt 機器指令,同時有一個循環來不停的執行 halt 指令,這樣空閑任務進程的實際上就已經實現了,其本質上就是這個不斷執行 halt 指令的循環,大功告成。

這樣,當調度器在沒有其它進程可供調度時就開始運行空間進程,也就是在循環中不斷的執行 halt 指令,此時 CPU 開始進入低功耗狀態。

在 Linux 內核中,這段代碼是這樣寫的:

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

其中 cpuidle_idle_call函數最終會執行 halt 指令,注意,這里刪掉了很多細節,只保留最核心代碼,實際上 Linux 內核在實現空閑進程時還要考慮很多很多,不同類型的 CPU 可能會有深睡眠淺睡眠之類,操作系統必須要預測出系統可能的空閑時長并以此判斷要進入哪種休眠等等,但這并不是我們關注的重點。

總的來說,這就是計算機系統空閑時 CPU 在干嘛,就是在執行這一段代碼,本質上就是 CPU 在執行 halt 指令。

實際上,對于個人計算機來說,halt 可能是 CPU 執行最多的一條指令,全世界的 CPU 大部分時間都用在這條指令上了,是不是很奇怪。

作者:島主小風哥

來源:碼農的荒島求生

編輯:小咕咕

轉載內容僅代表作者觀點

不代表中科院物理所立場

如需轉載請聯系原公眾號

1.2.

3.

4.

5.

6.

7.

8.

9.

10.

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
伊朗正認真評估封鎖“全球石油命脈”霍爾木茲海峽,波及亞洲國家

伊朗正認真評估封鎖“全球石油命脈”霍爾木茲海峽,波及亞洲國家

綠樹林子
2025-06-14 21:33:13
鄭欽文:我不是故意要摔倒兩次的,只是我還不懂怎么在草地上奔跑

鄭欽文:我不是故意要摔倒兩次的,只是我還不懂怎么在草地上奔跑

懂球帝
2025-06-14 07:19:09
趙麗穎20小時冷對章子怡!內娛體面規矩被當場掀翻

趙麗穎20小時冷對章子怡!內娛體面規矩被當場掀翻

心誠則靈了
2025-06-14 21:26:48
世界發生了3件大事,全世界意識到:必須重新評估中國的實力

世界發生了3件大事,全世界意識到:必須重新評估中國的實力

獵火照狼山
2025-06-09 19:47:06
年僅45歲!北京大學副教授因突發心臟病離世

年僅45歲!北京大學副教授因突發心臟病離世

雙一流高校
2025-06-15 00:10:56
開羅國民vs邁阿密國際:世俱杯揭幕戰 梅西遭遇豆腐渣防線難贏

開羅國民vs邁阿密國際:世俱杯揭幕戰 梅西遭遇豆腐渣防線難贏

智道足球
2025-06-14 21:10:13
中國男足新帥上任,東亞杯備戰開啟

中國男足新帥上任,東亞杯備戰開啟

7號觀察室
2025-06-14 02:07:44
《碟中諜》1-8電影主要女主角梳理

《碟中諜》1-8電影主要女主角梳理

東方不敗然多多
2025-06-03 09:13:46
這次破案了,以色列斬首六大核科學家:伊朗終于知道是誰出賣情報

這次破案了,以色列斬首六大核科學家:伊朗終于知道是誰出賣情報

帥先工場
2025-06-14 20:40:00
山村大爺救下受傷的金雕,痊愈后將其放走,10天后金雕叼走他孫子

山村大爺救下受傷的金雕,痊愈后將其放走,10天后金雕叼走他孫子

白云故事
2025-06-14 17:35:06
人品越差的人,越喜歡用這3種微信頭像,勸你別深交

人品越差的人,越喜歡用這3種微信頭像,勸你別深交

有故事的人
2025-06-12 06:48:13
我61歲,經歷了3段晚年感情后才發現,老年搭伙最需要的不是金錢

我61歲,經歷了3段晚年感情后才發現,老年搭伙最需要的不是金錢

詭譎怪談
2025-05-19 17:57:34
馬拉松中簽了,酒店卻住不起了…

馬拉松中簽了,酒店卻住不起了…

馬拉松跑步健身
2025-06-14 16:53:32
排隊內第三?天空:維爾茨基礎周薪19.5萬鎊,未打破紅軍薪資結構

排隊內第三?天空:維爾茨基礎周薪19.5萬鎊,未打破紅軍薪資結構

直播吧
2025-06-14 20:23:12
外媒:伊朗和以色列軍隊孰強孰弱?

外媒:伊朗和以色列軍隊孰強孰弱?

參考消息
2025-06-14 21:59:11
怒其不爭?港樂天后衛蘭《歌手》為什么被光速淘汰?專業科普!

怒其不爭?港樂天后衛蘭《歌手》為什么被光速淘汰?專業科普!

手工制作阿殲
2025-06-14 13:49:23
諶容僅病逝一年,嫁給英達28年的梁歡,讓馮小剛預言成扎心現實

諶容僅病逝一年,嫁給英達28年的梁歡,讓馮小剛預言成扎心現實

小聰明說科普
2025-06-06 00:43:40
人民日報評選:中國史上水平最高的十首詩詞!背過八首才算及格!

人民日報評選:中國史上水平最高的十首詩詞!背過八首才算及格!

智慧生活筆記
2025-05-21 01:00:14
比杜蘭特還慘!湖人養了個白眼狼,公開抱怨,那你離隊將成定局

比杜蘭特還慘!湖人養了個白眼狼,公開抱怨,那你離隊將成定局

八零后小伙兒
2025-06-14 08:03:11
雙色球25067期;首02尾24,獨藍09,012路比1:3:2

雙色球25067期;首02尾24,獨藍09,012路比1:3:2

王曉愛體彩
2025-06-15 03:05:24
2025-06-15 04:23:00
中科院物理所 incentive-icons
中科院物理所
愛上物理,改變世界。
9082文章數 136224關注度
往期回顧 全部

科技要聞

一輛新車比特斯拉FSD都便宜,全行業陪葬?

頭條要聞

以防長威脅哈梅內伊:若繼續發射導彈 德黑蘭將成火海

頭條要聞

以防長威脅哈梅內伊:若繼續發射導彈 德黑蘭將成火海

體育要聞

約戰天王山,步行者G4輸在了哪?

娛樂要聞

小S迎47歲生日,首個生日沒大S陪伴

財經要聞

樓市權威發聲

汽車要聞

長城為了拿環塔冠軍有多拼?魏建軍在下一盤大棋!

態度原創

藝術
家居
房產
游戲
軍事航空

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

家居要聞

森林幾何 極簡灰調原木風

房產要聞

又一城購房補貼!買房就發錢,正在海南樓市瘋狂擴散!

死掉的“賽博初戀”,有誰能夠打贏復活賽?

軍事要聞

伊媒:以色列國防部大樓被伊朗導彈擊中

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 各种少妇正面着bbw撒尿视频| 亚洲综合国产一区二区三区| 激情综合色综合啪啪五月丁香搜索| 久热爱精品视频线路一| 国产95在线 | 亚洲| 中文乱码人妻系列一区二区| 失禁大喷潮在线播放| 黑人巨大精品欧美一区二区| 少妇高潮太爽了在线观看| 97夜夜澡人人爽人人模人人喊| 一本久道综合色婷婷五月| 久久婷婷人人澡人人喊人人爽| 无码成人精品区在线观看| 亚洲爆乳无码专区www| 国产成人av在线免播放app| 亚洲国产精品99久久久久久久| 苍井空亚洲精品aa片在线播放| 国产精品水嫩水嫩| 国产精品久久久久国产a级| 伊人久久大香线蕉av五月天宝贝| 性xxxx欧美老妇506070| 麻花传媒68xxx在线观看| 人妻 校园 激情 另类| 婷婷久久久亚洲欧洲日产国码av| 欧美日韩中文国产一区发布| 少妇特殊按摩高潮惨叫无码| 国产目拍亚洲精品一区二区| 免费国产线观看免费观看| 亚洲色婷婷综合久久| 综合自拍亚洲综合图区高清| 国产精品无码成人午夜电影| 日产精品一区二区| 国产极品美女高潮无套| 久久综合久久美利坚合众国| 国产精品三级av及在线观看| 免费无码一区二区三区a片百度| 激情综合色综合久久综合| 国产亚洲精品aaaa片在线播放| 青草草97久热精品视频| 国产成人av大片大片在线播放| 亚洲男人第一无码av网站|