精华内容
下载资源
问答
  • 操作系统中断信号的处理实际是对硬件中断的一种模拟, CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在INTA引脚连续发两个负脉冲,外设在...

    操作系统对中断信号的处理实际是对硬件中断的一种模拟,  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即可。

    关于 的几点说明:

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

    扯了那么多8086的东西, 该说说正题了。

    操作系统在从内核态返回用户态之前(系统可能是一个系统调用, 也可能是一个时钟中断而导致进入内核模式), 将检查是否有需要的投递的信号。一旦检测到需要信号投递时, 内核将改变用户空间的数据(跟调用exec类似, 系统会改变用户空间的数据)。建立一个新的栈桢。

    当返回到用户空间的时候, IP指向的将是新的栈, 所以执行的下一个指令将是信号处理函数(signal_handler)。当信号出来函数返回时, 执行的将是sigreturn, 所以系统将重新进入内核模式。这个时候系统将把栈清除。恢复原来的IP值, 当重新再次返回用户模式的时候, 程序就像什么都没有发生一样继续往下执行。

    因为上下文是保存在用户空间, 并且是以链的形式保存, 所以信号出来的递归是没有问题的。信号处理函数sigreturn返回一次将执行一次类似弹栈操作, 直到栈为空为止。对于系统调用的自动重启, 只要把IP恢复为执行前一条指令, 那么系统调用自然自动被再次调用。

    不过由于带有超时参数的函数在执行signal_handler的时候会费掉时间, 再次进入系统调用将造成不必要的麻烦(两义性), 所以对于这类函数是不会自动重启的。  1 回答者: 15801485131。

    全部

    展开全文
  • 中断装置和中断处理程序统称为中断系统中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统中断系统的应用大大提高了计算机效率。中文名中断外文名...

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

    中断装置和中断处理程序统称为中断系统。

    中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。

    中文名

    中断

    外文名

    Interrupt Request分    类

    中断装置和中断处理程序

    相关概念

    程序状态字和向量中断等

    系统功能

    实现中断响应和中断返回等

    中断定义

    编辑

    语音

    不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断是CPU对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

    中断响应处理

    编辑

    语音

    大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。①接收中断请求。②查看本级中断屏蔽位,若该位为1则本级中断源参加优先权排队。③中断优先权选择。④处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。⑤中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。⑥执行中断控制程序和相应的中断服务程序。⑦执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。

    中断相关概念

    编辑

    语音

    程序状态字和向量中断

    这是两个与中断响应和处理有密切关系的概念。

    ① 程序状态字:每个程序均有自己的程序状态字。现行程序的程序状态字放在处理机的程序状态字寄存器中。程序状态字中最主要的内容有指令地址、条件码、地址保护键,中断屏蔽和中断响应时的中断源记录等。中断响应和处理操作的第④步和第⑤步就是交换程序状态字操作。

    ② 向量中断:对应每一级中断都有一个向量,这些向量顺序存放在主存的指定单元中。向量的内容是:相应的中断服务程序起始地址和处理机状态字(主要是指令地址)。在中断响应时,由中断部件提供中断向量的地址,就可取出该向量。中断响应和处理操作的第⑤步就是取中断向量操作。在采用向量中断的机器中一般不再使用程序状态字。

    中断系统功能

    编辑

    语音

    1)实现中断响应和中断返回

    当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。CPU中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。

    2)实现优先权排队

    通常,系统中有多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。为此,计算机给每个中断源规定了优先级别,称为优先权。这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。

    3)实现中断嵌套

    当CPU响应某一中断时,若有优先权高的中断源发出中断请求,则CPU能中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断,高级中断处理结束以后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套。如果发出新的中断请求的中断源的优先权级别与正在处理的中断源同级或更低时,CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能去处理新的中断请求。

    中断源分类

    编辑

    语音

    中断源是指能够引起中断的原因。

    一台处理机可能有很多中断源,但按其性质和处理方法,大致可分为如下五类。

    ① 机器故障中断。

    ② 程序性中断。现行程序本身的异常事件引起的,可分为以下三种:一是程序性错误,例如指令或操作数的地址边界错,非法操作码和除数为零等;二是产生特殊的运算结果,例如定点溢出;三是程序出现某些预先确定要跟踪的事件,跟踪操作主要用于程序调试。有些机器把程序性中断称为“异常”,不称为中断。

    ③ 输入-输出设备中断。

    ④ 外中断。来自控制台中断开关、计时器、时钟或其他设备,这类中断的处理较简单,实时性强。

    ⑤ 调用管理程序。用户程序利用专用指令“调用管理程序”发中断请求,是用户程序和操作系统之间的联系桥梁。

    在51单片机中有5个中断源

    中断号 优先级 中断源 中断入口地址

    0 1(最高) 外部中断0 0003H

    1 2 定时器0 000BH

    2 3 外部中断1 0013H

    3 4 定时器1 001BH

    4 5 串口中断 0023H

    中断优先权

    编辑

    语音

    几个中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理。可最先被响应的中断具有最高优先权,按优先级别顺序进行处理。优先权高低是由中断部件的中断排队线路确定的。

    中断中断级

    当机器设置很多中断源时,为了简化设计,对中断源分组管理。具有相同中断优先权的中断源构成一个中断级。同一级中断使用同一个中断控制程序起点。

    中断中断屏蔽

    对应于各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。有些机器针对某些中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。

    展开全文
  • 中断机制是操作系统极为重要的一个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由...在本节,首先介绍中断的概念,然后叙述中断系统...

    中断机制是操作系统中极为重要的一个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”的。

    由于中断机制的实现必须依靠相关的硬件支持,所以硬件中断装置是操作系统运行环境中的一个极为重要的组成部分。中断的实现是硬件中断装置和相应的中断处理软件共同完成的。在本节中,首先介绍中断的概念,然后叙述中断系统的工作原理,最后分析中断处理的过程。

    一、中断与异常的概念

    1、中断与异常

    (1)中断的概念

    所谓中断是指处理器对系统中或系统外发生的异步事件的响应。异步事件是指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。

    “中断”这个名称来源于:当发生某个异步事件后,中断了处理器对当前程序的执行,而转去处理该异步事件(称作执行该事件的中断处理程序)。在该异步事件处理完了之后,处理器再转回原程序的中断点继续执行。这种情况很像我们日常生活中的一些情况。例如,某人正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断那页继续向下看(返回原程序的中断点执行)。

    最初,中断技术是用于向处理器报告某个“设备已完成操作”的一种手段,以免处理器不断地测试设备状态而消耗大量宝贵的处理器时间,后来,中断技术的应用越来越广泛。中断是所有要打断处理器的正常工作次序,并要求其去处理某一事件的一种常用手段。我们把引起中断的事件称为中断事件或中断源;中断源向处理器发出的请求信号称为中断请求;而把处理中断事件的程序称为中断处理程序;发生中断时正在执行的程序的暂停点叫作中断断点;处理器暂停当前程序转而处理中断的过程称为中断响应中断处理结束之后恢复原来程序的执行被称为中断返回

    一个计算机系统提供的中断源的有序集合一般被称为中断字,这是一个逻辑结构,在不同的处理器有着很不相同的实现方式。在一台计算机中有多少中断源,是根据各个计算机系统的需要安排的。 Intel的x86微处理器能处理256种不同的中断。

    为了使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序入口地址映射表,又称中断向量表。表中的每一项称为一个中断向量,主要由程序状态字PSW和指令计数器PC的值组成。不同性质的中断源需要用不同的中断处理程序来处理,也就是对应不同的中断向量。通过中断向量,可以找到中断处理程序在内存中的位置。

    中断技术解决了主机和外设并行工作的问题,消除了因外设的慢速而使得主机等待的现象,为多机操作和实时处理提供了硬件基础。一般来说中断具有以下作用。

    能充分发挥处理器的使用效率。因为输入输出设备可以用中断的方式同处理器通信,报告其完成处理器所要求的数据传输的情况和问题,这样可以免除处理器不断地査询和等待,从而大大提高处理器的效率。

    提高系统的实时能力。因为具有较高实时处理要求的设备,可以通过中断方式请求及时处理,从而使处理器立即运行该设备的处理程序(也是该中断的中断处理程序)。所以目前的各种微型机、小型机及大型机均有中断系统。

    从用户的角度来看,中断正如字面的含义,即正常执行的程序被打断,当完成中断处理后再恢复执行。这完全由操作系统控制,用户程序不必做任何特殊处理。这一过程可以用图24示意。

    (2)异常

    最早中断和异常并没有区分,都把它们叫作中断。随着它们的发生原因和处理方式的差别愈发明显,才有了现在的中断和异常之分。

    中断是由外部事件引发的,而异常则是由正在执行的指令引发的

    2、中断与异常的分类

    无论是哪种计算机都有很多中断源,不同的系统依据这些中断源引起的中断特点等方面的不同,划分为若干个不同中断类型。这种分类在不同的系统中往往差异比较大。

    典型的中断包括

    1)时钟中断,由处理器内部的计时器产生,允许操作系统以一定规律执行函数,如时间片到时、硬件实时钟到时等;

    2)输人输出(IO)中断,由LO控制器产生,用于通知一个L/O操作的正常完成或者发生的错误;

    3)控制台中断,如系统操作员通过控制台发出命令等;

    4)硬件故障中断,由掉电、存储器校验错等硬件故障引起等

    异常发生的时间以及位置具有确定性,典型的异常包括:

    1)程序性中断,在某些条件下由指令执行结果产生,例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等;

    2)访管指令异常,目的是要求操作系统提供系统服务。

    由于中断与异常的硬件机制工作原理类似,为方便起见,之后的叙述中以中断涵盖两个概念

    二、中断系统

    中断系统是现代计算机系统的核心机制之一,它不是单纯的硬件或者软件的概念,而是硬件和软件相互配合、相互渗透而使得计算杋系统得以充分发挥能力的计算模式。

    中断的发生会激活很多事件,这包括硬件和软件的方面的事件,所以对于整个中断事件的接收、响应和处理需要有计算机的硬件和软件两方面的配合,共同完成。

    可以把中断系统分为两大组成部分:中断系统的硬件中断装置和软件中断处理程序。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。中断处理程序则针对对中断事件的性质而执行相应的系列操作。

    1、中断请求的接收

    中断系统如何接收中断源的中断请求,这往往因机器而异。不过从原理上讲,它们是通过在计算机硬件的中断逻辑线路和中断寄存器实现的

    中断逻辑线路用于接收中断信号,并把收到的中断信号寄存在线路中的硬件触发器中。在中断逻辑线路中有若干个专门接受中断信号的触发器,每个触发器称为一个中断位。通常规定,一个触发器的值为1时,表示该触发器收到中断信号,为0时表示无中断信号。这些触发器的全体称为中断寄存器,所以中断寄存器是由若干个中断位组成的。

    在有的计算机中,为了不丢失和区分每个中断信号,对每个中断源都用一个固定的触发器来寄存中断信号。而在有的计算机中,对某些没有得到响应的、不重要的中断信号,就不予保存下来,而把它丢弃掉。

    2、中断响应

    中断请求的响应机制如下。处理器的控制部件中设置有中断信号扫描结构,它在每条指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号到来。若无中断信号,处理器就继续执行下一条指令。若有中断到来,处理器接收由硬件中断装置发来的中断向量代号。

    接着,处理器开始为后续的软件处理中断做必要的准备工作:保存中断点的程序执行上下文环境(又称保存现场)。这是因为中断处理结束之后,处理器还要继续被中断程序的执行,所以原有中断点程序执行的所有必要信息都必须保存下来。这个上下文环境通常包括程序状态字PSW、程序计数器PC中的下一条指令位置和一些寄存器的值。它们一般保存在个专门的系统堆栈中。处理器状态此时被切换到管态。

    处理器根据中断向量代号查询中断向量表,获得与该中断源相联系的中断处理程序的入口地址,并将PC置成该地址。随后控制权转移到中断处理程序。

    整个中断请求的响应过程,如图25所示。

    图25中的中断请求响应的工作过程是:

    ①处理器接收中断信号;

    ②保护现场,将中断断点的程序状态字PSW和程序计数器PC值存入系统堆栈;

    ③分析中断向量,取得中断处理程序的入口地址;

    ④将处理器的PC值置为中断处理程序的入口地址;

    ⑤调用中断处理程序。

    3、中断处理

    这里讨论在中断信号已经被中断系统的硬件中断装置接收和响应之后,对应的软件中断处理程序进行中断处理的具体过程

    在处理器的控制权转移到中断处理程序之后,中断处理程序开始工作,其中包括检查I/O相关的状态信息,操纵I/O设备或者在设备和内存之间传送数据等。具体的中断处理程序的内容,完全是依据中断请求的类别和要求的不同,而分别设计的。

    在中断处理程序结束工作之后,处理器会检测到一条中断返回指令。在执行中断返回指令时,处理器会把原先被中断的程序的上下文环境从系统堆栈中恢复。处理器状态也从管态恢复成被中断时的目态。整个中断处理结束。处理器开始一个新的指令周期,继续执行原来被中断的程序。

    上述整个中断信号的接收、响应和处理过程,可以简要地归纳为:接收和响应中断,保护中断断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行

    4、几种典型中断的处理

    这里介绍几种计算机系统中比较典型的中断处理,包括I/O中断、时钟中断、硬件故障中断、程序性中断和系统服务请求(自愿性中断)

    (1)I/O中断

    I/O中断一般由I/O设备的控制器或者通道发出。I/0中断通常可分成两大类:I/O操作正常结束以及I/O异常。对于前者来说,如果要继续进行I/O操作,则需要在准备好以后重新启动I/O。若请求I/O的程序正处于等待I/O的状态,则应该将其唤醒。对于后者,常常需要重新执行失败的I/O操作,不过这个重试的次数常常有一个上限,因为错误可能由硬 件损伤引起,当重试次数过大的时候,系统将判定硬件故障,并通知管理员。

    比如,我们平常在PC上用 CD-ROM观看VCD或DVD的碟片时,有时会碰到读碟出错。在重复读碟几次之后,如果读碟岀错继续,系统就会停止读碟,并报告岀错,甚至退岀碟片。

    (2)时钟中断

    时钟中断是计算机系统多道能力的重要条件之一(有关时钟的概念,参看本章的后面部分)。时钟中断处理程序通常要做较多的与系统运转、管理和维护相关的工作,它们对于整个系统是非常重要的,主要内容如下。

    维护软件时钟。系统有若干个软件时钟,控制着定时任务以及进程的处理器时间配额,时钟中断需要维护,定时更新这些软件时钟。

    处理器调度。维护当前进程的时间片软件时钟,并在时间片到时后运行调度程序选择下一个被调度的进程。

    控制系统定时任务。通过软件时钟和调度程序定时激活一些系统任务,例如监测死锁、进行系统记账、对系统状况进行审计等。

    实时处理,例如产生系统“心跳”,激活系统看门狗等。

    当然,在不同的操作系统设计中,时钟中断处理的内容也不一样。很多系统的时钟中断通常只处理软件时钟,并在一定条件下激活系统调度程序。

    一般来说,调度程序并不在时钟中断里,因为时钟中断的优先级往往比较高,而且频繁发生,如果时钟中断处理时间过长,就会使一些较低优先级的中断丢失。

    (3)硬件故障中断

    硬件故障一般是由硬件的问题引起的,排除此类故障通常需要人工的干预,例如复位硬件或者更换设备等。

    硬件故障中断处理程序需要做的工作是保存现场,使用一定的手段警告管理员并提供些辅助的诊断信息。此外在高可靠的系统中,中断处理程序还需要评估系统的可用性,并尽可能地恢复系统。

    例如,使用 WindowsXP的系统在关键硬件发生故障时,会出现系统蓝屏死机。这时操作系统实际上进入了相应的故障处理程序,并发现这个故障是不可恢复的,于是在屏幕上打印出了发生故障时的程序位置(通常在某个管态驱动程序中),并且开始进行内存转储(将定范围的内存内容写到磁盘上去,实际上是系统发生故障时的全系统“快照”),以备日后进行程序调试级故障诊断。

    (4)程序性中断

    程序性中断多数是程序指令出错、指令越权或者指令寻址越界而引发的系统保护。它的处理方法可以依据中断是否可以被用户程序自行处理,而分成两类。

    第一类为程序性中断,只能由操作系统完成。这种情况多为程序试图做自己不能做的操作引起的系统保护,例如访问合法的但是不在内存的虚地址引发的缺页中断等。这时候的处理一般由操作系统的相关扩展功能模块完成。

    第二类为程序性中断,可以由程序自己完成。例如一些算术错误。因为不同的程序可能有不同的处理方法,所以很多操作系统提供由用户自行处理这类中断的“绿色通道”。一般来说,系统调试中断,如断点中断、单步跟踪等,用以支持各种程序的调试,是可以被用户程序处理的。

    (5)系统服务请求(自愿性中断)

    系统服务请求一般由处理器提供的专用指令(又称访管指令)来激发。例如x86处理器提供int指令,用来激发软件中断,其他的不少处理器则专门提供系统调用指令 syscall执行这些指令的结果是系统被切换到管态,并且转移到一段专门的操作系统程序处开始执行。这种指令的格式通常是指令名加上请求的服务识别号(有时是中断号)。操作系统利用处理器提供的这种接口建立自己的系统服务体系。处理器一般不负责定义系统调用所传递的参数格式。因为不同的系统会提供不同的系统调用,而不同的系统调用需要不同的参数,所以给系统服务例程传递什么样的参数,以及如何传递这些参数都由操作系统规定。

    这方面的实例可以看一下 MS-DOS定义的2h号中断的系统服务功能以及参数列表,这可以在有关MS-DOS程序设计的书的附录中查到。

    现代操作系统一般不会提供直接使用系统调用指令的接口,通常的做法是提供一套方便、实用的应用程序函数库(又称为应用程序设计接口API。这些函数从应用的较高层面重新封裝了系统调用,一方面屏蔽了复杂的系统调用传参问题(用汇编语言传参),另一方面是高级语言接口,有助于快速开发。还有的系统在更高层面提供了系统程序设计的模板库和类库。

    三、中断优先级、中断屏蔽与中断嵌套

    1.多级中断与中断优先级

    现代的微处理器都提供有多级中断系统,从硬件上看,多级中断系统表现为有多根中断请求线从不同设备连接到中断逻辑线路上。连接在不同中断请求线上的中断信号,表示它们有不同的中断级别。中断信号的级别代表了该中断信号是否具有被优先处理的特权,以及这个特权的大小。可见,在多级中断系统中,硬件决定了各个中断的优先级别。

    多级中断的第一个作用是,对各类中断信号依据其紧急程度和重要性划分级别。在需要处理的各类中断信号中,它们的紧急程度和重要性是不同的。系统当然应该优先处理最紧急的或者最重要的中断信号。而中断信号本身的紧急或重要性,则由该中断的级别的高低来标识。在多级中断系统中,在同时有多个中断请求时,处理器接收中断优先级为最高的中断(如果其中断优先级高于当前运行程序的中断优先级时),而忽略其中断优先级较低的中断。比如,计算机的电池即将没有电了,这种掉电中断显然应该有非常高的优先级别。

    多级中断的第二个作用是,解决如果有重要程度相当的多个中断信号同时到达时,如何选择首个被处理的中断信号的问题。比如,在一套计算机系统上接有一台打印机和一台扫描仪,在打印机发出了打印完毕的信号的同时,扫描仪也发出了扫描完毕的信号。在一般情况下,这两个中断信号具有同等的优先级。

    如果在同一中断级中的多个设备接口中同时都有中断请求时,一般有两种办法可以采用

    1)固定的优先数:给每个设备接口安排一个不同的、固定的优先顺序。比如以该设备在总线中的位置来定优先顺序,离处理器近的设备,其优先数高于离处理器远的设备。

    2)轮转法:用一个表格,依次轮转响应,这是一个较为公平合理的方法。

    2、中断屏蔽

    在整个中断系统中,可以允许或者禁止中断系统对某些类别中断的响应。我们已经知道,在程序状态字PSW中设计有中断屏蔽位,主机是否允许响应或禁止某些中断,则由PWS中的中断屏蔽位决定,这些屏蔽位标识了被屏蔽的中断类或者中断。

    一旦某个I/O中断被程序状态字PSW中的中断屏蔽位加以屏蔽,那么此时即使有I/O中断信号,处理器也不予响应。

    对于被屏蔽的中断信号,通常仍然保存在中断寄存器中,有些可以在以后继续响应,而有些将被简单地丢弃。

    很显然,有了中断屏蔽,中断系统中原先由硬件事先给定的中断优先级,就可能发生改变。例如,在一个计算机系统中,由CD-ROM到硬盘的数据传送的优先级别低于硬盘内部的数据操作。但是,如果一旦机器正在进行 CD-ROM到硬盘的数据传送,对硬盘内部的其它数据操作就被暂时屏蔽,这些硬盘操作必须在该 CD-ROM到硬盘的数据传送结束之后才能进行。换句话说,此时 CD-ROM到硬盘的数据传送的优先级别高于硬盘内部的数据操作。

    还有一类中断信号是不可屏蔽的,一般这类中断信号属于机器故障中断。比如内存奇偶校验错,以及掉电等使得机器无法继续操作一类的故障。一旦发生这类不可屏蔽的中断,不管管程序状态字中的屏蔽位是否建立,处理器都要立即响应这类中断,并进行处理。

    3、中断嵌套

    一般的计算机系统中都有多个中断源,在这样的系统中,如果一个中断的处理过程中又发生了中断,那么将引起多个中断处理问题。对多个中断的处理策略一般有如下两种。

    对于多个中断进行处理的第一种策略是,正当处理一个中断时禁止其他中断,此时系统将对任何新发生的中断置之不理。在这期间发生的中断将保持挂起状态。当处理器再次允许中断时,这个新的中断信号会被处理器检测到,并做出处理。

    这种处理方法可以用软件简单地实现,只要在任何中断处理之前使用禁止中断指令,在处理结束之后,再使用开放中断指令就可以了。这样,所有的中断将严格地按照发生的顺序被处理。不过,这样的处理策略没有考虑到中断信号的紧急程度,无法达到比较严格的中断处理时间要求。

    对于多个中断进行处理的第二种策略是中断嵌套。即中断按照优先度分级,允许优先级较高的中断打断优先级较低的中断处理过程,于是引起中断处理的嵌套,如图26所示。

    只要合适地定义中断的优先级别,第一种策略的弊端大都可以被第二种中断嵌套策略所克服。

    由于在中断嵌套中优先级较高的中断可以打断优先级较低的中断处理过程,因此必须把优先级较低的中断处理过程的现场也保存起来。这些被保护现场的次序,与恢复现场的次序正好相反,所以应该采用堆栈作为现场保护区 域。堆栈应该处于系统空间中,以防止被破坏,又称为系统堆栈。

    在中断发生时,硬件中断装置将程序状态字PSW、指令计数器PC的值以及其他重要现场信息压入系统堆栈。如果发生中断嵌套,被中断的处理的程序状态字PSW、指令计数器PC的值,以及其他重要现场信息也被压入系统堆栈。

    每发生中断嵌套一次,就保护一次被中断的处理过程的现场,进行相关的压栈操作。而每结束一层嵌套的处理时,就从系统堆栈中弹出对应的程序状态字PSW、指令计数器PC的值以及其他重要现场信息,逐层恢复现场。

    作为中断嵌套策略的一个例子,考虑在一个系统中存在总线、硬盘以及扫描仪三个设备同时操作时的处理情况。假定三者的中断优先级依次分别为9、5、3,其中数字大的具有较高的优先级。扫描动作的处理从某个时间开始,它的处理时间较长,其间发生了一次网络数据的传送请求,于是扫描仪中断处理被打断,处理器转而去处理网络通信时的总线服务请求。在处理网络通信的总线服务请求期间,用户恰好提交了一个硬盘存储文件的请求。但是因为硬盘中断优先级较低,于是硬盘中断的处理就被推迟到总线请求处理完之后,同时由于它的优先级高于扫描仪的中断,所以对硬盘中断的处理优先于对扫描仪中断的处理。在硬盘中断处理完毕之后,处理器才回到原先对扫描仪中断处理的程序上。这个中断处理的过程中发生了三重中断嵌套。

     

    展开全文
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( ...
  • 改进系统的结构,开发系统的并行性 并行:包含同时性和并发性两方面。 同时性两个或多个事件在同一时刻发生,并发性两个或多个事件在同一时间段发生。 在同一时刻或同一时间段内完成两种或两种以上性质相同或...
  • 操作系统普遍存在的中断详解

    千次阅读 2020-07-13 23:22:47
    中断这个东西虽然我们平时可能没有意识到他的存在,但是他确实普遍存在在操作系统中,并且在操作系统中运行过程发挥着不可替代的作用。 比如线程的挂起和唤醒,进程的调度、I/O完成,代码发生异常(比如Java的...
  • 系统结构中断

    千次阅读 2016-08-09 20:38:22
    什么是中断中断(Interrupt)是硬件和软件驱动事件,它使得CPU暂停当前的主程序,并转而去执行一个中断服务程序。...这是快速的CPU与慢速的外设之间的矛盾,也是计算机发展过程遇到的一个严重的问题之一。
  • 所谓中断处理器对系统中系统外发生的异步事件的响应。 异步事件是无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。 “中断”这个名称来源于:当发生某个...
  • 单片机中断系统(51为例)

    千次阅读 2020-04-15 13:15:54
    单片机中断系统概述: 中断是单片机的CPU在执行程序过程,外部有一些事件变化,如数据采集结束,电平变化,定时器/计数器溢出等,要求CPU立即处理,这时CPU暂时停止当前的执行程序,转去处理中断请求,处理后,...
  • 51单片机中断系统程序实例 (STC89C52RC)51单片机有了中断,在程序设计就可以做到,在做某件事的过程,停下来先去响应中断,做别的事情,做好别的事情再继续原来的事情。中断优先级是可以给要做的事情排序。...
  • 操作系统中断异常

    2019-04-13 16:17:16
    中断/异常:指系统发生某个异步/同步事件后,处理机暂停正在执行的程序,转去执行处理该事件程序的过程。 中断引入:为了开发CPU和通道(或设备)之间的并发操作。 异常引入:用于表示CPU执行指令时本身引发的事件。 ...
  • 现在,我们正式地认识一下中断中断微处理器在正常执行程序的过程,当出现某些意外情况或某种外部设备请求时,暂停正在执行的程序,转而去执行某一个特定的程序,并在执行后返回原来暂停执行的程序继续执行的...
  • 在一个计算机系统当中,CPU执行的程序类型包括两种:应用程序(用户自编程序)和内核程序。但是要注意到,这两种程序同时有主从关系,主要体现在前者对后者的管理上。而主要的原因是内核程序能够执行某些特权指令而...
  • MCS-51的中断系统

    千次阅读 2020-06-05 09:43:03
    MCS-51单片机内的中断系统主要用于实时测控,即要求单片机能及时地响应和处理单片机外部或内部事件所提出的中断请求。由于这些中断请求都时随机发出的,如果采用定时查询方式来处理这些中断请求,则单片机的工作效率...
  • -----中断系统------1.定义:CPU正常执行流程被某些外部事件的发生而打断。2.中断系统的意义可以提高CPU利用率,使得CPU在执行程序指令时候,可以兼顾到其他的一些必要事件 的处理;比如IO操作,异常错误等。3.引起...
  • 最近在使用STM32F3芯片的时候,遇到这样一个问题:如果外部中断来的频率足够快,上一个中断没有处理完成,新来的中断如何处理? 在调试时,发现有中断有 挂起、激活、失能等状态,考虑这些状态都是干啥用的呢!他们...
  • MCS-51单片机的中断系统

    千次阅读 2021-01-05 22:44:03
    在任何一款事件驱动型的CPU里面都应该会有中断系统,因为中断就是为响应某种事件而存在的。中断的灵活应用不仅能够实现想要的功能,而且合理的中断安排可以提高事件执行的效率,因此中断在单片机应用的地位是非常...
  • CPU的结构和功能——指令流水及中断系统

    千次阅读 多人点赞 2019-01-01 17:29:31
    取指令,把指令从内存单元取出 分析指令,对指令的操作码部分进行阶码,分析这条指令要完成什么功能,是指令集中哪一条指令 执行指令,CPU的控制器发出各种操作命令,由这些操作命令控制相应的部件去完成指令...
  • 如果要你讲一下中断,你会怎么去描述一个中断的触发流程呢?... 当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断请求? CPU在什么条件、什么时候、以什么方式来响应中断? ..
  • 系统结构-3-3中断级屏蔽位设置   中断响应次序的基本规则:一般在处理某级的某个中断请求时,是不能被与它同级的或比它低一级的中断请求所中断的。只有比它高一级的中断请求才能中断其处理,等响应和处理完后再...
  • 微机原理-07-中断系统

    千次阅读 2020-04-09 09:14:12
    中断系统 ###定义 中断”,是CPU暂时停止正在执行的程序,转去执行请求CPU为之服务的内、外部事件的服务程序,待该服务程序执行完后,又返回到被暂停的程序继续运行的过程。 中断的作用 (1)可以提高CPU的...
  • [专业课笔记] 单片机 第五章 中断系统正文 正文
  • 指令格式应该既能给出足够的信息,其长度又尽可能的与机器字长匹配,以便节省存储空间,缩短取时间,提高机器的性能 操作码:不仅告诉机器做什么,还告诉机器对哪些数据进行操作,操作码的长度是可以是固定的也...
  • 中断系统

    2021-07-15 00:37:24
    中断装置和中断处理程序统称为中断系统中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统中断系统的应用大大提高了计算机效率。中文名中断系统性质...
  • 中断的概念及其作用1、中断的概念中断-----计算机在执行* * 第7章 中断系统与8237A DMA控制器 7.1 中断系统概述 7.1.1 中断的概念及其作用 1、中断的概念 中断-----计算机在执行正常程序的过程出现内部或外部...
  • 目录:一、STM32中断系统二、NVIC中断管理三、中断配置相关函数 一、STM32中断系统 中断概念   • 中断是CPU对系统发生的某个事件作出的一种反应。   • 引起中断的事件称为中断源。   • 中断源向CPU提出处理的...
  • 中断概念是50年代中期提出的,在这以前,计算机虽然能自动运行程序,但有两个问题不能很好解决: 不能自动处理异常情况或特殊请求,如电源掉电等。 CPU与外设串行工作,CPU得不到充分利用。CPU是电子设备,基本...
  • 本文内容:广义分类狭义分类(x86分类)概念 广义的中断概念硬件中断中断BIOS中断 广义的陷阱概念 优先级 外部中断/中断(Interrupt)非屏蔽中断可屏蔽中断可编程中断控制器8259A高级可编程中断控制器(APIC) ...
  • 所谓中断,是某个事件发生时,系统中止现行程序的运行、引出处理该事件的程序进行处理,处理完毕后返回断点,继续执行。 为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。所以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,543
精华内容 6,217
关键字:

中断系统中的断点是指