欢迎来到天天文库
浏览记录
ID:1517296
大小:2.38 MB
页数:27页
时间:2017-11-12
《中断在操作系统中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、www.themegallery.com中断在操作系统中的应用中断实现的机制系统调用与中断的关系硬件中断的例子及其工作原理一、二、三、中断的定义:在CPU执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需暂停正在执行的程序,转去处理该事件(执行中断服务程序),并在处理完毕后返回断点处继续执行被暂停的程序,这一过程称为中断。断点处是指返回主程序时执行的第一条指令的地址。中断源:指能够引起中断的原因或发出中断申请的来源。主要有以下几类:(1)外部设备请求中断。一般的外部设备如键盘、磁盘驱动器、磁带机、打印机等在工作告一段落后发出中断请求,要求CPU为它服务。(2)实时时钟请求中
2、断。如定时/计数器,先有CPU发出指令,让时钟电路开始计时工作,待规定的时间到,时钟电路发出中断申请,CPU转入中断服务程序进行中断处理。(3)故障请求中断。当出现电源掉电、存储出错或溢出故障时,发出中断请求,CPU转去执行故障处理程序,如启动备用电源、报警等。(4)异常。由于CPU执行指令引起的中断中断的分类:1.按中断的性质来划分,则系统中的中断可分为:可屏蔽中断和不可屏蔽中断。对不可屏蔽中断,程序员不能控制它,系统肯定会立即响应的,而对于可屏蔽中断,汇编语言程序员可以通过指令CLI和STI来控制对它们的响应。2.按中断源来划分,则系统中的中断又可分为:硬件中断和软件中断。对于硬件中断,
3、程序员不能控制它,它们基本上是随机产生的,而对于软件中断,汇编语言程序员可通过指令INT和INTO来有目的安排它们的。中断请求中断排队中断响应中断处理中断返回中断处理过程中断请求是由中断源向CPU发出中断请求信号。软件中断源是在CPU内部由中断指令或程序出错直接引发中断;硬件中断源必须通过专门的电路将中断请求信号传送给CPU,CPU也有专门的引脚接收中断请求信号。例如,8086/8088CPU用INTR引脚(可屏蔽中断请求)和NMI引脚(非屏蔽中断请求)接收硬件中断请求信号。一般外设发出的都是可屏蔽中断请求中断排队:通常,系统中有多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定
4、哪个中断更紧迫,以便首先响应。为此,计算机给每个中断源规定了优先级别,称为优先权。这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。1.中断优先级中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以响应和处理,这个响应的次序称为中断优先级。对于不同级别的中断请求,一般的处理原则是:(1)不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。(2)低优先级中断正在处
5、理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。(3)高优先级中断正在处理,出现低优先级请求,可暂不响应。(4)中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。2.中断优先级的确定在微机系统中通常用三种方法来确定中断源的优先级别,即软件查询法、硬件排队电路法和专用中断控制芯片法。1)软件查询法软件查询法需要简单的硬件电路支持。以8个中断源为例,其硬件电路如图所示,将8个外设的中断请求组合起来作为一个端口(中断寄存器),并将各个外设的中断请求信号相或,产生一个总的INT信号。软件查询法的硬件电路软件查询方式的流程图2)硬件排
6、队电路采用硬件排队电路法,各个外设的优先级与其接口在排队电路中的位置有关。常用的硬件优先权排队电路有链式优先权排队电路、硬件优先级编码加比较器的排队电路等。下图给出了一个链式优先级排队电路。图中,当响应信号沿链式电路进行传递时,最靠近CPU并发出中断请求的接口将首先拦截住响应信号,CPU进入相应外设的中断处理程序,在服务完成后,该外设撤消其中断请求,解除对下一级外设的封锁。3.中断嵌套CPU在执行低级别中断服务程序时,又收到较高级别的中断请求,CPU暂停执行低级别中断服务程序,转去处理这个高级别的中断,处理完后再返回低级别中断服务程序,这个过程称为中断嵌套,如图所示。一般CPU响应中断请求后
7、,在进入中断服务程序前,硬件会自动实现关中断,这样,CPU在执行中断服务程序时将不能再响应其他中断请求。为了实现中断嵌套,应在低级别中断服务程序的开始处加一条开中断指令STI。能够实现中断嵌套的中断系统,其软、硬件设计都非常复杂,如果采用了可编程中断控制器,就会方便很多。中断响应:经中断排队后,CPU收到一个当前申请中断的中断源中优先级别最高的中断请求信号,如果满足条件,则中止执行现行程序,响应中断申请。中断
此文档下载收益归作者所有