问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

操作系统系统在中断响应和中断处理中做了哪些处理?

发布网友 发布时间:2022-05-01 07:15

我来回答

2个回答

热心网友 时间:2022-06-25 23:21

操作系统对中断信号的处理实际是对硬件中断的一种模拟, CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在INTA引脚连续发两个负脉冲,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到这个中断类型码后,CPU做如下动作:

1)将中断类型码放入暂存器保存;

2)将标志寄存器内容压入堆栈,以保护中断时的状态;

3)将IF和TF标志清0。
目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;

4)保护断点。
断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。保护断点就是将当前的IP和CS的内容入栈,为了以后正确地返回主程序;

5)根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。
对NMI进入的中断请求,由于其类型码固定为2,因此CPU不用从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表中0000:0008H~0000:000BH单元内容分别装入IP和CS即可。

关于<.图3 中断处理过程 > 的几点说明:

1)8086/8088除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均设立有优先级,其中内中(除单步外)――即0、1、3、4号中断的优先级高于非屏蔽中断,非屏蔽中断高于可屏蔽中断,单步中断优先级最低;

2)只有在可屏蔽中断的情况下才判IF=1?,才取中断类型码,其余的没有这个动作。

3)关于单步中断,它是每执行一条指令中断一次,显示出当时各寄存器的内容,供用户参考,当进入单步中断响应时,CPU自动清除了TF,在中断返回后,由于恢复了响应时的标志寄存器的值,因此TF=1,执行完一条指令后又进入单步中断,直到程序将TF改为0为止。

4)关于中断的嵌套,NMI总是可以响应的,若在中断处理子程序中设立了开中断指令,INTR的请求也能响应。

5)弹出IP、CS、标志,返回断点的动作由IRET指令完成。

6)当遇到等待指令或串操作指令时,允许在指令执行的过程中进入中断。这时需注意在中断处理子程序中保护现场,以保证中断返回后能继续正确地执行这些指令。

热心网友 时间:2022-06-25 23:21

1)将中断类型码放入暂存器保存;

2)将标志寄存器内容压入堆栈,以保护中断时的状态;

3)将IF和TF标志清0。

目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;

4)保护断点。

断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。保护断点就是将当前的IP和CS的内容入栈,为了以后正确地返回主程序;

5)根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。

对NMI进入的中断请求,由于其类型码固定为2,因此CPU不用从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表中0000:0008H~0000:000BH单元内容分别装入IP和CS即可。

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

1.请求中断

当某一中断源需要CPU为其进行中断服务时,就输出中断请求信号,使中断控制系统的中断请求触发器置位,向CPU请求中断。系统要求中断请求信号一直保持到CPU对其进行中断响应为止。

2.中断响应

CPU对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序。对于外部中断,CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。

3.关闭中断

CPU响应中断后,输出中断响应信号,自动将状态标志寄存器FR或EFR的内容压入堆栈保护起来,然后将FR或EFR中的中断标志位IF与陷阱标志位TF清零,从而自动关闭外部硬件中断。因为CPU刚进入中断时要保护现场,主要涉及堆栈操作,此时不能再响应中断,否则将造成系统混乱。

4.保护断点

保护断点就是将CS和IP/EIP的当前内容压入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行,这一过程也是由CPU自动完成。

5.中断源识别

当系统中有多个中断源时,一旦有中断请求,CPU必须确定是哪一个中断源提出的中断请求,并由中断控制器给出中断服务子程序的入口地址,装入CS与IP/EIP两个寄存器。CPU转入相应的中断服务子程序开始执行。

6.保护现场

主程序和中断服务子程序都要使用CPU内部寄存器等资源,为使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。现场保护是由用户使用PUSH指令来实现的。

7.中断服务

中断服务是执行中断的主体部分,不同的中断请求,有各自不同的中断服务内容,需要根据中断源所要完成的功能,事先编写相应的中断服务子程序存入内存,等待中断请求响应后调用执行。

8.恢复现场

当中断处理完毕后,用户通过POP指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处寄存器的原值。

9.中断返回

在中断服务子程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的IP/EIP和CS值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志寄存器FR或EFR的内容,使CPU转到被中断的程序中继续执行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 达芬奇密码到底是个什么意思? windows 2003 系统 用哪个版本好 达芬奇有哪些名言?各自是什么意思? 龙眼的种子怎样才能发芽? 电影上有一种手法叫达芬奇手法,指的是什么? DNF狂战士觉醒要几个步骤? 栈用来调用函数时保护断点,局部变量为什么也入栈? 达芬奇现象是什么意思? 8086中断的操作过程为:标志寄存器入栈,IF和TF清零,断点入栈,中断服务程序入口地址,硬件自动完成吗? 孕期5个多月了这两天天天做噩梦是怎么回事 单片机中发生中断时断点地址是最先入栈还是最后入栈,现场在入栈时有没有入栈的规则呢? 孕期老做梦,要么吓醒要么哭醒是怎么了? C:\WINDOWS\winenct.exes是病毒吗? 孕晚期晚上老是做梦怎么回事 孕期做噩梦怎么回事啊 龙眼种子怎样容易发芽??? 孕期睡觉都有做梦什么原因? 板蓝根带来的危害是什么? 什么是调度自动化主站? 最近上火了,嘴巴都长泡了,可以喝板蓝根么 达芬奇的密码(不是电影)是什么意思达芬奇 狂战士的觉醒的技能怎么用啊? 快递没拿是放菜鸟驿站好还是蜂巢好? 单片机中断的断点保护和现场保护都是在中断响应的时候进行的吗? 蜂巢寄件好还是菜鸟裹裹好? 桂圆核怎么种出盆栽? 如果用汇编语言写中断处理函数,还需要自己写保存断点数据吗?还是单片机会自己保存? 为什么地址写蜂巢快递柜快递员却送到了菜鸟驿站,是不是有些品牌的快递不和蜂巢合作了还是啥的? 全国最早的快递柜是菜鸟还是蜂巢??? 龙眼种子放土里面几天能生芽? 现在DNF狂战多少级觉醒? 51单片机执行中断时是不是不将临时数据压入堆栈,比如一些临时变量。只是将断点的地址压入, 把龙眼种子从龙眼果实中取出来一年之后还可以在适合的条件下发芽吗? 2020年美术生联考成绩178分还适合走艺术类吗? 如何看待蜂巢和菜鸟的快递大战? DNF里的狂战怎么好控制好觉醒啊?它又不是瞬发的。 2020年河南高考成绩排名17850名能上什么大学? 51单片机:假定设定堆栈指针SP的值为46H,在进行子程序调用时把断点地址进栈保护后,SP的值为48H DNF狂战士怎么觉醒?? 蜂巢和菜鸟快递柜需要网络插座吗?