首页 [精品]什么是中断

[精品]什么是中断

举报
开通vip

[精品]什么是中断[精品]什么是中断 什么是中断 中断处理过程(2007-04-28 21:29:05) 转载标签: 中断保存现场恢复现场 1.中断的一般处理过程 中断对于操作系统来说非常重要,就好像机器中的齿轮,驱动各部件的动作。所以,许多人把操作系统称为是由“中断驱动”的。那麽,究竟什麽是中断呢,我们有如下定义:所谓中断是指CPU对系统发生的某个事件做出的一种反应,即CPU暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件成为中断源。中断源向CPU提...

[精品]什么是中断
[精品]什么是中断 什么是中断 中断处理过程(2007-04-28 21:29:05) 转载标签: 中断保存现场恢复现场 1.中断的一般处理过程 中断对于操作系统来说非常重要,就好像机器中的齿轮,驱动各部件的动作。所以,许多人把操作系统称为是由“中断驱动”的。那麽,究竟什麽是中断呢,我们有如下定义:所谓中断是指CPU对系统发生的某个事件做出的一种反应,即CPU暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件成为中断源。中断源向CPU提出进行处理的请求称为中断请求。发生中断时,被打断的暂停点称为断点。 在明确了中断的概念后,我们再来看一看中断的类型。现代计算机都根据实际需要配置不同类型的中断机构,因此,按照不同的分类方法就有不同的中断类型。目前很多小型机系统都采用按中断事件来源进行划分的方式进行非类。主要分为两类:中断和异常。中断是指由CPU以外的事件引起的中断,如I/O中断,时钟中断,控制台中断等;异常是指来自CPU的内部事件或程序执行中的事件引起的过程。如由于CPU本身故障,程序故障引起的中断等。 下面,再让我们研究一下中断的一般处理过程。中断处理一般分为中断响应和中断处理两个步骤。中断响应由硬件实施,中断处理主要由软件实施。首先,我们看一下中断响应。对中断请求的整个处理过程是由硬件和软件结合起来而形成的一整套中断机构实施的。发生中断时,CPU暂停执行当前的程序,而转去处理中断。这个由硬件对中断请求作出反应的过程,称为中断响应。一般说来,中断响应顺序执行下述三步动作: 〈1〉中止当前程序的执行; 〈2〉保存原程序的断点信息; 〈3〉转到相应的处理程序。 通常CPU在执行完一条指令后,立即检查有无中断请求。如有,则立即作出响应。其次,我们再看一下中断处理。中断响应后,就由软件(中断处理程序)进行相应处理。中断处理过程大致分为四个阶段:保存被中断程序的现场,分析中断原因,转入相应处理程序进行处理,恢复被中断程序现场(即中断返回)。下面对软件执行的中断处理过程做进一步介绍。 〈1〉保存现场。保存被中断程序现场的目的是为了在中断处理完之后,可以返回到原来被中断的地方,在原有的运行环境下继续正确的执行下去。通常,中断响应时硬件已经保存了 PC和PS的内容,但是还有一些状态环境信息需要保存起来。如果不做保存处理,那麽即使以后能按断点地址返回到被中断程序,但由于环境被破坏,原程序也无法正确运行。中断响应时硬件处理时间很短,所以保存现场工作可由软件来协助硬件完成,并且在进入中断处理程序时就立即去做。对现场信息的保存方式是多样化的,常用方式有两种:一种是集中式保存:在内存的系统区中设置一个中断现场保存栈,所有中断的现场信息都统一保存在这个栈中。进栈和退栈操作由系统严格按照后进先出原则实施;另一种是分散式保存:就是在每个进程的PCB中设置一个核心栈,一旦程序被中断,它的中断现场信息就保存在自己的核心栈中。 〈2〉分析原因。对中断处理的主要工作是根据中断源确定中断原因,然后转入相应处理程序去执行。为此,应确定“中断源”或者查证中断发生,识别中断的类型和中断的设备号。系统接到中断后,就从机器那里得到一个中断号,它是检索中断向量表的位移。中断向量 因机器而异,但通常是包括相应中断处理程序入口地址,和中断处理时处理机状态字。 〈3〉处理中断。核心调用中断处理程序,对中断进行处理。 〈4〉中断返回。执行完中断处理程序,核心便执行与机器相关的特定指令序列,恢复中断时寄存器内容和执行核心栈退栈,进程回到用户态。本进程可能受到中断处理过程的影响,因为中断处理程序可能修改公用的核心数据结构和唤醒某些睡眠进程。如果设置了重调度标志,则在本进程返回到用户态时做进程调度。 2.系统调用的实施 在第一章中我们就学到:UNIX系统中提供了三种用户界面,它们是命令界面,图形界面和系统调用界面。下面我们更深入一点介绍系统调用的实现过程。 在UNIX系统中,系统调用像普通C语言函数调用那样出现在程序中。但是,一般的函数调用序列并不能把进程的状态从用户态变为核心态,而系统调用却可以做到这一点。UNIX操作系统核心对外提供了多个系统调用,这些系统调用的外在使用形式与C语言的函数调用形式相同,但是实现它们的汇编代码形式通常以 trap指令开头。trap指令有这样一种性质:当处理机执行到trap指令时,处理机的状态就从用户态变为核心态。更具体一点说,当处理机执行到trap指令时就进入陷入机构。陷入处理子程序对用户态下的trap指令引起的陷入事件进行处理:先进行参数传递,然后执行相应的系统调用程序。trap指令的格式一般是: trap xx 参数1 参数2 ...... 其中,xx表示系统调用的编号。多数系统调用带有一个或几个参数。传递参数的方式一般有两种:通过通用寄存器的直接传送和在trap指令后自带参数。陷入处理程序根据trap指令后面的系统调用编号去查系统调用入口表,然后转入各个具体的系统调用处理程序。系统调用入口表sysent的项数与系统调用编号一样多。每项有三个部分:自带参数个数,标志位和相应处理程序的入口地址。
本文档为【[精品]什么是中断】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:14KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-29
浏览量:17