精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你知道CPU 空閑時在干嘛?

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

[[386802]]

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

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

有的同學可能會覺得這個問題很簡單,但實際上,這個問題涉及從硬件到軟件、從 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 就空閑下來了,此時,我們需要做點什么,就像這樣:

  1. if (queue.empty()) { 
  2.   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 內核中,這段代碼是這樣寫的:

  1. while (1) { 
  2.   while(!need_resched()) { 
  3.       cpuidle_idle_call(); 
  4.   } 

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

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

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

更奇怪的來了,有的同學可能已經注意到了,上面的循環可以是一個while(1) 死循環,而且這個循環里沒有break語句,也沒有return,那么操作系統是怎樣跳出這個循環的呢?

關于這個問題,我們將會在后續文章中講解。

總結

CPU 空閑時執行特定的 halt 指令,這看上去是一個很簡單的問題,但實際上由于 halt 是特權指令,只有操作系統才可以去執行,因此 CPU 空閑時執行 halt 指令就變成了軟件和硬件相結合的問題。

操作系統必須判斷什么情況下系統是空閑的,這涉及到進程管理和進程調度,同時,halt 指令其實是放到了一個 while 死循環中,操作系統必須有辦法能跳出循環,所以,CPU 空閑時執行 halt 指令并沒有看上去那么簡單。

希望這篇文章對大家理解 CPU 和操作系統有所幫助。

本文轉載自微信公眾號「碼農的荒島求生」,可以通過以下二維碼關注。轉載本文請聯系碼農的荒島求生公眾號。

 

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2018-02-02 08:55:47

LinuxCPU

2024-04-16 10:09:42

2019-09-15 19:11:14

CPU操作系統空閑

2017-11-09 15:29:21

CPU溫度常識

2009-11-17 17:11:32

Oracle空閑數據塊

2023-12-08 14:13:00

MemrayPython內存

2020-05-14 14:21:50

谷歌AI數據

2022-08-26 01:41:42

GPUCPU架構

2023-01-31 09:02:24

JSVMVR

2023-01-05 23:18:06

CPU線程

2024-12-27 10:38:41

2010-11-23 10:21:53

跳槽

2022-08-11 08:46:23

索引數據結構

2020-04-27 10:34:23

HTTPDNSDNS網絡協議

2024-05-06 00:30:00

MVCC數據庫

2022-01-04 10:10:34

Garuda LinuArch LinuxLinux

2018-01-10 08:27:00

2019-10-23 05:44:52

Linux 命令

2017-04-17 12:49:43

DockerJava容器

2020-02-26 21:58:41

Linux命令
點贊
收藏

51CTO技術棧公眾號

欧美又粗又长又爽做受| 999精品视频一区二区三区| 免费观看一级一片| 国内自拍亚洲| 亚洲精品伦理在线| 免费99视频| 夜夜狠狠擅视频| 亚洲国产二区| 在线亚洲欧美视频| 国产成人精品一区二区三区在线观看| 末成年女av片一区二区下载| 国产精品美女www爽爽爽| 岛国视频一区免费观看| 老熟妇一区二区三区啪啪| 欧美激情一区| 在线观看日韩专区| 久久久高清视频| 国产一区二区三区四区五区3d| 亚洲高清视频中文字幕| 一本一道久久久a久久久精品91| 懂色av成人一区二区三区| 欧美 日韩 综合| 国产日韩专区| 九九精品在线播放| 无码 人妻 在线 视频| 欧美日韩国产一区二区在线观看| 91国产福利在线| 日韩欧美不卡在线| 无遮挡的视频在线观看| 成人综合激情网| 成人激情在线观看| 99re热视频| 国产婷婷精品| 久久久久国产视频| www日韩在线| 成人精品天堂一区二区三区| 日韩av在线影院| 91丨porny丨九色| 久久免费资源| 欧美日韩国产综合新一区| 欧美日韩dvd| 国产乱色在线观看| 国产精品欧美一级免费| 日产国产精品精品a∨| 日韩一级免费毛片| 岛国一区二区在线观看| 91福利入口| 国产欧美日韩综合精品一区二区三区| 免费的国产精品| 国产va免费精品高清在线观看| 日韩精品一区二区不卡| 在线成人h网| 欧美劲爆第一页| 久久久久久久黄色| 午夜国产精品视频免费体验区| 久久天天躁狠狠躁夜夜躁2014| 欧美a在线播放| 成人综合一区| 最近2019好看的中文字幕免费| 成年人免费观看视频网站| 免费黄色成人| 尤物精品国产第一福利三区| 在线观看国产精品一区| 国产精品免费大片| 一区国产精品视频| 三级黄色片在线观看| 99久久精品费精品国产| 久久香蕉频线观| 亚洲区一区二区三| 影视亚洲一区二区三区| 欧美乱人伦中文字幕在线| 欧美黑人精品一区二区不卡| 国产一区清纯| 韩国三级日本三级少妇99| 好吊操这里只有精品| 亚洲永久字幕| 国产在线观看不卡| 国产sm主人调教女m视频| 成人手机在线视频| 久久综合狠狠综合久久综青草 | 国产鲁鲁视频在线观看特色| 亚洲日本在线天堂| 日韩亚洲欧美视频| 自拍视频在线看| 欧美日韩国产影片| 色婷婷狠狠18禁久久| 欧美激情15p| 中文字幕少妇一区二区三区| 久热这里有精品| 国产模特精品视频久久久久| 国产精品女人网站| av中文字幕免费| 91原创在线视频| 亚洲一二三区精品| 久久亚洲资源| 欧美亚洲综合网| 台湾佬美性中文| 久久超碰99| 欧美大片欧美激情性色a∨久久| 六月丁香在线视频| 欧美aaaaaa午夜精品| 91日韩久久| 国产福利在线看| 亚洲国产美女搞黄色| 国产精品亚洲二区在线观看| 国产精品一区二区精品| 日韩精品免费在线| 永久av免费网站| 亚洲在线播放| 超碰97在线播放| 日本黄色片在线观看| 岛国av一区二区| 国产大片一区二区三区| 精品在线91| 久久久久久久色| 国产一区二区三区三州| 99re8在线精品视频免费播放| 亚洲第一页在线视频| 全亚洲第一av番号网站| 精品免费一区二区三区| 亚洲视频重口味| 西西人体一区二区| 成人资源视频网站免费| 麻豆最新免费在线视频| 91成人看片片| 人妻无码一区二区三区| 国产精品av久久久久久麻豆网| 国产欧美日韩专区发布| 黄色大片在线免费观看| 激情成人中文字幕| 国产精品嫩草69影院| 天天精品视频| 国产精品青青在线观看爽香蕉| 亚洲人视频在线观看| 一区二区三区四区乱视频| 亚洲视频一二三四| 不卡一区2区| 国产激情久久久久| 免费黄色片在线观看| 丰满岳妇乱一区二区三区| 国产精品久久久久久在线观看| 一区二区三区网站| 91免费高清视频| 黄色网址免费在线观看| 欧美高清www午色夜在线视频| 女人十八毛片嫩草av| 丝袜亚洲另类欧美| 欧美凹凸一区二区三区视频 | 国产福利精品视频| 欧美成人综合在线| 日韩欧美国产一区二区| 美国黄色一级毛片| 久久福利毛片| 日韩jizzz| 久久久久毛片| 不卡av电影院| 国产高清视频免费观看| 亚洲欧美一区二区不卡| 黑人无套内谢中国美女| 欧美日韩国产色综合一二三四| av在线不卡一区| 国产在线拍揄自揄拍视频| 精品少妇一区二区三区| 日本一区二区网站| 91美女片黄在线| 久久久久久久片| 久久国产精品亚洲人一区二区三区 | 亚洲国产高清高潮精品美女| 国产a∨精品一区二区三区仙踪林| 成人天堂资源www在线| 女人天堂av手机在线| 最新国产一区| 国产日韩欧美在线| 在线观看操人| 亚洲的天堂在线中文字幕| 国产欧美日韩另类| 久久精品日韩一区二区三区| 高清av免费看| 欧美黄色免费| 美乳视频一区二区| 777午夜精品电影免费看| 久久精品久久久久| 黄片毛片在线看| 一本色道久久综合狠狠躁的推荐 | 一区二区三区不卡在线观看| 色哟哟无码精品一区二区三区| 美女被久久久| 影音先锋欧美资源| 成人午夜大片| 国产精品视频一区国模私拍| 丝袜美腿av在线| 亚洲欧美日韩国产精品| 国产视频一区二区三区四区五区| 亚洲国产成人91porn| 国产中年熟女高潮大集合| 久久99久久99| 欧美国产亚洲一区| 亚洲欧美色图| 欧美三级网色| 亚洲无线观看| 国产精品女主播| 18aaaa精品欧美大片h| 一区二区中文字幕| 六月婷婷综合网| 欧美日韩免费一区二区三区视频 | 麻豆tv入口在线看| 精品国产乱码久久久久久闺蜜| 波多野结衣在线电影| 一区二区三区四区不卡视频| 男人的天堂官网| 99免费精品视频| www.51色.com| 天堂在线一区二区| 成年女人18级毛片毛片免费| 日韩欧美一区二区三区免费看| 国产伦精品一区二区三区照片| 久久亚洲国产精品尤物| 欧美一二三视频| 性网站在线观看| 色狠狠av一区二区三区香蕉蜜桃| 视频一区二区在线播放| 精品久久国产老人久久综合| 国产女人18毛片18精品| 在线免费观看成人短视频| 久久精品视频8| 亚洲丝袜制服诱惑| 99在线视频免费| 91网站最新网址| 男男一级淫片免费播放| 国产一区二区不卡老阿姨| 黄色片在线免费| 亚洲在线观看| 欧美色图另类小说| 在线国产精品一区| 成人在线视频一区二区三区| 91影院成人| 日本福利一区二区三区| 日韩成人一级| 久久久久久亚洲精品不卡4k岛国 | 国产精品888| 国产裸体视频网站| 国产高清精品在线| 亚洲午夜精品一区| 久久精品999| 午夜免费看毛片| 麻豆免费精品视频| 在线观看国产中文字幕| 青青草成人在线观看| 四季av一区二区| 蜜桃视频第一区免费观看| 男人插女人下面免费视频| 日韩精品成人一区二区三区| 欧美亚洲日本在线观看| 日韩成人精品视频| 91亚洲免费视频| 九一九一国产精品| 污视频在线观看免费网站| 国产一二三精品| 91成人在线观看喷潮蘑菇| 成人性色生活片免费看爆迷你毛片| 亚洲性图第一页| av欧美精品.com| 国产色视频一区二区三区qq号| 国产视频一区二区在线观看| 少妇愉情理伦三级| 亚洲欧美日韩久久| 久久久久成人片免费观看蜜芽| 午夜伦欧美伦电影理论片| 中文字幕第15页| 在线看国产一区| 国产在成人精品线拍偷自揄拍| 日韩一区二区在线看| 亚洲欧美激情在线观看| 日韩国产精品一区| 国产粉嫩一区二区三区在线观看 | 免费高清在线一区| 午夜诱惑痒痒网| 99re这里只有精品视频首页| 久久亚洲AV无码专区成人国产| 中文字幕一区不卡| 青青操视频在线播放| 精品成人国产在线观看男人呻吟| 超碰在线免费97| 欧美sm美女调教| 经典三级在线| 精品中文字幕在线观看| 手机av在线| 亚洲a中文字幕| 香蕉久久精品| 男人j进女人j| 免费日韩视频| www.偷拍.com| 国产无遮挡一区二区三区毛片日本| 黄色录像免费观看| 精品国产成人av| 国产精品久久久久久免费| 亚洲娇小xxxx欧美娇小| 91这里只有精品| 992tv在线成人免费观看| 免费成人黄色网| 久久99精品国产99久久| 国产国产精品| 黑鬼大战白妞高潮喷白浆| 国产一区不卡精品| 一区二区三区在线观看免费视频| 亚洲一区二区在线免费观看视频| 中文字幕视频一区二区| 亚洲精品一区二区三区在线观看| 国产视频网址在线| 久久全球大尺度高清视频| 四虎国产精品免费久久5151| 久久国产精品高清| 亚洲最新av| 校园春色 亚洲色图| 99国内精品久久| 免费一级肉体全黄毛片| 欧美日韩高清不卡| 清纯唯美亚洲色图| 欧美—级a级欧美特级ar全黄| 深夜日韩欧美| 亚洲欧洲日夜超级视频| 亚洲欧美不卡| 青青草成人免费视频| 亚洲综合在线视频| 91久久国语露脸精品国产高跟| 亚洲区一区二区| 中文字幕在线直播| 国产日韩欧美精品| 午夜久久黄色| 亚洲视频在线不卡| 亚洲欧洲精品一区二区三区| wwwwww在线观看| 国产香蕉97碰碰久久人人| 激情都市亚洲| 六月婷婷久久| 国产亚洲激情| 一本色道综合久久欧美日韩精品| 亚洲国产成人tv| 嫩草影院一区二区| 欧美高清在线视频观看不卡| 日韩三级精品| 蜜臀av性久久久久蜜臀av| 国产一区二区三区av电影| 女性裸体视频网站| 欧美日韩午夜影院| avtt亚洲| 91视频免费网站| 亚洲成人日韩| 波多野结衣免费观看| 一区二区三区在线免费播放 | 亚洲人成电影网站| 欧美粗大gay| 日韩在线第一区| 美国欧美日韩国产在线播放 | 香蕉影视欧美成人| 日本精品一二区| 欧美性在线观看| 国产永久精品大片wwwapp| 中文字幕无码不卡免费视频| 国产三级精品三级在线专区| 一本色道久久综合精品婷婷 | 91麻豆精品成人一区二区| 欧美女孩性生活视频| 成人直播在线| 成人免费视频网站| 国产欧美二区| 一区二区黄色片| 欧美日本一区二区在线观看| 中文字幕在线三区| 国产精品一 二 三| 久久av一区二区三区| 99久久久无码国产精品不卡| 欧美一级电影网站| av影视在线| 色综合久久av| 国产精品一区二区三区网站| 日韩毛片在线视频| 亚洲网站视频福利| 国产精品成人3p一区二区三区| 亚洲国产精品无码观看久久| 久久视频一区二区| 在线观看一二三区| 欧美第一黄网免费网站| 综合色就爱涩涩涩综合婷婷| 欧美丝袜在线观看| 亚洲sss视频在线视频| 国产在线色视频| 97人人模人人爽人人喊38tv| 天堂一区二区在线免费观看| 中文字幕影音先锋| 日韩精品中文字幕在线| 日日夜夜亚洲| 777久久久精品一区二区三区 | 西游记1978| 福利一区二区在线观看| 国产精品国产精品国产| 久久全球大尺度高清视频| 久久麻豆精品| 中文成人无字幕乱码精品区| 欧美人妖巨大在线|