程序中断

原创 2016年08月30日 17:02:28

中断请求触发器(INTR),中断屏蔽触发器(MASK)二者成对出现。
接口中的完成触发器D,为1表示设备准备就绪。
中断源:凡是能够向CPU提出中断请求的各种因素都叫中断源。

因此,有多个中断源,但是,CPU某一时刻只接受一个中断源。那么其他的中断源怎么办?
老办法:排队等候啊。
如何选择中断源?也是老办法,谁优先级高就选谁。正在处理中断呢,能不能被打断?
答案是可以的,优先级的作用也在这里,且是双向的,更高优先级的可以打断,但级别低的不许打断。MASK就是封锁级别低的中断请求的触发器。

CPU在何时查询中断请求?

答案是统一的时间:在每条指令执行阶段的最后时刻,查询所有的设备时候有中断请求。

如何对中断源排序?
有个原则:速度越高的I/O设备,优先级越高,因为若CPU不及时响应高速I/O设备的请求,信息可能会立即损失。

中断向量
CPU响应中断的流程是:暂停现有程序,转去执行该设备的中断服务程序。不同的设备有不同的中断服务程序。
每个服务程序都有一个入口地址,CPU要找到这个入口地址。
中断向量是中断服务程序的入口地址的地址。

向量地址送到PC,查找中断服务程序的入口地址。
因为向量地址中存放的是无条件转移指令。

一次中断处理过程可归纳为中断请求,中断判优,中断响应,中断服务和中断返回。

中断服务程序的流程,主要是四大部分:保护现场,中断服务,恢复现场,中断返回。

保护现场又分为两个部分的保护:
保护程序的断点(PC):由中断隐指令完成(一关,二保,三引)
保护通用寄存器和状态寄存器的内容:由中断服务程序完成

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

中断及中断处理过程

(From:http://www.cppblog.com/aaxron/archive/2011/11/16/160280.html) 中断及中断处理过程 1. 中断和异常的概念区别 ...

android程序接通和挂断电话

关键代码:【PhoneUtils类】 package com.ebupt.phonerecorddemo.server; import java.lang.reflect.Method; impo...

4412裸机程序之中断

CPU运行过程中怎么检测外部事件的发生呢,如usb设备插入,按键按下。 1.通过查询的方式,程序循环查询设备的状态,实现比较简单就是占用CPU资源比较高。 2.中断的方式,当事件发生时主动触发一个...

微信小程序——断网重新加载的问题

微信小程序——断网重新加载的问题这几天一直在修改微信小程序的bug,很是头疼,由于以前没怎么接触过,导致bug修改进度很慢,尤其是今天这个断网重新加载的问题,改了一天,也没弄出个所以然。 由于微信...

一周极客热文:程序员,告诉他们被打断的真实代价

http://geek.csdn.net/news/detail/5326 对程序员来说,打断是低效率的最大原因之一。说实话,这种情况可能对任何人来说都是这样,只是对程序员而言相更糟糕一些。...

新程序猿——————————起步记录(并且不断更新自己工作遇到的问题)

我是13年从大学毕业后,开始步入社会那时候的我什么读不懂

程序被调试器断住以后的故事

摘要 在Linux和Windows系统上开发应用程序的过程中,经常会使用到调试器来进行软件的调试。使用调试器最常见的办法就是“打断点”和“单步跟”。在这简单的两个步骤中,其实有很多细节是容易被忽略的,...

Linux中如何让进程到后台运行?Linux里面程序一直运行不被中断

本文主要来自https://fukun.org/archives/06281192.html 和 http://blog.csdn.net/wangjun_1218/article/details/6...

JS简单实现自定义弹窗及程序中断,继续效果

在Web开发中,我们常常为了更好的UI来自定义弹窗(提示框),下面简要介绍一下自定义弹窗的实现。浏览器默认的弹窗是有程序中断效果的,我们在自定义弹窗中如何实现这种 程序终止与继续的效果呢?...

给结构体中string赋值时,程序被中断

只要把分配空间的malloc,改成new struct 就好错误代码:#include #include using namespace std;typedef struct st{ str...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序中断
举报原因:
原因补充:

(最多只允许输入30个字)