Day 22 中断的运用

在Day 20有稍微提到中断机制,我们稍微深入说明一下,中断其实也是种不浪费资源的方式,如果处理器一直处於很繁忙的状态,很有可能造成处理器处理上的浪费,所以当中断这个机制引进去之後,可以中断某些等待中的任务,先让处理器去处理其他更重要的任务,所以中断机制还是有其必要性的。

中断分成两大类:
1.硬体中断(Hardware Interrupt):
(1)遮罩式中断(maskable interrupt):以遮罩的方式来关闭中断封锁暂存器。
(2)非遮罩中断(non-maskable interrupt,NMI):无法通过在中断封锁暂存器时,设定位遮罩来关闭。。
(3)处理器间中断(interprocessor interrupt):由处理器发出,被其它处理器接收。仅见於多处理器系统,以便於处理器间通信或同步。
(4)伪中断(spurious interrupt):这种伪中断,有可能是电路异常所产生的,这种伪中断其实有时是被迫的。

2.软件中断(Software Interrupt):这种软件中断,简单说,就是软件因为异常,所以系统不得先不中断软件。

假设一个中断,但却让机器处於一种确定状态,则称为精确中断(precise interrupt),反之,则称为非精确中断。
精确中断必须保证下列四个状况:

1.程序计数器的值已经被储存在已知位置,就是存档完毕的意思。
2.程序计数器所指向的指令之前的所有指令已被执行完毕。
3.程序计数器所指向的指令之後的所有指令不可被执行。如果中断讯号到来後而转入处理前发生了任何针对暂存器/记忆体的更改,都必须予以还原。
4.程序计数器所指向的指令地执行状态已知。

中断尽管可以提高电脑处理效能,但过於密集的中断请求/回应反而会影响系统效能。这类情形被称作中断风暴(interrupt storm)。其实,中断机制还蛮很好用,在嵌入式语法里面也常被使用,只要适当使用,基本上就能让处理器发挥很好的任务处理效能。


<<:  成员 24 人:来玩一场「收尾游戏」吧!

>>:  Day21 Gin with JWT

不只懂 Vue 语法:请说明 Vue CLI 的目录架构?

问题回答 开发时主要在 src 资料夹进行开发,最後打包输出时是 dist 资料夹。在 src 里,...

D21 - 走!去浏览器吃 好味双响 BOM DOM 饭

前言 铁人倒数十天!利用最後时间来分享浏览器,这里才是真正的战场。 在 ECMAScript 上并没...

Day15 - Ptt换页及新增文章列表项目

今天的内容算是当初一时没考虑到的东西。 主要是Ptt一页的文章最多列出20篇,若要搜寻到20篇以前的...

Day 21 - 物理模拟篇 - 原生Canvas建构粒子系统 - 成为Canvas Ninja ~ 理解2D渲染的精髓

在开始之前,我可能需要先给各位科普一些基础的CG动画(Computer Graphic)常识~也就是...

[Day30] 谁怕谁,再来啊!

呼 ~ 终於到了最後一天了,这三十天,说真的有点痛苦煎熬 XD 不过我们先来回顾这次铁人赛介绍了哪些...