计算机死机的时候,它在干什么?
消息来源:baojiabao.com 作者: 发布时间:2024-05-29
本文来自微信公众号:编程技术宇宙 (ID:xuanyuancoding),作者:轩辕之风 O
大家好,我是轩辕。
今天花几分钟跟大家分享一个很有意思又能涨知识的问题:电脑死机的时候到底在干什么?
电脑死机,应该每个接触计算机的小伙伴都经历过吧。
尤其是早些年,电脑配置还没现在这么高的时候,多开几个重量级应用程序,死机就能如约而至,就算你把键盘上的 CTRL+ALT+DELETE 按烂了,任务管理器也出不来,最后只能默默含泪长按关机按钮,强制关机。
那么,你有没有想过,电脑在死机的时候,它到底在干嘛呢?
众所周知,计算机的核心中枢是中央处理器 CPU。上过计算机基础课程的同学都被教导过:CPU 是一根筋死脑筋,只知道不断的取出指令来一条条执行,直到关机方休。
所以理论上,死机分为两种,一种是 CPU 罢工不干了,不再执行下一条指令了,这属于硬件死机,不过这种情况基本不会发生。
更多的是软件层面的死机,也就是 CPU 被困在了某个地方出不来了,导致本该执行的程序得不到执行,看起来就是死机了一般。
聪明的你可能马上想到,如果写一个死循环,把 CPU 陷在里面出不去,是不是就能死机了?比如这样:
void dead_loop() { while (1) { ... }}
你可以试一下,会发现为 CPU 降温的风扇可能会转起来,但计算机依旧能正常工作,并没有死机。
死循环,CPU 不是应该一直在这里转圈吗?难道不会死机?
这就不得不提到一个概念:中断。
中断
中断这个概念,绝对是计算机史上最伟大的发明之一。
中断,顾名思义,用于打断 CPU 正常的工作,让它去执行别处的指令程序。
操作系统之所以能够掌控全局,就得益于它启动时给 CPU 安插的一系列的中断处理函数(比如我们最常见的时钟中断),好让操作系统能周期性的收回 CPU 的执行权,调度别的线程来执行。
所以,即便你某个线程进入了死循环,在你的时间片用完之后,也得乖乖交出 CPU,让别的程序来执行。
想用一个死循环就把电脑搞死机,那自然是不可能的。
其实想来也是,如果这么容易就给你搞死机了,那这操作系统也太菜了吧,新手如果刚学编程,还不得一天强制重启电脑十几回?
退一万步讲,就算不考虑中断的影响,现在的 CPU 大都是多核,一个线程进入死循环,但还有别的核可以参与系统调度,也依然不会死机。
那么回到开始的问题,那到底 CPU 被困在了哪里出不来,连中断都拿它没办法呢?
其实有两种情况:
1、中断确实拿它没办法
很多人都知道中断的概念,但很多人不知道,中断也是有优先级的。
这很容易理解,比如 CPU 正在执行程序,突然发生了一个中断事件。CPU 保存好当前执行的上下文,转头去处理这个中断事件,但刚处理到一半儿,这时又有一个新的中断事件来了,那 CPU 怎么办?要不要响应?
所以中断也有优先级之分,低优先级的中断无法打断高优先级的中断。
有了这个前提来试想一下,如果由于操作系统内核代码写的不当,在处理某个中断的时候陷入了死循环,比如自旋锁,会发生什么?
因为在处理中断的时候,CPU 运行在一个很高的优先级上,一般的中断是无法把执行权抢过去的,这就导致这颗 CPU 核心成为了"植物人",怎么叫它都没反应了。
2、中断能抢到 CPU,但发现没有线程可以调度
程序员们对死锁这个概念应该不陌生,两个线程 A 等待 B,B 等待 A,两个线程互相等待对方让步(释放锁),形成僵持局面,最后成为死锁。
如果死锁发生在应用层面,那问题不大,最多就是两个程序死了。但如果发生在内核呢?
比如在 Windows 操作系统内核中,就有大量的全局性的锁,一个不小心造成死锁,其他想要的线程都得进入等待队列,那就凉凉了。
引用一段另一位大神 Tim Chen 的描述(我觉得特别形象):
2022-12-21 19:09:45相关文章
- 美国法院裁定阿里须为Squishmallows玩具侵权案答辩
2023-12-28 19:59:34
- 小米汽车传员工3700人 雷军称小米汽车不可能卖9万9
2023-12-28 19:41:57
- 国家新闻出版署:认真研究《网络游戏管理办法(草桉徵求意见稿)》关切 实行前进一步完善
2023-12-28 19:14:56
- 天猫新规可以无条件申请“仅退款”了?淘宝天猫又离狗多多零元购近了一步
2023-12-28 18:57:55
- 印度以打击金融犯罪为由逮捕了两名 vivo 高管
2023-12-26 16:49:01
- 在国外微信收不到国内信息?微信和WeChat将被拆分
2023-12-15 10:40:15
- 苹果iPhone15 系列手机发布最新消息 预计上市发布时间9月
2023-08-06 23:21:02
- 华为将发布鸿蒙HarmonyOS4操作系统 功能五大升级支持设备清单
2023-08-06 23:17:37
- 整治自媒体网红账号 400万粉丝网红发布擦边视频被无限期封禁
2023-07-12 09:56:09
- 网传微信文件传输助手是真人是真的吗?微信官方回应
2023-06-27 15:53:32
- 电信移动送手机成了“信用购”?你上了运营商的贷款套路了吗?
2023-06-12 17:18:55
- 中国电信广东地区崩了无信号 客服回应已在核实处理
2023-06-08 15:39:04
- 消息称小米新能源汽车价格表正讨论定价区间:双版本不同配置,高配或超 35 万元
2023-03-06 12:56:03
- 华为因制裁被传或分拆剥离手机业务? 内部人士回应:可能性不大.
2023-03-05 23:26:41
- OPPO正式发布安第斯智能云,让终端更智能
2023-02-24 16:02:27
- 华为与OPPO签订全球专利交叉许可协议 包括5G蜂窝通信专利
2023-02-24 16:02:26
- 老蛙将推MINI镜头新品:目前未知具体规格 官宣将于12月20日发布
2023-02-24 16:02:26
- 首发全新35mm定制光学系统 努比亚Z50性能同样强悍
2023-02-24 16:02:25
- Redmi K60屏幕细节曝光:全系标配2K护眼柔性直屏+5000mAh大容量电池
2023-02-24 16:02:25
- OPPO Find N2今天发 合金金属折叠屏更轻了
2023-02-24 16:02:24