二进制杂文(2) 中断的必要性与有限状态机的关系

发布于 2021-08-08  26 次阅读


背景

见系列第一篇

正文

为什么需要中断

简单、常见、浅显而切中要害的回答是,因为现代操作系统和CPU支持多线程,而实现多线程的方式是切换上下文,为了保存现场和恢复运行点,我们引入了中断这一功能

更深层的回答是,没有中断功能的计算机不是有限状态机

形而上学地,一个没有中断的计算机体系是决定论的:得知某个时刻CPU和内存的全部数据状态,就可以推衍得出未来和过去的全部过程。这样的计算机无法交互,只是个加速器。

加入中断的计算机体系,正在执行的指令和随时可能需要执行的指令形成了异步关系

外界输入的引入使得计算机程序不再是决定论。

而“由用户实时控制的中断输入”,正是有限状态机的扳机。