曝光!CPU 空闲时居然在干这事!
码农沉思录
共 3477字,需浏览 7分钟
· 2021-04-02
人空闲时会发呆会无聊,计算机呢?
假设你正在用计算机浏览网页,当网页加载完成后你开始阅读,此时你没有移动鼠标,没有敲击键盘,也没有网络通信,那么你的计算机此时在干嘛?
有的同学可能会觉得这个问题很简单,但实际上,这个问题涉及从硬件到软件、从 CPU 到操作系统等一系列环节,理解了这个问题你就能明白操作系统是如何工作的了。
你的计算机 CPU 使用率是多少?
![](https://filescdn.proginn.com/7f91d0fa818ca2d917e7df1ab38721af/3e90169bb48b1c010dcfe01812e63d95.webp)
剩下的 CPU 时间去哪里了?
![](https://filescdn.proginn.com/231eaecf9bb89daeb4e5471dcdcf9dd0/f1306782ccd3b9bac893a3d09fb3b549.webp)
程序、进程与操作系统
![](https://filescdn.proginn.com/a7e2520e52acfff2319929b7f121be23/883e346316269a547723f5725bfc9f91.webp)
![](https://filescdn.proginn.com/9ce65a9554f977133368bd11426b3dc2/506ec7631633f644425ed1be657b81df.webp)
![](https://filescdn.proginn.com/f8370eb9af4cf772f0359735fe176204/56fc0df4ac3a47c1ea745da062ea4239.webp)
调度器与进程管理
![](https://filescdn.proginn.com/ebd191ca965eca77ddc0fa33ec1b5f5a/ec8e73b33aa63d8a057c8505a259f4c7.webp)
队列判空:一个更好的设计
if (queue.empty()) {
do_someting();
}
![](https://filescdn.proginn.com/48f4d44458d6f7c186d09f6118f04235/5cac4eef51639a8b0212a09621516ddd.webp)
一切都要归结到硬件
![](https://filescdn.proginn.com/bc5560f5b07b488b0326adf979d2af39/9134c67d5d530e7ed5707202250e97c7.webp)
软件硬件结合
![](https://filescdn.proginn.com/2ae15f5ac826d1125e7316b637923b74/5d9b7ed11bfca6fb209e8587678ac480.webp)
while (1) {
while(!need_resched()) {
cpuidle_idle_call();
}
}
总结
评论