精华内容
下载资源
问答
  • 每个设备接口都设置一个简单的逻辑电路,以便根据优先级来传递或截取CPU发出的中断响应信号INTA(低电平有效),以实现响应中断的顺序。 由于需要产生中断向量,所以在菊花链排队电路的基础上,再加入中断向量...
  • 这就存在哪个中断先被响应,哪个中断先被处理的优先次序问题。使系统及时响应并处理发生的所有中断,不发生丢失现象,在硬件设计中断机构时,就必须根据各种中断事件的轻重缓急对线路进行排队,安排中断响应次序。...

    1.中断优先级

    如果在用户程序中使用系统调用,就能知道其产生中断请求的时机,除此之外,其他中断往往是随机出现的。这样,可能出现多个中断同时发生的情况。

    这就存在哪个中断先被响应,哪个中断先被处理的优先次序问题。为使系统及时响应并处理发生的所有中断,不发生丢失现象,在硬件设计中断机构时,就必须根据各种中断事件的轻重缓急对线路进行排队,安排中断响应次序。另外,软件在处理中断时也要相应安排优先次序。

    响应顺序和处理顺序可以不一样,即先响应的可以后处理。为满足某种需要,可以采用多种手段改变处理顺序,最常见的方式是采用中断屏蔽。

    硬件设计时,一般把紧迫程度大致相当的中断源归并为一组,称为一个中断级

    每级的中断处理程序可能有很多相似之处,可把它们统一成一个共同程序;对于不同之处,用各自的专用程序去处理。在这种方式下,每级可以只有一个中断处理程序入口,在内部处理过程中,再根据不同中断请求转入不同的子程序去分别处理。

    与某种中断相关的优先权称做它的中断优先级

    中断优先级高的中断在线路上有优先响应权,可以通过线路排队办法实现。在不同级别的中断同时到达的情况下,级别最高的中断源先被响应,同时封锁对其他中断的响应;它被响应之后,解除封锁,再响应次高级的中断。如此下去,级别最低的中断最后被响应。

    另外,级别高的中断一般有打断级别低的中断处理程序的权利。就是说,当级别低的中断处理程序正在执行时,如果发生级别比它高的中断,则立即中止该程序的执行,转去执行高级中断处理程序。后者处理完才返回刚才被中止的断点,继续处理前面那个低级中断。但是,在处理高级中断过程中,不允许低级中断干扰它,通常也不允许后来的中断打断同级中断的处理过程。

    2.中断屏蔽

    (1)中断屏蔽和中断禁止

    中断屏蔽是指在提出中断请求之后,CPU不予响应的状态。它常常用来在处理某个中断时防止同级中断的干扰,或在处理一段不可分割的、必须连续执行的程序时防止意外事件把它打断。

    中断禁止是指在可引起中断的事件发生时系统不接收该中断信号,因而就不可能提出中断请求而导致中断。简言之,就是不让某些事件产生中断。它常用在执行某些特殊工作的条件下,如按模取余运算,算术运算中强制忽略某些中断,如定点溢出、运算溢出中断。在中断禁止的情况下,CPU正常运行,根本不理睬所发生的那些事件。

    从概念上讲,中断屏蔽和中断禁止是不同的。前者表明硬件接受了中断,但暂时不能响应,要延迟一段时间,等待中断开放(撤消屏蔽),被屏蔽的中断就能被响应并得到处理。而后者,硬件不准许事件提出中断请求,从而使中断被禁止。

    (2)中断屏蔽的作用

    引入中断屏蔽和禁止的原因主要有以下3个方面:

    · 延迟或禁止对某些中断的响应。中断是可以随机发生的事件。在某些程序(如系统程序)的执行过程中,不希望外界信号对它干扰,以避免对重要数据操作的失误。此外,在某些运算(如按模同余运算)中发生一些事件(如定点溢出)是正常的,没有必要理睬。

    · 协调中断响应与中断处理的关系。硬件中断排队线路只是决定若干中断同时到来时机器响应的优先次序,但处理中断的优先次序却不一定与响应的次序一致。如果中断响应时是把PSW寄存器的内容放在专用系统区中,然后取出对应处理程序的PSW装入寄存器中;接着又响应下一个级别较低的中断,那么最后被响应的中断是级别最低的,但它的中断处理程序的PSW却放在PSW寄存器中,从而使它得到优先处理。为了实现高级中断先响应也先处理,在PSW中必须设置屏蔽位,保证高级中断可以打断低级中断,而低级中断不可打断高级中断的处理。

    · 防止同类中断的相互干扰。在有些系统(如IBM 360)中,同类中断只有一个中断处理程序状态字(PSW)。因此,在处理此类中断的过程中,不能响应随后到来的同类中断。否则,会因共用同一个PSW而造成混乱(后者把前者的内容冲掉)

    (3)中断屏蔽的方式

    屏蔽方式随机器而异,可以用于整级屏蔽,也可用于单个屏蔽。如在IBM 360/370系统中,是用PSW中某些位来屏蔽某些中断的。程序员通过特权指令设置或更改屏蔽位信息。在UNIX系统中,通常采用提高处理机执行优先级的方式屏蔽中断,即在程序状态寄存器(PS)中设置处理机当前的执行优先级,当它的值(比如6)大于或等于后来中断事件的优先级(比如4)时,该中断就被屏蔽了。

    3.多重中断

    多个中断可能同时出现。例如,一个程序正从通信线路上接收数据并打印结果。每当打印操作完成后,打印机会产生一个中断。每当一个数据单位到来时,通信线路控制器就会产生一个中断。数据单位可能是一个字符或是一个数据块,这取决于通信规程的性质。总之,在处理打印机中断的过程中有可能出现通信中断。

    处理多个中断的方法有顺序处理方式和嵌套处理方式两种。

    顺序处理方式

    当一个中断正被处理期间,屏蔽其他的中断;在该中断处理完后,开放中断,由处理器查看有无尚未处理的中断。如果有,则依次处理。这样,用户程序执行时,如果出现中断,则响应并处理它,同时屏蔽其他中断。在该中断处理程序运行完、控制返回用户程序之前,开放中断。若有另外中断未被处理,则按顺序进行处理;

    0b70c7f35eadd57e921d79c23fba0b36.png

    这种方式的缺点是没有考虑中断的相对优先级或时间的紧迫程度。例如,输入数据从通信线路上到来时,就需要迅速处理,腾出空间,供后面的输入使用。如果在第2批输入到来之前,第1批输入数据还未处理完,就会丢失后面的数据。

    嵌套处理方式

    这种方式对每类中断赋予不同的优先级,允许高优先级中断打断低优先级中断的处理程序。

    例如,系统中有3台I/O设备:打印机、磁盘机和通信链路,各自的中断优先级分别是2、4和5。下图给出了一种可能的执行序列。在t=0时刻用户程序开始执行。在t=10时出现打印机中断;响应该中断,把用户信息存放在系统栈中,然后执行打印机的中断服务(处理)程序(ISR)。在t=15时,ISR还在执行,但此时发生通信中断。由于通信链路的中断优先级高于打印机中断优先级,打印机的ISR被中断,其现场信息压入栈中,接着执行通信中断的ISR。在通信ISR执行时,出现磁盘中断(t=20)。由于磁盘中断优先级低于通信中断优先级,所以它只是被简单收存,而通信ISR继续执行。当t=25时,通信ISR完成,恢复先前的处理机状态,本应执行打印机的ISR,然而由于盘中断优先级高于打印机中断优先级,所以处理器执行磁盘的ISR。仅当磁盘的ISR执行完之后(t=35),打印机ISR才得以恢复执行。当打印机ISR执行完(t=40),最终把控制返还用户程序。

    a053f06f8076394629039aab3eb96fc7.png

    可以看出,嵌套中断往往会给程序设计带来困难。在有些系统(如Linux)中,当响应中断并进入中断处理程序时,CPU会自动将中断关闭。

    展开全文
  • 在8086/8088微机系统中,中断的优先权由高到低的顺序依次:除零数、INT n、INT o、NMI(非屏蔽中断)、INTR、单步执行中断.8259A芯片的外部特征: (1)片选取信号(CS) (2)写信号(WR)

    关于中断

    一个完整的中断过程由中断请求、中断判优及屏蔽、中断响应、中断处理及中断返回五个部分组成。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
    8086/8088微机系统中,中断源的优先权由高到低的顺序依次为:除零数、INT nINT oNMI(非屏蔽中断)INTR、单步执行中断.

    8259A芯片的外部特征:

     

     

     

     

     

     

     

     

     

     

     


    1)片选取信号(CS

    2)写信号(WR

    3)读信号(RD    

    4D0~D78条数据总线

    5GND:地信号       

    6Vcc+5V电源

    7INT:中断请求信号

    8)中断响应信号

    9IR0~IR78个中断请求输入信号

    10A0:地址选择信号

    11SP/EN:从片编程/允许缓冲器信号

    12CAS0~CAS2:这三条信号是8259A级连时构成8259A的主从式级连结构

    CPU完成对8259A的初始化操作后,8259A即进入操作状态,通过INT端口向CPU提出中断申请,8259A从数据总线D7~D0输出当前服务对象的中断类型号NCPU截获该中断向量并响应该中断,完成一次中断操作。

     


     


    IBM PC及其兼容机中,通过CPUNMI(非屏蔽中断)和两个8259A可编程中断控制器芯片为系统提供了16级中断,硬件中断结构如图1所示1,两片8259A构成主从式级联控制结构,与CPU相连的称为主片,下一层的称为从片,从片中断请求信号INT与主片的IRQ2相连。IBM PC机中保留给用户可随意编程的中断号有IRQ10IRQ11IRQ12IRQ15,这些中断信号都在8259A从片上。

    IBM PC机中由8259A管理的16级中断均有规定的中断向量存储地址,主片中IRQ0-IRQ7分别对应08H-0FH,从片中IRQ8-IRQ15分别对应70H-77H(如串口1 对应为0CH(12),用oldvect=getvect(0x0B)保存原来的中断向量)主片的中断控制寄存器ICR和中断屏蔽寄存器IMR的口地址分别为20H21H,从片的相应寄存器口地址分别为A0HA1H

    中断初始化编程时,当用主片中IRQ0-IRQ7时,只须在屏蔽寄存器中打开相应中断,在中断服务程序中,中断结束后,向中断控制寄存器ICR发一次中断结束命令EOI。

    普通中断程序

    void interrupt(*vect_com)(...);//设置原中断向量保存指针

    void interrupt receiver(...)

    {

        {ch=inportb(0x3f8)};//接收数据语句

        outportb(0x21,0x20);//向主片中断屏蔽寄存器0x21发送中断结束命令EOI(0x21);

    }

    串口1中断初始化时要先保存串口1对应的IRQ4的地址(0x0C)存储的原中断向量,然后将自己的中断服务程序入口地址装入

    void SerOpen(void)

         {

         vect_com=getvect(portf+8);//中断初始化,得到旧的中断向量

         disable();

         inportb(portaddr+RXD);

         inportb(portaddr+MSR);

         inportb(portaddr+LSR);

         inportb(portaddr+IIR);

         outportb(portaddr+IER,IERV);

         outportb(portaddr+MCR,OUT2|ERTS|EDTR);

         outportb(IMASKREG,inportb(IMASKREG)&(~(1<<portf)));//0x21是主片中断屏蔽寄存器入口地址//作用:打开

           /*also  

         temp=inport(IMASKREG)&(~(1<<portf));//打开主片IRQ4;

           outportb(IMASKREG,temp);

         */

         setvect(portf+8,receiver);

         enable();

         };

    最后,不要忘记在程序关闭前关中断和恢复原中断向量。

    void SerClose(void)

         {

         disable();

         outportb(portaddr+IER,0);//关中断起用寄存器

         outportb(portaddr+MCR,0);//关调制解调器控制寄存器

         outportb(IMASKREG,inportb(IMASKREG)|(1<<portf));//关主片IRQ4

         enable();

         setvect(portf+8,vect_com);

         };

    展开全文
  • 对corte m3中断优先级设置理解

    千次阅读 2013-10-23 12:12:20
    中断的优先级由组优先级和子优先级联合控制,组优先级高的中断可以抢占组优先级低的中断,实现中断嵌套。组优先级相同的中断之间不能相互抢占,这时子优先级的作用是在多个中断同时到达时进行执行顺序的判断。在...

            中断的优先级由组优先级和子优先级联合控制,组优先级高的中断可以抢占组优先级低的中断,实现中断嵌套。组优先级相同的中断之间不能相互抢占,这时子优先级的作用是在多个中断同时到达时进行执行顺序的判断。在cortex m3系统控制块SCB中有一个AIRCR寄存器,该寄存器中[10:8]正是用于划定组优先控制位和子优先级控制位的界限,取值范围为0~7,可以为8bits的优先级控制位进行分组。lpc17xx有32个可控优先级中断源,其中断优先级由NVIC的IPR的[7:3]位控制,只有5bits,而AIRCR的[10:8]的取值范围为0~7,当其取值为0~2时,将被自动忽略,即[7:3]均为组优先级控制位,没有子优先级控制位。当取值为3~7时,组优先级控制位和子优先级控制位分别为0000:0 000:00 00:000 0:0000 00000,其中高位为组优先级控制位,低位为子优先级控制位,当取值为7时,没有组优先级控制位,此时受控的中断不能相互抢占嵌套。由此可见AIRCR的[10:8]表示的是IPR中子优先级控制位的结束位置。

    展开全文
  • 中断屏蔽字

    千次阅读 多人点赞 2018-10-23 15:46:02
    某机有四个中断源,优先顺序按1 2 3 4降序排列,若想将中断处理次序改 3 1 4 2 则1,2,3,4中断源对应屏蔽字分别是,_,_和_. 1 1 1 0 1 3优先级比1大,第3位0,其余1.  2 0 1 0 0 1,3,4优先级比2高。...

    某机有四个中断源,优先顺序按1 2 3 4降序排列,若想将中断处理次序改为 3 1 4 2

    则1,2,3,4中断源对应的屏蔽字分别是,_,_和_.

    1        1    1    0      1      3的优先级比1大,第3位为0,其余为1. 
    2        0    1    0      0       1,3,4优先级比2高。1,3,4置0. 
    3        1    1     1     1       优先级最高,全为1 
    4        0    1     0     1      1,3比4的优先级高。1,3为0,其余为1.
     

    展开全文
  • TQ2440裸机中断(外部中断)

    千次阅读 2013-05-31 14:51:23
    是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到内部/外部事件或预先安排的事件服务的中断程序中去,服务完毕,再返回去执行刚才被中断的程序。...
  • 堆/优先队列与二叉堆

    2020-03-19 23:41:14
    1. 堆的概念 堆又名优先队列,是一种特殊的队列结构(尽管...堆的应用很广泛,最典型的例子就是带有优先级的排队,例如对中断的响应问题:优先响应高优先级的中断,同等优先级的按照顺序排队等。 堆的实现方式有很多...
  • 第七章 一填空题 1 CPU 响应中断时需要保存当前现场这里现场指是 和 ...裁决方式速度最高 5 某机有四个中断优先顺序按 1234 降序排列若想将中断处理次序 改 3142则 12 34 中断源对应地屏蔽字分别是 和 6 I/O
  • 1. 操作系统用户提供三种类型使用接口,它们是 命令方式 和 系统调用 和 图形用户界面 。 2. 主存储器与外围设备之间数据传送控制方式 ( I/O 控制方式) 有 程序直接控制、中断驱动方式、 DMA 方式 和 通道...
  • 前提条件1:没有组别优先顺序(只能设置组别一种 即五选一,以最后一次设置组别准): 前提条件2:“抢”占优先级别>“副”优先级别 前提条件3:不同抢占级别之间,抢占级别高正在做事,低抢占级别不...
  • 第七章 一填空题 1 CPU响应中断时需要保存当前现场,这里现场指是 和 ...5某机有四个中断源,优先顺序按124降序排列若想将中断处理次序改312,则3中断源对应地屏蔽字分别是 和 6 I/O接口电源通常具有 和 功能 7 IO
  • 完全二叉树定义

    2016-08-20 17:41:00
    首先对满二叉树按照广度优先遍历(从左到右)的顺序进行编号。 一颗深度k二叉树,有n个节点,然后,也对这棵树进行编号,如果所有编号都和满二叉树对应,那么这棵树是完全二叉树。 其实就是对于一棵树,每一层...
  • 计算机组成原理——屏蔽字设置

    千次阅读 2017-06-23 00:06:35
    某机有四个中断源,优先顺序按1 2 3 4降序排列,若想将中断处理次序改 3 1 4 2 ,则1,2,3,4中断源对应屏蔽字分别是,_,_和_.1 1 1 0 1 3优先级比1大,第3位0,其余1. 2 0 1 0 0 1,3,4优先级比2高。1...
  • 与深度优先不同是,在窗口下方增加一个队列,其左端队头,右端队尾。 23. 求有向图强连通分量 图示窗口自上而下分别显示有向图逻辑结构、存储结构和 Finished 数组在算法执行过程...
  • 一.进程 进程的两个基本组成元素 1.程序代码 2.数据集 进程控制块 ...进程控制块是支持多进程的...优先级:进程的优先顺序 程序计数器:程序中即将执行的下一条指令的地址 内存指针:程序代码和进程相关数据的指针...
  • 一 填空 操作系统用户提供三种类型使用接口它们是命令方式和系统调用和图形用户界面 主存储器与外围设备之间数据传送控制方式有程序直接控制中断驱动方式DMA 方 式和通道控制方式 在响应比最高者优先的作业...
  • 利用Johnson贪心算法解决流水作业调度问题。即有n个作业(编号1~n)要在由两台机器M1和M2组成流水线上完成加工。...可以假定任何作业一旦开始加工,就不允许被中断,直到该作业被完成,即非优先调度。
  • STM32实时操作系统

    千次阅读 2019-03-09 21:31:34
    裸机是在一个main函数里执行,除了有中断才会跳到其他地方,否则就会一直按照地址不断加4来执行(什么是加4呢)。顺序的执行结构就是你可以通过代码找到相应执行流程。 操作系统 main函数当通过函数堆栈切换...
  • (3)“响应比”最高的优先 “响应(系数)比”:作业响应时间(等待和运行)/作业运行时间 (4)定时轮转法(按时间片):适合作业不定的情况 (5)优先数法:急事先办的原则 第三章进程及处理机管理...
  • 数据结构演示软件

    2013-06-02 21:32:36
    图示窗口内容:由算法 Gen 生成操作序列(列出在窗口下方)、算法 Perform 执行时栈操作过程(该窗口上方)以及算法 Perform 执行结果——栈输出序列(列出在图示窗口右侧)。 9. 表达式求值...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    而初学者应当具备软件编程相关知识,单片机一般软件编程是以汇编语言主,各家有各家语法,但大都以RISCMCU架构主,其中 RISC (Reduced Instruction Set Computer) 代表MCU所有指令。都是利用一些简单...
  • 同一级别中断的优先顺序是由( )决定的。 7、LED数码显示按显示过程分为( )显示和( )显示2种。前者,对每位显示来说是连续显示的,可通过单片机串行口实现;当多位显示时需较多外部驱动芯片,功耗较大。后者...
  • 操作系统期末试卷与答案

    热门讨论 2009-12-30 11:02:22
    当一个进程处于就绪状态等待获得CPU运行时,它的优先数以α的比例变化(如在就绪状态等待时间t,则它的优先数=原来的优先数+(t*α));当一个进程处于运行状态时,它的优先数以β的比例变化。所有进程进入就绪队列...
  • 垃圾收集(中英文).pdf

    热门讨论 2011-12-06 08:04:18
    6.6.3 近似于深度优先的节点复制 6.6.4 层次分解 6.6.5 哈希表 6.7 需要考虑问题 6.8 引文注记 第7章 分代式垃圾收集 7.1 分代假设 7.2 分代式垃圾收集 7.2.1 一个简单例子 7.2.2 中断时间...
  • 本工程包含了 SpringAOP,死锁,JUC同步锁,读-写同步锁,ThreadLocal使用,JUC线程池和Spring提供线程池,jdk 1.8 中日期时间API,数据结构中 图实现及操作和广度优先遍历/深度优先遍历(其他待完善),生成XML...
  • 为此,有不少操作系统教科书在讲解原理同时也穿插介绍一些实际系统实现,而象本教材这样全面系统地以Windows操作系统实例来讲解操作系统原理还是第一次。  Windows操作系统虽然是现今大学校园里以及一般...
  • linux_c API函数大全

    2013-12-02 23:19:10
    nice(改变进程优先顺序) 108 11.16 108 on_exit(设置程序正常结束前调用函数) 108 11.17 109 setpgid(设置进程组识别码) 109 11.18 109 setpgrp(设置进程组识别码) 109 11.19 109 setpriority(设置程序...
  • C语言编程要点

    2017-09-18 00:10:37
    15.5. 高位优先(big—endian)与低位优先(little-endian)计算机有什么区别? 213 第16章 ANSI/ISO标准 214 16.1. 运算符优先级总能起作用吗? 214 16.2. 函数参数类型必须在函数参数表中或紧跟其后部分中说明吗?...
  • 实例126 求各位上和5数 189 实例127 计算某日是该年第几天 190 4.2 排序算法 191 实例128 直接插入排序 192 实例129 希尔排序 193 实例130 起泡排序 194 实例131 快速排序 195 实例132 选择排序...
  • 导致后期改项目组件化时候十分痛苦,不同模块之间业务逻辑实在关联太多,但还是没办法,于是按照步骤一步步实践。终极目标是,告别结构臃肿,让各个业务变得相对独立,业务组件在组件模式下可以独立开发。 ...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

中断的优先顺序为