中断 2022-01-27

中断(interrupt)

from wiki:
中断(Interrupt)是指处理器接收到来自【硬件】或【软件】的信号,提示发生了某个事件,告知CPU注意

为什么会有中断:
中断,本质上是【CPU】和【外设】的一种【异步】通信机制。这里又要提到同步/异步通信机制了。假设处理器与外部设备通信时,必须在向该设备发出指令后进行忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果(即同步的消息通信机制),就会造成大量处理器周期被浪费。更合理的是异步机制:CPU向设备发出指令后,继续执行接下来的其他指令,而外设完成指令执行时通过发送中断信号来主动通知CPU,CPU拿到结果后再继续切换回原来的上下文处理。中断实际上就是【CPU】和【外设】的一种【异步】通信机制,现在被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面

中断的实现:CPU对中断信号的轮询,或者说CPU在监听中断信号
当有设备事件发生,设备会设置CPU的中断引脚来触发一次中断。不同的事件对应不同的中断类型,如a中断拉高,告诉CPU该写了;b中断拉高,告诉CPU可以读了。在每个CPU时钟周期的末尾,CPU会去检测那个中断信号位是否有中断信号到达。如果有,则会根据中断优先级决定是否要暂停当前执行的指令,转而根据中断向量表去执行处理中断的指令。(就是CPU 层面对中断信号的轮询)

问题1:前面说过,CPU和外设通信时忙等待会浪费CPU周期,忙等待就是对设备状态的轮询。而中断本质上也是轮询,为什么中断不浪费CPU周期呢?
因为CPU每个时钟周期轮询一次中断信号,这个时钟周期的其他时间片CPU是可以执行其他指令的,而不是向忙等待一样每个时间点都在轮询其他啥也不干

问题2: 都是轮询,为什么忙等待是同步通信,而中断是异步通信呢?中断也需要轮询中断信号啊
这和问题1实际上是同质的。同步通信是【主动轮询】;异步通信是被动接受通知,也就是【监听通知】,而监听的实现还是轮询。虽然都是轮询,但轮询的方式不同。对于前者,CPU只做一件事,就是一直轮询好了吗好了吗;对于后者,CPU是周期性地轮询,整个节奏是:【干活-看下好了吗-干活-看下好了吗-干活-看下好了吗...】。这看起来就是异步模式了

常见应用

中断的典型应用包括系统时钟、磁盘输入输出操作、断电信号以及软件自陷等。

  • 系统时钟通过一个计数器(多基于某种振动频率)定期向CPU发出中断,CPU通过专门的时钟中断处理程序来保持计时。Clock or timer interrupts are interrupts from your timers present on your board. These timers are configured during board initialization where you can define the interrupt period. Timer/clock interrupts are often used for scheduling. These interrupts invoke the scheduler and it may switch the currently executing thread/process to another by saving the current context and loading another one.
    现代操作系统对系统时钟的另一个主要应用是为进程切换提供时机。一旦时钟中断发生,程序计数器会被自动压栈,而此时操作系统就有机会将程序状态及内存映像转存至别处,并调用进程调度程序来选择下一个进程,并将其进程状态,包括程序计数器,导入寄存器。这样下一个程序就可以运行。应注意进程调度程序的调度时机不止于时钟中断。
  • 磁盘中断标识某个磁盘设备完成了数据的发送/接收。磁盘中断发生后,等待这个中断的进程可以(但未必,这取决于进程调度程序当时的判断)继续执行。
  • 断电中断指示计算机能源即将丧失,计算机可以相应中断程序作有序的关机处理。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容