知识卡片

多道程序设计靠中断制造并发假象

专业/工作 · 1287.e

内容

单核 CPU 在任意时刻只能真正执行一条指令,”多个进程同时运行”其实是分派程序把时间切成毫秒/微秒级的时间片、快速轮流分配给各就绪进程制造出的错觉。每个时间片到期时,计时器电路发出中断信号,CPU 完成当前机器周期后暂停当前进程、保存其进程状态(这个过程称为上下文切换),转去执行中断处理程序,由它决定下一个该运行哪个进程。反直觉的是,这种来回切换本身有开销,却依然能提升机器总体效率——因为如果没有多道程序设计,一个进程等待外设响应的时间就完全被浪费掉了,而多道程序设计能把这段空闲时间转让给其他就绪进程使用。发散:这揭示了”并发”和”并行”是两回事——单核机器上的多道程序设计提供的是并发(任务交替推进的错觉),只有多核/多处理器才能提供真正同时发生的并行,前者靠中断和调度的软件技巧就能实现,后者则需要硬件层面真正的多份执行单元。

参考来源

《计算机科学概论》第3章《操作系统》