中断处理过程

原创 2016年08月30日 18:01:16

部分摘自:http://blog.tianya.cn/post-4429401-96312643-1.shtml


中断:所谓中断就是指CPU在正常执行程序的时候,由于内部/外部事件的出发、或由程序预先设定而引起CPU暂时中止当前正在执行的程序,保存被执行程序相关信息到栈中,转而去执行为内部/外部事件、或由程序预先设定的事件的中断服务子程序,待执行完中断服务子程序后,CPU再获取被保存在栈中被中断的程序的信息,继续执行被中断的程序,这一过程叫做中断。


中断向量:中断服务程序的入口地址。


中断向量表:把系统中所有的中断类型码及其对应的中断向量按一定的规律存放在一个区域内,这个存储区域就叫做中断向量表。


中断源:IA32中有三大类中断源:1、软中断/内中断。 2、外中断/硬件中断   3、异常

 

中断处理过程:

请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回。

 中断处理过程


(1)某一中断源向CPU发起中断请求,对于外部中断CPU在当前指令最后一个时钟周期查询中断请求信号的

   有效性,在系统开中断的情况下,CPU向中断源回送中断应答信号,系统进入中断响应周期。(CPU对

   系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务

    子程序);

(2)CPU响应中断后,将状态标志寄存器压入堆栈保护;

(3)再将其中的中断标志位清除从而关闭中断

(4)CPU将当前CS(代码段地址)和IP(将要执行的下一条地址)压入堆栈保护断点

(5)CPU确定提出请求的中断源,获得中断向量号,在对应的中断向量表获得中断入口地址,

   装入CS和IP中;

(6)将断点处各寄存器的内容压入堆栈保护现场

(7)此时程序跳转至中断服务子程序执行

(8)中断处理完毕,将堆栈各寄存器内容弹栈,恢复断点处各寄存器的值

(9)在中断服务子程序最后安排一条返回指令,执行该指令将堆栈中CS和IP的值弹出,恢复主程序

   断点处地址值,同时恢复标志寄存器的内容。程序转至被中断的程序继续执行。

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

相关文章推荐

浅析C语言的一个关键字——register

1、register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码,/* Procedure for the ass...

堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操...

中断的概念和中断处理过程

中断的概念和中断处理过程 (1)中断: 在运行一个程序的过程中,断续地以“插入”方式执行一些完成特定处理功能的程序段,这种处理方式称为中断。 (2)中断的作用: ◎并行操作 ◎硬件故障报...

CPU对中断处理的流程 - idt

CPU对中断处理的流程 我们首先必须了解CPU在接收到中断信号时会做什么。没办法,操作系统必须了解硬件的机制,不配合硬件就寸步难行。现在我们假定内核已被初始化,CPU在保护模式下运行。   CPU执行...

网易公开课《Linux内核分析》学习心得-分析system_call中断处理过程

杨怡泽 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000实验本周的实验是跟踪系统调用,所以使用上...

中断及中断处理过程

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

5分钟搞定内存字节对齐

写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /***********************...

中断发生时用户堆栈和内核堆栈的切换

如果一个中断产生时任务正在用户代码中执行,那么该中断会引起CPU特权级从3到0的变化,此时CPU就会运行用户态堆栈到内核态堆栈的切换操作。CPU会从当前任务的任务状态段TSS中取得新堆栈的段选择符和偏...

中断处理程序与中断服务例程

1. 什么是中断 简单来说中断就是硬件设备与处理器的一种交流方式,比如当我按下一个键时,只有当处理器知道我按下了这个键并且做出相应的处理时,按键这个操作才是有效的。我们知道处理器的速度远远高于外...

中断处理程序&中断服务例程

中断处理程序(Interrupt Handler)和中断服务例程ISR(Inerrupt Service Routine)是两个不同的概念;一条中断线对应一个中断处理程序,而一个中断处理程序再对应...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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