精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99国产精品久久久久久久成人| 中文字幕成人动漫| 亚洲小说区图片| av一区二区三区在线| 国产成人精品一区| 夫妻性生活毛片| 日韩欧美影院| 欧美一区二区三区四区视频| 99999精品视频| 国产网友自拍视频导航网站在线观看| 成人中文字幕在线| 国产精品女主播| 国产精品第108页| 青青草原综合久久大伊人精品 | 亚洲3区在线| 色哟哟国产精品| 国产精品视频二| аⅴ资源新版在线天堂| av福利精品导航| 国产日韩精品在线| www.国产毛片| 悠悠资源网久久精品| 日韩中文字幕久久| 亚洲一级中文字幕| 爱爱精品视频| 欧美一区二区三级| 亚洲性图一区二区| 国产免费不卡| 亚洲sss视频在线视频| 中文字幕一区二区三区乱码| 免费a级毛片在线观看| 懂色av一区二区三区免费观看| 国产精品入口夜色视频大尺度| 日韩美女黄色片| 欧美69视频| www.美女亚洲精品| 人与嘼交av免费| 欧美猛男男男激情videos| 亚洲二区在线播放视频| 韩国三级与黑人| 亚洲精品aa| 欧美日韩不卡一区二区| 8x8x最新地址| 91大神在线观看线路一区| 色综合色综合色综合色综合色综合 | 国产精品久久久久久超碰| 久草国产精品视频| 亚洲激情在线| 海角国产乱辈乱精品视频| 久久久国产精品黄毛片| 欧美色图首页| 欧美极品欧美精品欧美视频| 国产在线拍揄自揄拍无码视频| 午夜精品久久99蜜桃的功能介绍| 久久艳片www.17c.com| 亚洲区一区二区三| 91精品秘密在线观看| 日韩中文视频免费在线观看| jizzjizzjizz国产| 999视频精品| 不卡毛片在线看| 欧美三根一起进三p| 亚洲欧美伊人| 高清欧美电影在线| 中文字幕亚洲精品一区| 久久国产精品毛片| 国产精品大陆在线观看| 伊人网免费视频| 黑人精品欧美一区二区蜜桃| 亚洲www在线| 亚洲精品一区二区三区区别| 不卡一二三区首页| 日韩videos| 免费大片在线观看www| **欧美大码日韩| 一二三四中文字幕| 美女高潮在线观看| 在线看国产一区| 欧美体内she精高潮| 国产成人高清精品免费5388| 亚洲精品午夜精品| 日本成人免费在线观看| 欧美jjzz| 欧洲成人性视频| 亚洲网站在线免费观看| 国产一区二区成人久久免费影院| 97人人模人人爽人人少妇| 欧美熟妇交换久久久久久分类 | 原纱央莉成人av片| 欧美精品亚洲二区| 俄罗斯女人裸体性做爰| 亚洲aaa级| 久久五月天综合| 国产无遮挡又黄又爽在线观看| 免费在线亚洲欧美| 91亚洲国产成人久久精品网站| 国产 欧美 自拍| 中文字幕av一区二区三区| 成人在线视频一区二区三区| 欧美精品总汇| 精品国产一区二区三区av性色| 亚洲熟妇一区二区三区| 久久久久亚洲| 国产成人精品久久| 午夜免费福利视频| 中文字幕乱码一区二区免费| www精品久久| 日韩三区四区| 亚洲性生活视频| 国产乡下妇女做爰毛片| 久久国产生活片100| 精品视频第一区| www视频在线看| 欧美影视一区在线| 人体私拍套图hdxxxx| 中文在线日韩| 国产在线视频91| 九色在线视频| 午夜视黄欧洲亚洲| 巨乳女教师的诱惑| 91精品亚洲| 国产精品天天狠天天看| 亚洲色图欧美视频| 亚洲成人资源网| 久久久久亚洲av片无码v| 日韩大片在线| 国产精品成人一区| 欧美中文在线| 欧美日韩国产精品| 成人午夜精品无码区| 午夜精品亚洲| 亚洲a成v人在线观看| 69av在线| 欧美日韩国产一二三| 一级片视频免费看| 久久婷婷久久| 久久亚洲一区二区| 欧美久久天堂| 亚洲摸下面视频| 日本在线视频免费观看| 大桥未久av一区二区三区中文| 美国av在线播放| 青草综合视频| 久久久久999| 国产视频一区二区三| 中文字幕在线免费不卡| 亚洲国产成人va在线观看麻豆| 日韩毛片视频| 国产精品主播视频| 国产素人视频在线观看| 制服丝袜中文字幕一区| 国产精品 欧美激情| 国产成人免费高清| 欧美日韩不卡在线视频| 红杏一区二区三区| 91av视频在线免费观看| 九色网友自拍视频手机在线| 日本韩国欧美在线| 性少妇xx生活| 国产精品一区二区久久精品爱涩 | 在线成人h网| 精品一区二区三区日本| 欧美性xxx| 色妞久久福利网| av片免费播放| 偷拍一区二区三区四区| 性久久久久久久久久| 日韩不卡一二三区| 精品久久免费观看| 第四色在线一区二区| 日本一区二区不卡| 在线观看麻豆蜜桃| 欧美成人一级视频| 天天综合网久久综合网| 国产精品大尺度| 免费黄色av网址| 久久久久看片| 欧美日韩一区二区三区电影| 久草精品视频| 国产精品男人爽免费视频1| 午夜dj在线观看高清视频完整版 | 久久人人爽人人人人片| 天堂影院一区二区| dy888午夜| 香蕉视频一区二区三区| 91精品美女在线| 超碰资源在线| 久久人人爽人人爽人人片亚洲| 日本人妻丰满熟妇久久久久久| 欧美午夜精品免费| 久久精品视频6| 国产精品久久久久天堂| 中文字幕人妻一区二区三区| 免费高清视频精品| 91精品国产91久久久久麻豆 主演| 国产日产精品_国产精品毛片| 91久久精品美女高潮| 一个人www视频在线免费观看| 精品国产一区二区三区在线观看| 手机在线精品视频| 在线成人小视频| 蜜臀精品一区二区三区| 亚洲精品欧美在线| 自拍偷拍你懂的| 99re视频这里只有精品| 国产不卡的av| 免费在线视频一区| 亚洲中文字幕无码专区| 综合久久婷婷| 伊人av成人| 国产欧美久久一区二区三区| 国产伦精品一区二区三区四区视频| 成人在线免费av| 欧美孕妇毛茸茸xxxx| 日本乱理伦在线| 美女性感视频久久久| 91看片在线观看| 亚洲美女av电影| 男人天堂一区二区| 日韩欧美自拍偷拍| 国产精品伦理一区| 精品婷婷伊人一区三区三| 在线能看的av| 性欧美疯狂xxxxbbbb| 妺妺窝人体色www聚色窝仙踪| 国产精品你懂的在线欣赏| aaaaa级少妇高潮大片免费看| proumb性欧美在线观看| 国产精品无码自拍| 国产乱码字幕精品高清av| 欧美日韩中文不卡| 美女爽到高潮91| 成年人在线观看视频免费| 亚洲综合精品四区| 91av资源网| 亚洲欧美清纯在线制服| 97国产在线播放| 亚洲毛片一区| 免费成人午夜视频| 亚洲一区免费| 国产二区视频在线播放| 夜夜嗨一区二区| av动漫免费看| 西西裸体人体做爰大胆久久久| 九色在线视频观看| 久久精品男女| 日本免费观看网站| 久久丁香综合五月国产三级网站 | 国产原创视频在线| 欧美日韩国产激情| 久久国产视频一区| 在线观看日韩国产| 艳妇乳肉豪妇荡乳av无码福利| 色www精品视频在线观看| 久久影视中文字幕| 欧美性色综合网| 中文字幕资源网| 欧美一区日韩一区| 亚洲经典一区二区| 日韩禁在线播放| 成人jjav| 欧美成人性生活| 女人高潮被爽到呻吟在线观看| 青青青国产精品一区二区| 日本高清不卡一区二区三区视频 | 欧美日韩第二页| 日本中文一区二区三区| 中文字幕在线观看日| 国产精品亚洲一区二区三区妖精| 欧美做受高潮中文字幕| 久久午夜电影网| 午夜国产福利视频| 亚洲成人777| 欧美亚洲另类小说| 69堂成人精品免费视频| 欧美 日韩 综合| 最近中文字幕日韩精品| 污污视频在线看| 国产91色在线|| 国产欧美日韩电影| 久久国产日韩欧美| 欧美独立站高清久久| 日韩视频在线视频| 日韩avvvv在线播放| 亚洲丝袜在线观看| 久久久精品免费观看| 久久中文免费视频| 91福利在线看| 亚洲第一大网站| 在线日韩精品视频| 136福利第一导航国产在线| 国产精品久久久久久久久免费看 | 久久久久毛片免费观看| 久久99精品久久久久久秒播放器| 成人高清av| 久激情内射婷内射蜜桃| 久久99精品网久久| 中文字幕av网址| 亚洲午夜视频在线观看| 进去里视频在线观看| 亚洲国产日韩欧美在线99| 天天影视久久综合| 欧美在线视频a| 澳门成人av| 五月天av影院| 免费美女久久99| 人妻大战黑人白浆狂泄| 亚洲一区二区在线观看视频| 在线免费观看高清视频| 日韩高清av在线| 欧美亚洲系列| 成人午夜两性视频| 成人综合一区| 欧美精品一区二区三区免费播放| av成人免费在线观看| 国产精品免费人成网站酒店| 欧美曰成人黄网| 国产一区精品| 欧美一区二三区| 日韩av网址大全| 男人日女人视频网站| 国产成人亚洲综合a∨婷婷 | 97人妻精品一区二区三区免费| 中文字幕一区日韩精品欧美| 男人的天堂av网站| 亚洲美女黄色片| 日韩在线伦理| 久久久久久久久一区二区| 激情久久婷婷| 扒开伸进免费视频| 亚洲成人综合视频| 欧美一级特黄aaaaaa大片在线观看| 欧美不卡视频一区发布| crdy在线观看欧美| 看全色黄大色大片| 国产美女精品人人做人人爽| 69夜色精品国产69乱| 欧美色大人视频| 在线观看免费黄色| 成人午夜一级二级三级| 久久久久午夜电影| 亚洲精品乱码久久久久久9色| 亚洲资源中文字幕| 丰满熟妇人妻中文字幕| 午夜精品视频在线| 欧美人体视频| 色综合av综合无码综合网站| 久久综合九色综合97婷婷| 91精品国产高清一区二区三密臀| 日韩高清免费观看| 另类图片综合电影| 五月天亚洲综合| 国产一区不卡视频| 久久久久久久极品内射| 亚洲精品美女久久久| 中文字幕在线高清| 日韩精品一区二区三区丰满 | 欧美视频二区36p| 国产三级电影在线观看| 国产精品网站视频| 66国产精品| 黄色在线免费播放| 欧洲一区二区三区免费视频| 番号集在线观看| 91久久久久久久久久久| 欧美日韩四区| 国产精品久久无码| 欧美性xxxxxx少妇| 新版中文在线官网| 精品一区国产| 日本不卡123| 丝袜 亚洲 另类 欧美 重口 | 久久久精品人妻无码专区| 欧美色综合久久| 手机av在线播放| 欧美不卡在线一区二区三区| 美国三级日本三级久久99| 日韩欧美综合视频| 日韩国产精品一区| 开心久久婷婷综合中文字幕| 最新av网址在线观看| 91农村精品一区二区在线| 在线观看国产精品视频| 欧美激情亚洲自拍| 菠萝蜜一区二区| 成人在线观看一区二区| 欧美视频自拍偷拍| 国精一区二区三区| 亚欧精品在线| 99热国产精品| 91成人一区二区三区| 欧美亚洲成人免费| 自拍日韩欧美| 亚洲无人区码一码二码三码的含义| 欧美一区二区高清| 成人国产精品入口免费视频| 欧美激情视频免费看| 中文字幕一区二区日韩精品绯色| 青青操视频在线| 99免费在线观看视频|